>PythonとWord2Vecでテキストマイニング|単語同士の意味の近さや文章の類似度を算出2024-09-26TwitterShareHatenaPinterestLINE文章の解析を行うために、類似度の判定などを扱う一般的な方法として、Word2Vecと呼ばれるテキストマイニングの手法があります。Word2Vecは2013年にGoogleが開発した手法です。...あわせて読みたいWord2Vecによるテキストマイニングは、言葉をベクトル(向き)で表現するため、向きの近さ(角度の小ささ)を見たり、向きの重ね合わせ(角度の変更)ができます。例2:FastTextに学習済みモデルの活用モデルを用いた類似度算出1:特定の単語の類義語を検索する2:文章間の類似度を判定するWordnetの利用WordnetのDB定義Wordnetの準備Wordnetの実行例まとめ本記事のゴール|単語をWord2Vecで処理できるようになる!難しそうに思われがちな単語の類語検索や単語の足し算引き算などの処理をPythonからWord2Vecを使って処理できることを目指します。※王様から男を引いて、女を足すと女王になるという意味です。今回はPythonのgensimというライブラリを用いてWord2Vecを使います。文章を単語に分解するためMeCabも利用します。以下のライブラリを入れてください。gensimmecab-python3Word2Vecのモデル作成PythonでWord2Vecのモデルを作るには以下のように作成します。InputにするMeCabで形態素解析するファイルはWikipedia、Twitter、アンケート、コールセンターの対応ログ、小説などにすることが多いです最初から作成するのは「面倒そう」と思われる方は、次に解説する「学習済みモデルの活用」に移って学習済みモデルを活用する方法を参照してください。単語A(例えば、戦争)、単語B(例えば、怒り)を引いたときに、どのような意味が類語としてあがるのかといったことを確認できます。前章で1からmodelを作成する方法を簡単に解説しましたが、準備に時間のかかる学習フェーズ(model作成の工程)をスキップし、学習済modelを活用する方法をご紹介します。modelの2つです。ダウンロードできます。よる分かち書きでWikipediaを使って学習したモデルです。50次元のみ公開されています。モデルを利用するのは簡単で、以下のようにgensimで読み込み、後は普通のWord2Vecとして活用するだけです。Word2Vec.load(word2vec.gensim.model)例2:FastTextに学習済みモデルの活用Facebookの学習済みFastTextモデルはこちらからダウンロードできます。ダウンロードしたモデル(vectorフォルダのmodel.vec)は以下のように読み込みます。読み込んだモデルで特定の単語の類義語検索を行う方法と文章の類似度測定方法の2つをご紹介します。1:特定の単語の類義語を検索する例えば、「講義」という単語の類義語を見つけたい場合は以下のように数行書くだけとなります。print(result)実行結果は以下のように単語とコサイン類似度のセットが返ってきます(コサイン類似度の高い順に返ってきます)。0.5596680641174316)2:文章間の類似度を判定する単語の類義語を探すだけではなく、文章間の類似度を計算することもできます。以下は、文章を構成する単語のベクトル平均を文章のベクトルとみなして計算する方法です。get_vector('昨日、カレーを食べた。get_vector('昨夜、Netflixでお笑いを見た。2020/4/6Wordnetの利用WordNetは同義語・意味上の類似関係を分類した巨大な辞書(シソーラス。該当する言葉を検索することができます。日本語版もありますが、本家のWordNet(英語)と日本語WordNetを照らし合わせると、違うところもあるので、日本語WordNetのデータ構造から中身を把握した方がよいと思います。ソースだが、何に使われるのか不明Wordnetの準備DBとDBアクセスに必要なプログラム(wordnet_jp.py)をダウンロードし、Pythonの実行フォルダ(ユーザーフォルダなど)においてください。databaseのリンクからDBをダウンロードください。ダウンロードください。「楽しい」という単語が意味の集合に含まれる単語の一覧(同義語集合)を表示するプログラムです。wordnet_jp.getSynonym(word)print(synonym)以下のような結果が返ってくれば正しく動作したことになります。'面白い']}まとめ今回、Word2VecをPythonから呼び出し、modelを作成する方法、学習済みmodelを使って単語の類語検索をする方法、Wordnetを使う方法を紹介しました。1からmodelを作成するのは大変と思われた方も、学習済みモデルを使うことで簡単に類語を探すなどができるようになったかと思います。類語を使うことで、テキストマイニングをする際に、特定の単語に集約して分析することや、チャットボットの構築や感情分析の精度向上につなげるといったことが期待できます。数行のコードを記載するだけで、簡単に対応することができると思います。皆さまお試しください。共起ネットワークとは、SNS投稿やWebサイト、アンケート、書籍/論文、歌詞などの「文章」に含まれる「単語間の共通性」を見出し、図で表現する方法です。...あわせて読みたいTwitterShareHatenaPinterestLINEこの記事を書いた人みなもデータ分析に強くなるためのポイントを解説します。Excelを用いた統計分析や、テキストマイニングツール、BIツールの情報を中心にお届けします。