2018年2月9日 更新

word2vec:Pythonで単語ベクトルを作成する_実装編

1,116 view お気に入り 0
 (4543)

前回の記事,「word2vec:Pythonで単語ベクトルを作成する」で単語ベクトル作成の理論を解説しました.ということで今回は,python,特に gensim と呼ばれるライブラリを用いて単語ベクトル作成の実装を行います.そして図に示したような単語ベクトル作成の足し算・引き算を行います.
import gensim
import os

class MySentences(object):
    def __init__(self, dirname):
        self.dirname = dirname

    def __iter__(self):
        for fname in os.listdir(self.dirname):
            for line in open(os.path.join(self.dirname, fname)):
                yield line.split()

path = os.getcwd()
sentences= MySentences(path + "\\test")  # カレントディレクトリに testフォルダ を作成し,その中に,学習用のテキストファイルを入れて下さい.
model = gensim.models.Word2Vec(sentences, min_count=10, size=200)  # 単語ベクトル作成
vec_calc = model.most_similar(positive=["Japan", "Paris"], negative=["Tokyo"], topn=1)  # [Japanベクトル]-[Tokyoベクトル]+[Parisベクトル] を表しています.
print(vec_calc)

# [('French', 0.9493083953857422)] が出力されます.
word2vec.py
[Japanベクトル] ー [Tokyoベクトル] を計算することで,[country nameベクトル] を取得し,[country nameベクトル] + [Parisベクトル] を計算することで,[Frenchベクトル] が得られる.という内容を上記の実装で行っています.

今回は学習用テキストファイルの内容が,首都と国名がペアになって記述されているものなので,[country nameベクトル] や [capital nameベクトル] が取得できます.学習データを変えてみるともっと面白いことが出来そうです.

因みに,https://github.com/RaRe-Technologies/gensim-data に行くと,色々な種類のデータが手に入ります.また,gensim の Doc2vec を用いれば,文書をベクトル化することも可能らしいです (word2vec は単語をベクトル化する).今後,Doc2vec にも挑戦してみようと思います.

4 件

関連する記事 こんな記事も人気です♪

画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

画像のFilter をPython で視覚的に理解する (Gaussian, Edge 抽出).

Python を用いて,画像のFilter を視覚的に理解してみます.コードを載せていますので,実装可能です.
三好 裕之 | 1,221 view
python+tensorflowでatariのponをDQN(深層強化学習)してみた。

python+tensorflowでatariのponをDQN(深層強化学習)してみた。

今回兼ねてからやってみたかったDQN(深層強化学習)を触ってみました。 とは言っても、githubにあったコードを実行するだけですが、実際に学習していく様は楽しかったです。
Takumi Ihara | 1,537 view
Python + tensorflow でGANを試してみた.

Python + tensorflow でGANを試してみた.

今回兼ねてからやってみたかったGANを触ってみました。実際に画像が生成されていく様は楽しかったです。
Takumi Ihara | 4,612 view
Kaggleで使われている略語リスト

Kaggleで使われている略語リスト

機械学習のサイトKaggle で使われている略語をまとめました. 画像は[https://static1.squarespace.com/static/58a3826fd2b857e5fe09f025/58ac6a226b8f5b3bdce84c5a/58d04a9246c3c4a6bd5ab664/1490045642866/Kaggle+Workshop.png?format=1500w]から引用
Takumi Ihara | 910 view

この記事のキーワード

この記事のキュレーター

井上 大輝 井上 大輝