SlideShare ist ein Scribd-Unternehmen logo
1 von 23
Downloaden Sie, um offline zu lesen
OtaQ
     OtaQ
早押し4択クイズの自動生成
jewel_x12 @ Niigata.pm tech talk #1
@jewel_x12?
• 自然言語処理
• NUT LT部所属
• TRENDONAU というものを作りました
• 冷凍うどんを電子レンジで戻す
• 普段は Ruby 使い
• Perl 初心者
• たまにコードを読む程度
お詫び
Perl についてコアな話はできません……
今回の目標
4択クイズの自動生成を通じ
  て Perl とふれあう

    ※ コロンビアの画像
なぜクイズ?
昨年はIBMの質疑応答システム
  「Watson」が話題に



   究極の質問にも
答えられるようになった!!
なぜクイズ?
昨年はIBMの質疑応答システム
  「Watson」が話題に



質問者としてのコンピュータを
極めよう!!!!!!!!!!
コンピュータ vs 人間の歴史


             ※ アメリカ横断
※ 電脳学園の画像
            ウルトラクイズの画像




    ちょっと昔
コンピュータ vs 人間の歴史



     ※ QMAの画像




  問題がネットワーク経由で
   追加されるようになった
クイズゲームで一番コストの
高い部分は問題作成(たぶん)

  自動生成や!
ウィキペディア記事から
      自動生成する
• 「Qろいど」(学びing)
    「けんてーごっこ」のデータをもとに、
        穴埋め問題を自動生成
     http://manabing.jp/service/qroid.html



今回は、書かれている内容をヒント文から
     推測する形式の問題
実演


http://otaq.jewelve.com/
ヒント文の生成
ウィキペディア記事内で
 特徴的な文を抽出する




特徴度の高い順番に選択
抽出型要約

要約したい記事から決められた
  単語数に収まるように
  特徴的な文を抽出する
抽出型要約
手法の例:
1. 単語のスコア付け
• ある文書における単語の特徴度(TF-IDF など)
2. 文の特徴度を(1)のスコアを用いて計算
3. 決められた単語数に収まる&合計スコアが
最も高くなる文の組み合わせを抽出
• ナップサック問題としてモデル化
•「文頭からの距離」や「既に抽出した文との類似度」等も
考慮
OtaQ では
1. 名詞のスコア付け
• TF-IDF
2. 文の特徴度を(1)のスコアを用いて計算
• 合計するだけ
3. 文の特徴度が高い順に選択する
• 単語数の制限等はない
• 1番目は必ず含める
OtaQ では
1. 名詞のスコア付け
• TF-IDF
2. 文の特徴度を(1)のスコアを用いて計算
• 合計するだけ
3. 文の特徴度が高い順に選択する
• 単語数の制限等はない
• 1番目は必ず含める

            らくちん♪
4択の生成
         手法の候補
1. 似た記事タイトルを集める
2. 文書クラスタリング

3. カテゴリ情報を利用
 • 所属しているカテゴリのうち、1番小さい
 ものからランダムにタイトルを抽出
 • 一番それっぽい結果になる
 • 人手最高!!!!!!!!!
やっとPerlの話
システム構成
•問題生成
 •単語スコア -> Perl
 •重要文抽出 -> Perl
 •4択の選択 -> Perl
•ゲーム部 -> Ruby
システム構成
•問題生成
 •単語スコア -> Perl
 •重要文抽出 -> Perl Ruby
 •4択の選択 -> Perl Ruby
•ゲーム部 -> Ruby
Perl の感想
• bless を使ったオブジェクト指向プログラ
ミングは面白かった
• リファレンスの存在を知らないで進めてた
ら、よくわからないことになった
• Test::More でのテストもわかり易かった
• 中途半端な知識で進めると辛いときがある
ゲーム部
• Sinatra
 • MongoDB
 • nginx + unicorn
   • 使ったことなかったので使った
・ クライアント側
 • ランダム10問を JSON で受け取る
 • 答えも受け取るのでチート可能
生成されたクイズ
• 24,000 問くらいある
• カテゴリ名に「アニメ・ゲーム・同人・声優」等を含む
ものに絞っている
• お母さんの前では遊べない内容もある
  • 無関係やアレゲなカテゴリは除去している
• 特徴のある文をそのまま出力しても問題と
して成立しにくい
• 「A は B の一種」のような関係を抽出すると良いか
も?

Weitere ähnliche Inhalte

Andere mochten auch

Hcl cdc project
Hcl cdc projectHcl cdc project
Hcl cdc projectRahul Rai
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final projectRahul Rai
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final projectRahul Rai
 
It sector & cma's
It sector & cma'sIt sector & cma's
It sector & cma'sRahul Rai
 
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2Analog Devices, Inc.
 
Final future group
Final future groupFinal future group
Final future groupsrmsibs
 
Clustering
ClusteringClustering
ClusteringMeme Hei
 
Rubymotion
RubymotionRubymotion
Rubymotionjewel12
 

Andere mochten auch (9)

Hcl cdc project
Hcl cdc projectHcl cdc project
Hcl cdc project
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final project
 
Ranbaxy final project
Ranbaxy final projectRanbaxy final project
Ranbaxy final project
 
It sector & cma's
It sector & cma'sIt sector & cma's
It sector & cma's
 
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
Ims2016 micro apps_robertbrennan_pll_frequencyplanning_v2
 
RadioVerse
RadioVerseRadioVerse
RadioVerse
 
Final future group
Final future groupFinal future group
Final future group
 
Clustering
ClusteringClustering
Clustering
 
Rubymotion
RubymotionRubymotion
Rubymotion
 

Ähnlich wie OtaQ

質問応答システム入門
質問応答システム入門質問応答システム入門
質問応答システム入門Hiroyoshi Komatsu
 
型無しラムダ計算―OCamlによる実装―
型無しラムダ計算―OCamlによる実装―型無しラムダ計算―OCamlによる実装―
型無しラムダ計算―OCamlによる実装―Proktmr
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
U-16プログラミングコンテスト CHaser を利用したプログラミング指導
U-16プログラミングコンテスト CHaser を利用したプログラミング指導U-16プログラミングコンテスト CHaser を利用したプログラミング指導
U-16プログラミングコンテスト CHaser を利用したプログラミング指導NISHIHARA Shota
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 Yuki Arase
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep LearningまでHokuto Kagaya
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Inc.
 
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)AtCoder Inc.
 

Ähnlich wie OtaQ (9)

質問応答システム入門
質問応答システム入門質問応答システム入門
質問応答システム入門
 
Jacet2014ykondo_final
Jacet2014ykondo_finalJacet2014ykondo_final
Jacet2014ykondo_final
 
型無しラムダ計算―OCamlによる実装―
型無しラムダ計算―OCamlによる実装―型無しラムダ計算―OCamlによる実装―
型無しラムダ計算―OCamlによる実装―
 
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[最新版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
U-16プログラミングコンテスト CHaser を利用したプログラミング指導
U-16プログラミングコンテスト CHaser を利用したプログラミング指導U-16プログラミングコンテスト CHaser を利用したプログラミング指導
U-16プログラミングコンテスト CHaser を利用したプログラミング指導
 
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」 [旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
[旧版] JSAI2018 チュートリアル「"深層学習時代の" ゼロから始める自然言語処理」
 
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
2014/5/29 東大相澤山崎研勉強会:パターン認識とニューラルネットワーク,Deep Learningまで
 
AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説AtCoder Beginner Contest 007 解説
AtCoder Beginner Contest 007 解説
 
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
実践・最強最速のアルゴリズム勉強会 第五回講義資料(ワークスアプリケーションズ & AtCoder)
 

OtaQ