この動画はPythonを使って単語同士の計算を行う方法を解説しています。具体的には、Word2Vecという単語をベクトル化するツールを使い、単語の意味的な関係を数値ベクトルで表現して計算します。
まず、準備としてWindows環境でJupyterLabを使い、gensimライブラリをインストールします(%pip install gensim)。このライブラリにはWord2Vecモデルのダウンロード機能があり、単語を300次元のベクトルに変換可能です。
ベクトルデータの例
jawiki.all_vectors.100d.txt

以下からダウンロード
https://github.com/singletongue/WikiEntVec/releases
【ベクトル計算のイメージ】
例えば「king – man + woman = queen」という有名な例があります。キング(king)から男性(man)の要素を引いて女性(woman)を足すとクイーン(queen)が最も類似する単語として算出されます。実際のベクトルは300次元と非常に高次元ですが、足し算・引き算の計算は同じです。また、cos類似度(コサイン類似度)を使って単語同士の似ている度合いを数値化します。
【英語単語の計算例】
gensim.downloader.loadを使ってWord2Vecモデルをダウンロードし、例えば「king – man + woman」を計算すると、結果として「queen」が最も類似度の高い単語として返ってきます。類似度のスコアも表示され、うまく計算できていることが確認できます。
【日本語単語の計算例】
日本語モデルも別途ダウンロードして使います。モデルは圧縮ファイル(.bz2)を解凍し、JupyterLabにアップロードします。あとは英語と同様に単語ベクトルを計算できます。
具体例として、「東京 – 日本 + アメリカ」を計算すると「シカゴ」「ニューヨーク」「ロサンゼルス」など、アメリカの主要都市が類似単語として出てきます。ただし必ずしも期待通りの結果になるとは限りません。
また「トヨタ – 日本 + アメリカ」と計算すると、アメリカの自動車メーカー(GMやクライスラー)が出てきて、意味的に納得のいく結果が得られます。さらに「アメリカ」を「韓国」に変えると、ヒュンダイが類似単語として上位に出てきます。
【まとめ】
・Word2Vecは単語をベクトル化し、足し算・引き算で意味的関係を計算可能。
・英語・日本語いずれのモデルも使えるが結果はモデルやデータに依存し、完璧ではない。
・cos類似度で単語の類似性を数値化し、最も近い単語を抽出できる。
・PythonのJupyterLab環境で簡単に実装可能。
このように、Word2Vecを使うことで単語の意味的な関係を計算し、自然言語処理の理解や応用に役立てられます。興味があれば動画内で紹介されているPythonコードを実際に動かしてみると理解が深まるでしょう。