QuizKnockの名詞抜きクイズをpythonで再現してみた。クイズもあるよ^^


名詞抜きクイズとは

東大生クイズ王 伊沢拓司さんを編集長とするWEBメディアQuizKnock。1
YouTubeでも活動をされており、その中の企画で名詞抜きクイズというものがあります。

詳しくはこちらの動画をご覧ください。

【穴あき】クイズ王なら名詞がなくても正解できる説【9割減】

業務で形態素解析をやる機会があり、その日の帰宅後に観た動画がちょうどこれで「あ、形態素解析」。
ということでpythonでクイズを再現してみました。

準備

必要なライブラリは形態素解析するためのjanomeのみ。
pip installで簡単に入れられるのでjanomeを使ったけど、MeCabでもなんでもいいです。


pip install janome

時事問題などに対応するために、新語や固有語辞書を追加したほうが良い気もします。

やること

クイズの問題文を形態素解析。→名詞を文字数分の空白に置き換え。
これだけ。

実装

from janome.tokenizer import Tokenizer


def filter_noun(text):
    tokenizer = Tokenizer()
    tokens = tokenizer.tokenize(text)
    quiz = []
    for token in tokens:
        if token.part_of_speech.startswith('名詞'):
            quiz.append(' ' * len(token.surface))
        else:
            quiz.append(token.surface)
    return ''.join(quiz)

やってみた

動画内で出題されたクイズで試してみます。

第1問

filter_noun('マラソンなどで一気に何人もの選手を追い抜くことを、ある野菜を使って何というでしょう?')

結果がこちら。

    などで一気に  もの  を追い抜く  を、ある  を使って というでしょう?

動画内で出題された状態と同じになりました^^

正解は「ごぼう抜き」です。
ちなみにQuizKnockメンバーの山本さんは「などで一気に」が読み上げられた時点で正解していました

もう一問やってみた。

第2問
filter_noun('「入り江」という意味のスペイン語に由来する、日本では志摩半島や三陸海岸に見られる複雑に入り組んだ海岸を何というでしょう?')

結果がこちら。

「   」という  の     に  する、  では    や    に見られる  に入り組んだ  を何というでしょう?

それっぽいかんじになった。
正解は「リアス式海岸」。

さあ問題。

エンジニアのみなさんに名詞抜きクイズ〜

第1問
       に  を置く、      、          、        、     の4つの  の   を取って  する  は というでしょう?
第2問
      を      することで   の         と協働して   をレビューしたり、      を管理しつつ  を    ができる、最も     な            は何でしょう?
第3問
     で に  、  から  に向け、  が  する  を何というでしょう?

いかがでしょうか。わかったかたはコメントお待ちしてます。
(ちょうどいい難度の問題を作ることが難しかったので、ちょっと調整しました、ごめんなさい笑)