4/30 研究メモ

この記事について

超進化!クリスマスツリー!

 

ろんぶん よめたね

自然言語処理技術を応用したテキスト(会話)の話題特定

概要

インターネットが発達し、SNSやブログに商品のレビューを発信する消費者が増えている。企業はそこから潜在需要を調査したいが、テキストにはノイズが多いため、有益な情報を得るためにはテキスト内の話題を特定する必要がある。そこで、TF-IDFの手法を応用することにより、話題を特定するシステムを構築した。

という内容。話題展開のためには、まず話題特定をする必要があるので、気分転換にこの論文を選んでみた。

色々な詳細

この研究では、話題を特定するために長岡技術科学大学自然言語処理研究室で作成された話題分類単語辞書、コーパスには名大会話コーパスを使用している。

TF-IDFとは、TFがある単語の文書内での出現頻度、IDFがある単語の出現する文書数の割合の逆数、TF-IDFはそれらの積である。このTF-IDF値が高い単語から連想される話題を文書内の話題とする。ポテトやカフェ、食べるといった単語のTF-IDF値が高い場合、全て"食事・食品"の話題として扱われる。文書内でのTF-IDF値はそれらの合算となる。

文書を20文ごとのドキュメントに区切って、話題特定を走査していくことで、話題の解析を行っていく。

つまり、話題分類単語辞書が強い。

結果

正解データは手動で話題を割り当てたものを使用。改訂版辞書を作成して精度向上させた。話題分類単語辞書では正解率27.80%、改訂版辞書は62.85%だったらしい。

まとめ

機械学習を使用しない話題特定の方法を学んだ。また、割とヒューマンパワーだな~って思った。難しいことはしていないけど、大変なことはしているといった感じ。

参考文献

https://www.anlp.jp/proceedings/annual_meeting/2019/pdf_dir/P1-9.pdf

 

Word2Vecの実装

学習済みモデル

ゲームの中で取り入れる予定のWord2Vecを使用してコサイン類似度を計算するモジュールの実装に取り掛かろうと思って調べたら、こんな記事があった。

機械学習で手間がかかるのはデータの前処理と学習時間なので、それをスキップできる学習済みモデルは非常にありがとうございますって感情になる。ここの実装で時間をとるわけにはいかないので、使っちゃおう。

日本語wikipediaコーパス&100万語なので、かなり最強モデル。150MBでモデル構築できる点も優しい。

gensim

自然言語処理用のPythonモジュールのこと。TensorflowとかPyTorchと違って機械学習全般のフレームワークではないらしい。何が利点なのかよくわからないけど、とりあえず色々使ってみよう週間なのでインストール。pipで終わり。

ちゃんと採点できるかやってみた1

カレーライスと...

  • ハンバーグ:0.91319597
  • たまねぎ:0.81779665
  • ニンジン:0.78158
  • リンゴ:0.6986244
  • 肉:0.6545703
  • 肉じゃが:0.6398204
  • ビーフシチュー:0.4977274

人間的にはカレーライスとビーフシチューって似ていると感じるけど、このモデルではハンバーグが最も近いらしい。どこで近いと判断しているのかよく判らない。

人間って料理を見た目だったり、料理工程だったり、材料だったりで判断していると思うので、そこら辺の概念を取り入れたモデルを構築、ってことになる。正直無理な話。

ちゃんと採点できるかやってみた2

小学校と...

  • 中学校:0.92630494
  • 高校:0.7820883
  • 中学生:0.68554324
  • 小学生:0.61433554
  • 消防署:0.5026281
  • 大学:0.49687877
  • こども:0.37485522
  • 家:0.22923522

中学校が最も近くて、高校、大学と並んでいるので、割と正確な類似度だと思う。施設関連で消防署や大学がそこそこ高いのも優秀。

概念があまり多岐に渡らない単語なら、機械的計算でも類似度があまり狂わないのかな。

ちゃんと採点できるかやってみた3

パソコンと...

  • 携帯電話:0.8369839
  • 電化製品:0.6829237
  • ゲーム:0.61073864
  • モニター:0.49962842
  • テレビ:0.48581332
  • マウス:0.4743699
  • ラジオ:0.39578205

ちゃんと関連性のあるもので類似度が高くなっている。

まとめ

人間が似ていると思う時って、文章の中の意味だけじゃなくて見た目とかも考慮しているはずだから、やっぱり難しい。

見た目を考慮するならば、画像系と合わせたマルチモーダル学習が必要になるけど、画像を大量に扱うほどの環境がない。無理って話。

それでもWord2Vecを使用したコサイン類似度の計算自体は有用なので、利用しない手はないけど、改善案を出すのは厳しい。

僕がやるべき課題は、全体部分関係を持った連想語の出力方法を模索することだ。

 

Webアプリの開発練習

とりあえず自然言語処理で今できることはやったので、Webアプリのお勉強をしていくぜ。

サークルの大先輩kakiraちゃんさん先輩がくれた案でとりあえず行くぜ。

クライアント:javascript or typescript
音声認識:Web Speech API
音声合成:WebAudioAPI

サーバー:Flask
画像スクレイピング:unsplash
機械学習:Flask内でライブラリ呼ぶ

 サーバー側の勉強から始めようということで、

サークルの大先輩ikaroちゃんさん先輩のWebApp講座の資料を進めていくぜ。

今のところ、pycharmが無料版なのでデータベースのアレコレで詰まっているところ。俺には知らないことが多すぎる...

 

明日は

サーバー側のお勉強を進めましょう。あと論文を一本くらいは読みましょう。