12

我正在玩https://pypi.python.org/pypi/fasttextFastText,这与. 由于它似乎是一个相当新的库,还没有很多内置函数,我想知道如何提取形态相似的词。Word2Vec

例如:model.similar_word("dog")-> 狗。但是没有内置功能。

如果我输入 model["dog"]

我只得到向量,它可以用来比较余弦相似度。 model.cosine_similarity(model["dog"], model["dogs"]]).

我是否必须进行某种循环并对cosine_similarity文本中的所有可能对进行处理?那需要时间……!!!

4

5 回答 5

15

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

于 2017-02-15T18:36:44.073 回答
9

您可以安装pyfasttext库来提取与特定词最相似或最接近的词。

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

或者您可以获取最新的 fasttext 开发版本,您可以从github 存储库安装:

import fasttext
model = fasttext.load_model('model.bin')
model.get_nearest_neighbors('dog', k=100)
于 2019-09-18T14:54:14.940 回答
6

您应该使用 gensim 加载model.vec然后得到相似的词:

m = gensim.models.Word2Vec.load_word2vec_format('model.vec')
m.most_similar(...)
于 2017-02-14T09:50:19.187 回答
6

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

用这个:

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

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

于 2018-07-08T01:29:26.120 回答
2

使用gensim,

from gensim.models import FastText

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

更多信息在这里

于 2021-01-03T02:39:36.890 回答