AI初心者の初めてのAI

木村情報技術の山口です。普段はAIを用いない部署でのシステム開発を担当しています。当社のAI事業部に憧れてAIを自分で作ってみました!
突然ですが情報社会で情報が多すぎる、なにが正解かわからないことがよくあります。
皆さんもありませんか?
最近は新型コロナの情報が錯綜していると思います。
そこでpython初心者が、コロナ予防の手洗い、うがいの情報を大量に集め、一体何が大事なのかを「Word2Vec」を使って解析してみたのでまとめます。
作る過程は省いております。
結果
解析したのですが、半分解析できたのかな?という結果になりました。
気になる方は続きをどうぞ。
Word2Vecとは
私の認識では単語に数字を付けてベクトルを描くイメージです。
例えば、
犬は10、狼は11、猫は5、虎は6
などのように単語に数字をつけます。意味が近い単語は数字も近くなります。
ベクトル化することで文字の計算ができるようになります!
有名なものでは、
「王様」- 「男」+ 「女」= 「女王」
という計算があります。
こちらにWord2Vecについて詳しく書いてあります。
参考:Pathmind word2Vec wiki
https://pathmind.com/jp/wiki/word2vec
AI(人工知能)を作る
簡単に箇条書きです。以下のことを実施します。
- データ(文章・情報)を集める
- 文章を分解する
- Word2Vecでベクトル化する
データ(文章・情報)を集める
ここではWebスクレイピングを行います。
Webスクレイピングとは ウェブサイト等から情報を集める技術のことをいいます。
Pythonにはスクレイピング用の「Beautiful Soup」というライブラリがあります。
参考はこちら!
参考:Beautiful Soup Documentation
https://www.crummy.com/software/BeautifulSoup/bs4/doc/
作るのが大変だという場合はコピペで文書を集めるのもありだと思います!
たくさん集めるにはやっぱりwebスクレイピングを使ったほうが効率がよいです。
文章を分解する
文章を分解するには形態素解析をします。
形態素解析とは
おじいさんは川に洗濯に、おばあさんは山へ芝刈りに行きました。
という文章を
おじいさん、川、洗濯、おばあさん、山、芝刈り
など単語が意味を持つ最小の単位に分割することです。
Pythonには形態素解析用の「MeCab」というモジュールがあります。
こちらを使って形態素解析を行います。
参考はこちら!
参考:Mecab公式ページ
http://taku910.github.io/mecab/
Word2Vecでベクトル化する
PythonでWord2Vecを使うには「gensim」というライブラリを用います。
ここを参考に構築させていただきました。わかりやすい記事でした。
ありがとうございます。
参考:Pythonで「老人と海」を word2vec する
https://m0t0k1ch1st0ry.com/blog/2016/08/28/word2vec/
実践!!
今回は「新型コロナ 予防」の検索結果の記事をたくさん集めます。
274KBほどのtxtファイルになりました。
形態素解析を実施しました。
その後word2Vecを使って人工知能モデルを作成。
作成したモデルを使って解析してみました。
「手洗い」「うがい」で関連度の高い物を調べてみます。
「手洗い」の解析結果
まずは「手洗い」から。なんとなく言いたいことはわかります!
指を石鹸やアルコールでこまめに消毒することが重要なのでしょう。
「うがい」の解析結果
続いて「うがい」で解析してみました。
エラー発生!!!
ごちゃごちゃ書いてありますが、エラーが発生して解析できませんでした。
原因としては、コーパス(辞書)に「うがい」がなかったことです。
そのため、形態素解析の段階で「うがい」が意味を持たない単語に分類されていたようです。
今回は実施しませんでしたが、この問題はコーパスに単語を登録することで解決します。
以上で、人工知能で解析してみたことを、簡単にですがまとめました。
まとめ
作る前に下準備をし、解析した後にどう生かすはスキルが必要そうですが、人工知能を作ること自体は意外と簡単です。
初心者でもAIで簡単に作れそうなので皆様もぜひ挑戦してみてはいかかでしょうか?