LoginSignup
2
2

More than 1 year has passed since last update.

BertとWord2vecを組み合わせて謎かけWEBサイトを作ってみた。

Last updated at Posted at 2023-02-25

お遊びアプリとして
BertとWord2vecを組み合わせて謎かけWEBサイトを作ってみた。

謎かけって何

以下のようなもの
  お題:野球
  「野球」とかけて「システム」と説く 
   その心は!どちらも「捕手/保守(ホシュ)」がつきものです。

謎かけAIでやるには

  • ×ねずっちの回答を学習させるにはデータ量が足りない。
  • 〇既存の学習済みモデルを使う。

使った技術は

  • Bert(2018年:Googleの自然言語処理モデル)
    文章としての正しさを特定
  • Word2Vec(単語をベクトル化し類似度を推測)
    単語の類似度を特定

アルゴリズム

謎かけ.png
事前に何個かの定型文を用意する。

XXXにYYYは必要です
XXXはYYYが課題です

2.定型文のXXX(例:利根川)の部分にお題をいれる。YYYをマスクする。

利根川に[MASK]は必要です

3.上記をBERTを使って、複数の[MASK]の候補リスト(100個ほど)する。

4.上記だけだと、お題と無関係な単語も出てきやすいので、(「僕」とか、「それ」が)
 word2vecを使って、候補リストで、お題と関係性の強い単語に
 絞り込む
(今回は用水(ようすい)が候補の一つ)

5.上記で絞り込んだ候補リストのうち、同音異義語のDB に該当する単語があるか
 求めて、同音異義語の候補リストを求める(今回は羊水(ようすい)が候補の一つ)。

6.候補リストを定型文のYYYにおいてXXXをマスクする。

[MASK]に羊水は必要です

7.上記をさらにBERTを使って、複数の[MASK]の候補リストを求める(100個ほど)。

8.上記だけだと、候補と無関係な単語も出てきやすいので、
 word2vec.most_similarを使って、候補と関係性の強い単語に
 絞り込む(この場合:出産)

9.上記で複数候補がでてくるので,一定の判断基準で並べ変えて出てきたものを解答する。(BertのスコアとWord2Vecのスコアでソート、多少ランダム要素を入れています。)

同音異義語のDB

こちらのVocabulary Database for Reading Japanese (VDRJ) Ver. 1.1
重要度順語彙データベース (Top 60894) 重要度順位 00001-60894 (42MB)
から作成
http://tatsuma2010.web.fc2.com/VDRJ_Ver1_1_Research_Top60894.xlsx
感謝です。

今後の課題

  • 時事問題に弱い。BERTや同音異義語の辞書を改める。
  • いくつかの候補の中から、何が最適解かを判断するのが難しい。
2
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2