ChatGPTにWord2Vecを教えてもらった

ChatGPT

こちら2023年4月の内容です。

※ Word2Vecのインストールは

pip install gensim

で、できます。

コードをネットで検索すると時間がかかります

と、いうわけでChatGPTに聞いてみました!”

“word2vecで、分かち書きした小説を解析するコードを教えて”

と質問してみました。

ChatGPTの答えはこんな感じ

Word2Vecは、単語を数値化する手法の1つで、自然言語処理の分野で広く使用されています。ここでは、Pythonのgensimライブラリを使用してWord2Vecを実装する方法を説明します。

  1. gensimライブラリをインストールします。

python

!pip install gensim
  1. 分かち書きした小説のテキストファイルを準備します。テキストファイルには、スペースで区切られた単語のリストが含まれている必要があります。
the cat sat on the mat
the dog ran away
...
  1. ファイルを読み込み、Word2Vec を学習させます。以下のようなコードを使用することができます。
from gensim.models import Word2Vec

# テキストファイルの読み込み
with open('text.txt', 'r', encoding='utf-8') as f:
    sentences = [line.strip().split() for line in f]

# Word2Vecの学習
model = Word2Vec(sentences, size=100, window=5, min_count=5, workers=4)
  • size生成する滑らかの次元数
  • window対処前の金額
  • min_count学習に使用する最小単語出現数
  • workers使用するCPUコア数
  1. 学習されたWord2Vecモデルを使用して、単語の否定表現を取得することができます。
vector = model.wv['cat']

以上の手順で、Word2Vecを用いて分かち書きした小説の解析を行うことができます。ただし、データセットのサイズやハイパーパラメータなどによって、結果が大きく変わります。

となりました。

親切なことに、なんとgensimのインストールから説明してくれました。

コードを試してみる

変更点はファイル名と、model = ~~の「size」の部分です。

調べたところ、最近の書き方は vector_size=~とするようです。

そしてmodelを保存するために、

model.save("word2vec.nekodearu.model")

をつけて、

最後に「おわりました」と表示されるようにしました。

from gensim.models import Word2Vec

# テキストファイルの読み込み
with open('nekodearu_splitted.txt', 'r', encoding='utf-8') as f:
    sentences = [line.strip().split() for line in f]

# Word2Vecの学習
model = Word2Vec(sentences, vector_size=200, window=5, min_count=5, workers=4)
 
# modelの保存
model.save("word2vec.nekodearu.model")

# 終了の確認
print("おわりました")

結果確認

今回の元ネタは「吾輩は猫である」ですので、

「吾輩」に関連する言葉を20表示してみました。

from gensim.models import word2vec
model   = word2vec.Word2Vec.load("word2vec.nekodearu.model")
results = model.wv.most_similar(positive="吾輩", topn=20)
for result in results:
    print(result[0], 't', result[1])

結果はこんな感じでした。

コメント

タイトルとURLをコピーしました