前回のキーワードの頻度分析に引き続いてword2vecです。word2vecはある程度のボリュームのテキストから、ある単語の近辺に存在する他の単語の分布確率を低次元の特徴量のベクトルで表すことができるように学習するツールです。周囲に出現する他の単語の分布確率が似た単語は同じような意味合いを有する言葉と言うこともできますので、特許的に言うと、特許検索の際の類義語探索に用いることが期待されます。また、意味的な足し算・引き算が有効に機能するように見える場合もあるようです。例えば、東京から日本を引いてフランスを足した特徴量ベクトルに近い単語はパリになるというような事例があります。
word2vecの説明はこれくらいで、前回のZITの1件の特許データをword2vecで処理してみましょう。本来はこのような少量のテキストよりもある程度のボリュームで処理するものではありますが、操作のお試しとしてはこれくらいから始めるのがよいでしょう。また、国内ではまとまった量の特許のテキストデータを無料でスムーズに入手することは難しいという事情もあります。
まず、最初にword2vecで処理が可能なテキストデータを準備します。Jupyter上で処理してもよいのですが、楽なのでコマンドライン上でMecabのコマンドで処理を行います。
mecab -Owakati samplepatent.txt -o sampledata.txt
まず、最初にword2vecで処理が可能なテキストデータを準備します。Jupyter上で処理してもよいのですが、楽なのでコマンドライン上でMecabのコマンドで処理を行います。
samplepaten.txtは前回の1件の特許の詳細な説明のテキストデータで、上記のMecabのコマンドで処理した結果は、形態素解析で切り出したキーワードをスペースで区切った以下のようなデータになります。前回は品詞等の情報が付いていましたが、このコマンドでの処理ではこのような形態素解析処理になります。
【 発明 の 詳細 な 説明 】
【 技術 分野 】
【 0 0 0 1 】
本 発明 は 、 例えば 、 スマートフォン や 携帯電話 や タブレット 等 の 主 に 無線 により ネットワーク に 接続 可能 な 携帯 クライアント ( 携帯端末 ) に 、 肌 測定機 装置 を 接続 し 、 ネットワーク を 介し て データ を 送受 する こと により 、 肌 の 状態 の 測定 と 測定 結果 の 分析 と を 行う とともに 、 測定 結果 や 分析 結果 の データ ( 測定 データ 、 分析 結果 データ ) を 管理 する 肌 状態 測定 分析 情報管理 システム および 肌 状態 測定 分析 情報管理 方法 に関する 。
作成したこのテキストデータをword2vecで処理していきます。まずはgensimからword2vecをimport。
from gensim.models import word2vec
data = word2vec.Text8Corpus('sampledata.txt')
model = word2vec.Word2Vec(data, size=200)
out=model.most_similar(positive=[u'データ'])
out
out=model.most_similar(positive=[u'登録'])
out
out=model.most_similar(positive=[u'化粧品'])
out
out=model.most_similar(positive=[u'肌'])
out
out=model.most_similar(positive=[u'表示'])
out