我正在玩FastText https://pypi.python.org/pypi/fasttext,这与Word2Vec
非常相似。因为它似乎是一个非常新的库,但还没有很多内置函数。我想知道如何提取形态相似的单词,例如:model.similar_word("dog")
- >小狗。但是没有内置的功能。
如果我输入model["dog"]
,我只会得到矢量,可用于比较余弦相似度model.cosine_similarity(model["dog"], model["dogs"]])
。我是否必须进行某种循环并对文本中所有可能的对进行cosine_similarity
?这需要时间......
答案 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)