キカガク(KIKAGAKU)で「機械学習による自然言語処理」を学ぶ

Photo by Icons8 Team on Unsplash

今回は、キカガクで「機械学習による自然言語処理」を学んだ。

学習内容

実装の流れ

自然言語処理の流れ(文章の特徴を抽出するための操作)は次のとおり。

  1. データの収集
  2. 【前処理】クリーニング処理
  3. 【前処理】単語の正規化
  4. 【前処理】形態素解析
  5. 【前処理】基本形への変換
  6. 【前処理】ストップワード除去
  7. 単語の数値化
  8. モデルの学習

データの収集

解決したいタスクに応じてデータを収集する。

【前処理】クリーニング処理

HTMLのタグなど意味を持たないノイズを削除する。
BeautifulSoup や 標準ライブラリ re モジュールを使用する。

【前処理】単語の正規化

半角や全角、小文字大文字などを統一する。
表記ゆれ(「行う」と「行なう」、「りんご」と「リンゴ」、「Apple」と「apple」等)を統一する。

【前処理】形態素解析

文章を単語ごと分割する。単語の分かち書き。
MeCab、Janome、JUMAN++ を使用する。

MeCab は MeCab: Yet Another Part-of-Speech and Morphological Analyzer から mecab-0.996.exe をダウンロードしてインストール(文字コードは UTF-8 を選択)。
さらに、pip install mecab-python-windows で Python 開発環境にもインストール。

【前処理】基本形への変換

語幹(活用しない部分)への統一を行う。
例:学ん(だ)→学ぶ

主に MeCab を使用する。
昨今の実装では基本形へ変換しない場合もある。

【前処理】ストップワード除去

出現回数の多すぎる単語など、役に立たない単語を除去する。
ストップワードをまとめた辞書との一致検索や出現頻度による削除を行なう。
昨今の実装では除去しない場合もある。

単語の数値化

機械学習で扱えるよう文字列から数値へ変換を行う。

モデルの学習

タスクに合わせ、古典的な機械学習~ニューラルネットワーク選択する。

オープンデータセットについて

オープンデータセットとはある団体が保有しており、自由に活用できるよう公開しているデータのこと。

オープンデータセットは次のようなものがある。

オープンデータセットのまとめサイト

ソースコード



実行結果


Posted in  on 7/30/2020 by rteak |