如何用FastText找到类似的单词?

时间:2017-02-13 14:33:31

标签: python nlp word2vec text-analysis fasttext

我正在玩FastText https://pypi.python.org/pypi/fasttext,这与Word2Vec非常相似。因为它似乎是一个非常新的库,但还没有很多内置函数。我想知道如何提取形态相似的单词,例如:model.similar_word("dog") - >小狗。但是没有内置的功能。

如果我输入model["dog"],我只会得到矢量,可用于比较余弦相似度model.cosine_similarity(model["dog"], model["dogs"]])。我是否必须进行某种循环并对文本中所有可能的对进行cosine_similarity?这需要时间......

5 个答案:

答案 0 :(得分:12)

使用Gensim,使用load.word2vec模型加载fastText训练的.vec文件,并使用most_similiar()方法查找类似的单词!

答案 1 :(得分:4)

您应该使用gensim加载test,然后获得类似的字词:

model.vec

答案 2 :(得分:2)

您可以安装和导入gensim库,然后使用gensim库从从FastText下载的模型中提取最相似的词。

使用此:

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

通过topn参数,您可以获得前10个最相似的单词。

答案 3 :(得分:2)

使用gensim,

from gensim.models import FastText

model = FastText.load(PATH_TO_MODEL)
model.wv.most_similar(positive=['dog'])

更多信息here

答案 4 :(得分:1)

您可以安装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)