私はFastText
、 https://pypi.python.org/pypi/fasttext をいじっています。これは_Word2Vec
_によく似ています。それはまだ多くの組み込み関数を備えていないかなり新しいライブラリのようですので、形態学的に類似した単語をどのように抽出するのか疑問に思いました。
たとえば:model.similar_Word("dog")
-> dogs。ただし、組み込みの関数はありません。
_model["dog"]
_と入力した場合
コサインの類似性を比較するために使用される可能性があるベクトルのみを取得します。 model.cosine_similarity(model["dog"], model["dogs"]])
。
何らかのループを作成し、テキスト内のすべての可能なペアに対して_cosine_similarity
_を実行する必要がありますか?それには時間がかかります... !!!
Gensimを使用して、load.Word2vecモデルでfastTextトレーニング済みの.vecファイルをロードし、most_similiar()メソッドを使用して類似の単語を見つけます!
Gensimを使用してmodel.vec
をロードし、類似の単語を取得する必要があります。
m = gensim.models.Word2Vec.load_Word2vec_format('model.vec')
m.most_similar(...)
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)