2015年6月2日火曜日

Azure Machine Leaning の Feature Hashing で日本語を試してみる

 

Azure Machine Learning には、Text Analytics の機能があります。英語の文章は使えるのですが、日本語データの動作はどうなのでしょうか?

今回は、日本語でbag-of-wordsやN-Gramシーケンス的な動きを利用するために、Azure Machine Learningが持つFeature Hashing の動作を確認してみます。

 

サンプルデータ

 サンプルデータを用意しました。英語文章と動作を比較したほうがわかりやすいと考え、英語文章と日本語文章をそれぞれ用意しています。日本語文章に関しては、あらかじめ単語をスペース区切りにしたデータを用意しました。英語文章はスペースで区切られているため、そのままFeature Hashingできますが、日本語文章はスペース区切りではないため、事前にスペース区切りにしています。日本語文章のText Analysisを行う際はmecabなどで形態素解析したほうが良いでしょう

ml01

 

Feature Hashing の設定

 Feature Hashingは、文章の中でどの単語が多く使われているかカウントすることにより、文章の特徴を数値データ化する機能です。今回はハッシュ具合(ちゃんとばらけるか)と、正しく単語をカウントできるか確認したいので、わかりやすく小さい数値データとして作成してみます。Feature Hashingの設定は、ビットサイズを5(32に分ける)に設定、N-gramシーケンスの設定はハッシュ具合をみるためにunigram(n = 1)として単語間のつながりは無視します。

ml03

 

UTF-8 文字列そのまま Feature Hashing してみる

 サンプルデータは、UTF-8で保存されたcsvです。そのcsvをFeature Hashingに入れてみたのが下記の結果です(画像サイズの関係で一部です)。日本語文章はすべて異なる単語で構成されていますが、同じ単語として3つカウントされています。UTF-8だと期待通りにハッシュ化されにくいようです。

ml02

URLエンコードしてから Feature Hashing してみる

 それでは、UTF-8をURLエンコードしてASCII文字列にしてみます。下記は、Rを使ったURLエンコードで生成しています。同じ文章でも今度は期待通りにハッシュ化されているようです。

ml05

URLエンコードへの文字列変換は下記のような感じです。

ml04

下記はRのソースコード

さいごに

 Azure Machine LearningでText AnalysisのFeature Hashingをする場合は、日本語をASCII文字列にエンコードして利用したほうがよさそうですね。

文字列操作のためにも.NETを使えるようにしてほしい。。。

6 件のコメント:

  1. We are on the whole mindful that innovative improvements have given us a feeling of directionality. Be that as it may, then again, these progressions will significantly affect everybody all over the place. In both individual and expert lives. machine learning course in pune

    返信削除
  2. Great post i must say and thanks for the information. Education is definitely a sticky subject. However, is still among the leading topics of our time. I appreciate your post and look forward to more.
    Data Science Institute in Bangalore

    返信削除
  3. Excellent Blog! I would like to thank for the efforts you have made in writing this post.
    Data Science Certification in Bangalore

    返信削除
  4. Extraordinary blog went amazed with the content they have developed in a very descriptive manner. Hope you deliver the same near the future as well. Gratitude to the blogger for the efforts.

    360DigiTMG Cloud Computing Course

    返信削除
  5. Terrific post thoroughly enjoyed reading the blog and more over found to be the tremendous one. Infact, educating the participants with it's amazing content. Hope you share the similar content consecutively.

    360DigiTMG Data Science Course

    返信削除