Nlp 为什么FastText不处理查找多词短语的问题?

Nlp 为什么FastText不处理查找多词短语的问题?,nlp,fasttext,Nlp,Fasttext,FastText预先训练的模型非常适合查找相似的单词: 从pyfasttext导入FastText 模型=快速文本('cc.en.300.bin')) 模型。最近邻(“狗”,k=2000) [(“狗”,0.8463464975357056), (“小狗”,0.7873005270957947), ('pup',0.7692237496376038), (“犬科”,0.7435278296470642), ... 但是,对于多词短语,例如: model.最近邻(“乱世佳人”,k=2000) [(

FastText预先训练的模型非常适合查找相似的单词:

从pyfasttext导入FastText
模型=快速文本('cc.en.300.bin'))
模型。最近邻(“狗”,k=2000)
[(“狗”,0.8463464975357056),
(“小狗”,0.7873005270957947),
('pup',0.7692237496376038),
(“犬科”,0.7435278296470642),
...
但是,对于多词短语,例如:

model.最近邻(“乱世佳人”,k=2000)
[('DEKY4MBUSPUOTP NSPKU5I0GTSNRI4JMEPCAFAOXIOFNx5KMJK1AYVR2DGBAIfkecqoabaaCbaaCbaaCbaaCbaaCbaaCbaaCbaaCbaaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQaQa50qZLi',
0.71047443151474),

model.最近邻('starwars',k=2000)
[('clockHauser',0.5432934761047363),
('CrônicasedrasneemiassesterjóSalmosProvénticosIsaíasJeremiasLamentaç245; esEzequielDanielOséiasJoelAmósobadiasjonasmiqueéiasnaumhabacuquesofonisageuzariasmalaquiasnovo',
0.5197194218635559),

这是FastText预先训练过的模型的局限性吗?

我不知道FastText有任何处理多词短语的特殊能力

因此,我希望您的查询被解释为一个不在模型中的长单词,其中包括许多字符n-gram,其中包括
'
空格字符

而且,由于我不希望训练数据有任何这样的带空格的n-gram,所有这样的n-gram向量都将是模型的n-gram桶中的任意随机碰撞。因此,对于这样的“单词”来说,任何这样的词汇表外合成向量都可能比通常的OOV向量噪音更大

还有:
pyfasttext
包装器是FastText的一个废弃的非官方接口,已经两年多没有更新过,在PyPI页面上有一条消息:

警告!不再维护pyfasttext:请使用fastText存储库中的官方Python绑定:

你可以找到更好的结果,使用它。参见它的代码> doc/示例< /Cord>文件夹,例如它可以查询最近邻居的例子的代码,也可以考虑它的代码> GETSythEngIn VCube()作为一种将字符串拆分为向量平均的单词的方法,而不仅仅是将字符串视为一个长OOV单词。

如中所述,正式的fastText无监督嵌入是在标记化阶段之后构建的,在该阶段中,单词被分离

如果查看模型词汇表(
model.words
在官方python绑定中),您将找不到包含空格的多单词短语

因此,正如gojomo所指出的,生成的向量是合成的、人工的和有噪声的;您可以从查询结果中推断出来

本质上,fastText官方嵌入不适合此任务。 根据我的经验,这并不取决于所使用的版本/wapper