web-dev-qa-db-ja.com

FastTextで類似の単語を見つける方法は?

私はFastTexthttps://pypi.python.org/pypi/fasttext をいじっています。これは_Word2Vec_によく似ています。それはまだ多くの組み込み関数を備えていないかなり新しいライブラリのようですので、形態学的に類似した単語をどのように抽出するのか疑問に思いました。

たとえば:model.similar_Word("dog")-> dogs。ただし、組み込みの関数はありません。

_model["dog"]_と入力した場合

コサインの類似性を比較するために使用される可能性があるベクトルのみを取得します。 model.cosine_similarity(model["dog"], model["dogs"]])

何らかのループを作成し、テキスト内のすべての可能なペアに対して_cosine_similarity_を実行する必要がありますか?それには時間がかかります... !!!

8
Isbister

Gensimを使用して、load.Word2vecモデルでfastTextトレーニング済みの.vecファイルをロードし、most_similiar()メソッドを使用して類似の単語を見つけます!

14
Snehal

Gensimを使用してmodel.vecをロードし、類似の単語を取得する必要があります。

m = gensim.models.Word2Vec.load_Word2vec_format('model.vec')
m.most_similar(...)
5
far-zadeh

gensim ライブラリをインストールしてインポートし、gensimライブラリを使用して、 FastText からダウンロードしたモデルから最も類似した単語を抽出できます。

これを使って:

import gensim
model = gensim.models.KeyedVectors.load_Word2vec_format('model.vec')
similar = model.most_similar(positive=['man'],topn=10)

そして、topnパラメータによって、上位10の最も類似した単語を取得します。

pyfasttext ライブラリをインストールして、特定の単語に最も類似した単語または最も近い単語を抽出できます。

from pyfasttext import FastText
model = FastText('model.bin')
model.nearest_neighbors('dog', k=2000)

または、fasttextの最新の開発バージョンを入手できます。 github repository からインストールできます。

import fasttext
model = fasttext.load_model('model.bin')
model.get_nearest_neighbors('dog', k=100)
1
Kalana Geesara