Alteryxで日本語のテキストマイニングを行う方法について解説します
日本語のテキストマイニングは、英語のテキストマイニングに比べハードルが高いです。一番の理由は、単語の切れ目が日本語にはない、ということです。英語であれば、空白で区切るだけで単語の切れ目がすぐにわかります。これは非常に大きなハードルで、日本語では「形態素解析」という技術を使って単語に分割する必要があります。
Alteryxはローカライズされているとはいえ、元々英語圏のソフトウェアのため、英語圏以外での言語で使用する際に制限を受けるツールがいくつか存在します。さらに、先程述べた形態素解析、という機能は持っていないため、少し工夫が必要になってきます。
本ブログではAlteryxを使ってテキストマイニングする手法を紹介したいと思います。
テキストマイニングとは?
まず最初にテキストマイニングとは何なのか?簡単に解説したいと思います。
まず、データマイニングという言葉があるかと思いますが、これはデータを分析することで何かしらの知識を得る、ということになります。
それでは、テキストマイニングとは、テキスト(文章)を分析することで何かしらの知識を得る、ということになります。このテキスト、というのはいわゆる自由記述の文章のことを意味し、アンケート、コールセンターの問い合わせ、SNSなどの口コミなど非常に多くのデータが該当します。
テキストデータ(文章)はいわゆる非構造化データですので、例えば構造化データである数値などで構成されている販売データなどと比べると分析するのが難しいです。そのため、テキストマイニングの分野は構造化データとは異なる手法で行われます。
その分析の特殊性のため、業務で普段使っているようなExcelなどでは有効活用が難しいデータではありますが、機械学習、ディープラーニングなどの技術の発達により以前よりはハードルが下がってきています。
テキストマイニングの基本的な手法としては、形態素解析によりテキストを単語に分解し、単語の出現頻度や単語の持つ意味、単語の関連性などを分析することで、文章が肯定的なのか否定的なのか、どういう話題のテキストなのか、などの文章の特徴を得ることができます。
それでは、代表的な分析方法について紹介します。
ワードクラウド
単語の出現頻度をカウントし、それを文字のサイズとして図に表現したものです。以下のようなイメージが得られます。
感情分析(センチメント分析)
文章が否定的なのか、肯定的なのか、というのを分析します。基本的には各単語が否定的なのか、肯定的なのか、辞書として持っておきこれを活用するものが多いようです。
結果としては、肯定的、否定的、という結果が得られます。これは、口コミなどの評価を分析するのに利用できます。
トピックモデリング
各テキストが何の話題なのかというトピック(話題)を分類する分析手法です。チャットボットなどで質問された内容がどの内容なのか、というのを判断したりする際に使われたりします。
なお、これらの分析を行うためには、基本的に単語がベースとなります。しかしながら、日本語には単語の切れ目がありません。英語であれば、基本的に空白区切りになっているので単語を切り出すのは非常に簡単です。この差が日本語でのテキストマイニングの難易度が高くなる理由です。
これを行うためには形態素解析、という手法で単語を分割する必要があります。
形態素解析
文章の中から単語を分割し、それぞれの品詞を判別する作業です。
日本語の場合は、形態素解析を行った上で、ワードクラウドや感情分析、トピックモデリングができるようになります。ただ、感情分析などのライブラリ側にすでに形態素解析の機能が組み込まれていて(この場合MeCabが使われていることが多いです)、わざわざ別途形態素解析を行う必要はあまりありません。しかしながら、自分でオリジナルの分析を行いたい場合は形態素解析の機能が必須となると思います。
Alteryx内蔵のテキストマイニング機能について
Alteryxのインテリジェンススイートにてテキストマイニングというカテゴリが追加されました。この機能を使うことでテキストマイニングが可能なのですが、基本的には英語のみ対応となっています(将来のバージョンアップに期待しましょう)。
念の為、インテリジェンススイートの代表的なテキストマイニング機能についてリストアップします。
- ワードクラウド
- 感情分析
- トピックモデリング
- 固有表現抽出
- 品詞タグ付け(2022.1~)
なお、トピックモデリングについては、LDAアルゴリズムを用いているため言語は問いませんが、あらかじめ空白で単語を区切っておく必要があります。
Alteryxで日本語のテキストマイニングをするには?
バージョン2021.4の時点では、Alteryxに備わっているテキストマイニング機能では日本語が使えないので、Python、R、WEB APIなどで実装する必要があります(現状での現実的なラインがこれです)。一つずつ見ていきましょう。
WEB APIを利用する
Alteryxで行うテキストマイニングとして、一番現実的なのは有料になりますが、各クラウドプラットフォームなどが持っているAPIを使うことです。一般的にこれらの機能はNLP(Natural Language Processing:自然言語処理)と呼ばれます。三大クラウドであれば以下のような形で提供されています。
クラウド名 | サービス名 |
---|---|
Amazon AWS | Comprehend |
Microsoft Azure | Text Analytics |
Google GCP | Natural Language |
ちょっと試すにはGoogleアカウントをお持ちの方も多いGoogleがとっつきやすいかと思います。
いずれも感情分析、トピックモデリングの機能を持っているため、形態素解析は不要ですが、形態素解析単独で必要ということであれば、例えばGCPであればNLP Syntaxに形態素解析の機能が備わっています。
APIをどうやって利用するか?
Web上のRestAPIは、ダウンロードツールを使うことで利用することができます。
ダウンロードツールといいつつアップロードもできるツールなのですが、各種パラメータやデータをJSONファイル等で作っておき、APIのURLに対してアクセスすることで結果を得ることができます。
通常であればプログラミングが必要ですが、Alteryxの場合はもちろんノンプログラミングです!
Python/Rを利用する
Alteryxが持っているPython/Rツールを使って各種ライブラリを実装することでテキストマイニング機能が利用できます。Python/Rツールについてはプログラミングが必要になってしまいますが、これらは一度マクロに組み込んでしまえば自由に使うことができます。
基本的に形態素解析ライブラリ、感情分析ライブラリは手軽に使用できるようです。
ここでは、AlteryxのPythonツールで使えるテキストマイニング用ライブラリをご紹介します。
カテゴリ | ライブラリ名称 | Pythonライブラリ | コメント |
---|---|---|---|
形態素解析 | MeCab | mecab-python3 | 日本語形態素解析のデファクトスタンダード的存在。Pythonのパッケージはいくつかあるので注意(環境によって動いたり動かなかったりするようです)。パッケージによっては、MeCabのインストールが必要です(mecab-python3の場合は不要です)。 |
形態素解析 | Janome | janome | 手軽に使える日本語形態素解析ライブラリです。PythonならPIPでインストール可能。Alteryxの場合は、Package.installPackages(['janome'])でインストールします。単独で動くので楽です。 |
感情分析 | oseti | oseti | 感情分析用のライブラリです。インストールにはVisual C++ Build Toolsが必要になります(Package.installPackages(['oseti'])の前にインストールする必要があります)。※バージョンの低いMeCab-Python3にしか対応していないため、利用にはご注意ください(2022/05) |
感情分析 | ML-ASK | pymlask | 感情分析用のライブラリです。一般的なネガ、ポジより細かく喜怒哀楽レベルで出力してくれますが、文章に感情表現がない場合は出力なしになってしまいます。なお、MeCabのインストールが必要です。 |
その他にもたくさんのライブラリがありますが、動作確認次第追加して行きたいと思います。
※Alteryx Designer 2021.4.1.04899 時点の情報です