わたしのきもち創刊号(機械学習エンジニアになりたい)

はじめまして、エンジニアのもけ太郎(仮名)です。

 

先日、コーヒーを飲もうとしたら「技術について何か書いてください!」ライブ感たっぷりにご依頼を受けたので、つい先日から取り組み始めた『自然言語解析』について書いていこうと思います。

 

 

 

 

 

 

まずは、自己紹介をさせてください。

 

私は、いつもサイトの開発業務を行っています。機械学習については興味があるものの、業務ではまだ利用したことはなく、スキルアップのため個人的に学習へと取り組んでいる真っ最中です。

 

本稿は、私と同様に「機械学習に興味はあるけど、どこから何をすれば良いか判らない……」という方の参考になればと思い『とりあえず動かしてみよう!』をテーマに書いていこうと思います。

 

 

 

 

 

 

まずは環境準備

さあ、第一回目となる今回。まずは、環境を準備していきましょう。

 

利用する技術は……

■データ抽出(形態素解析)には mecab

■機械学習には python のライブラリ

 

あとは、これらが動くサーバー環境が必要ですが、本編では vagrant 上の centOS 7.2 を利用しています。

 

  • python 3.6 の導入

なお、centOS に標準導入されている python 2系があるため、本稿では python の実行コマンドは python3.6、 pip の実行コマンドは pip3.6 となります。

 

  • mecab の導入

 

  • mecab-python の導入

 

これにて下ごしらえが完了です。

この段階で、python を通じて mecab を利用した形態素解析を行うことができます。

 

  • ある文章を分かち書きしてみる

  • 実行

このコードによって文章が分かち書きされます。

カウントを取ることで頻出単語を見分けたり、名詞や動詞のみを抜き出したりすることも可能です。

 

 

勢いに乗って

さあ、今回は勢いに乗ってこのまま機械学習にも取り組んでみましょう。

 

  • 大量の口コミデータをもとに類語検索を行う

弊社の運営サイトに「てくてく」というペット施設の口コミサイトがあります。

 

今回は、てくてくに投稿された口コミのデータをもとに、gensim を利用してキーワード同士の関連性を学習させてみます。

もしかしたらサイト内のレコメンデーション機能として利用できるかもしれません。

 

  • numpyscipygensim  の導入

 

次にgensim を利用して、分かち書きファイルを読み込んでベクター情報を生成し、ファイルとして保存するコードを用意します。

  • ベクター情報を作成する

 

最後にベクター情報をもとにシソーラスを表示してみましょう

  • シソーラスを表示する

 

ということで、1000件の口コミを学習したモデルに対して、公園に関連性が高いキーワードを出してみます。

公園から関係性が高い順に表示してみると上位には「水飲み」「天然・芝」「広大」など、公園に係るキーワードが取得されていそうです。

おそらく、てくてくに口コミを投稿してくださったペットオーナーの皆さんが、公園を評価する際に、「ペットが利用できる水飲み場」「ペットの足に優しい天然芝」であることや「広大なランスペース」があることに関心を寄せているのでしょう。

てくてくのサイト上で、公園を検索する際の条件として「水飲み場あり」や「天然芝」などを用意してあげると利用者の需要を満たせそうだということが判りました。

 

 

終わりに

ここまでのご精読、誠にありがとうございました。

 

私は、分かりやすく説明できるほど機械学習を理解もしていなければ、数学が得意な人間でもないため、機械学習関係の記事にしては、珍しいことにほとんど説明がありません……。

そんな私でも少し調べてライブラリを利用してみるだけで、こんなに面白い結果を出すことができました。

 

「機械学習に興味はあるけど、どこから何をすれば良いか判らない……」という皆さんも、
「とりあえず動かした!」仲間として、ぜひ一緒に機械学習へと挑戦してみてはいかがでしょうか。