如何在无监督学习模型(cbow,skipgram)中以快速文本获取最近的邻居?

时间:2019-09-12 09:38:11

标签: python nearest-neighbor unsupervised-learning fasttext

fasttext官方网站(fasttext.cc)上的示例(与单词表示有关)表明,可以计算使用cbow(或skip-gram模型)得出的向量上的最近邻居(总之,在无监督学习中)楷模)。声明可以使用模型(get_nearest_neighbors)上的model.get_nearest_neighbors函数来完成此操作。但是,当我尝试使用Python(3.7。)时,它向我显示了以下信息:对于无监督的学习模型,该功能在快速文本中不存在,并且当我查看快速文本帮助时,的确没有看到该功能。存在的唯一类似函数是模型谓词(model.predict(其中指定了k)),但是只能在监督学习模型上完成。

有人可以向我解释发生了什么,并帮助我解决这个问题吗?是否有任何方法可以为快速文本中的无监督学习模型计算最近的邻居? :-)

1 个答案:

答案 0 :(得分:0)

尽管fasttext具有get_nearest_neighbor方法,但是他们的pypi relaese仍然没有该方法。

因此,您可以安装pyfasttext库并访问其最近的邻居功能。

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

或者,您可以获得快速文本的最新开发版本,可以从github repository

安装
import fasttext
model = fasttext.load_model('model.bin')
model.get_nearest_neighbors('dog', k=100)