处理在模型中找不到的 gensim 中的新词

Dealing with new words in gensim not found in model

假设我正在尝试使用 distances() 计算单词和文档之间的平均距离,或者使用 n_similarity() 计算两个文档之间的余弦相似度。但是,假设这些新文档包含原始模型没有的词。 gensim 如何处理?

我一直在阅读文档,但找不到 gensim 对未找到的单词做了什么。

我宁愿 gensim 不计入平均值。因此,在 distances() 的情况下,它不应该 return 任何我可以在使用 numpy 计算平均值之前轻松删除的东西。在n_similarity的情况下,gensim当然要自己搞定....

我问是因为我的程序必须分类的文档和单词在某些情况下会包含我不想在分类过程中考虑的未知单词、名称、品牌等。所以,我想知道我是否必须对我尝试分类的每个文档进行预处理。

模型是在向量上定义的,默认情况下,向量只依赖于旧词,所以我不希望它们依赖于新词。

新词仍有可能影响结果,具体取决于代码。为了安全起见,我建议在小文本上测试您的特定模型 and/or 指标(有和没有一堆新词)。

根据上下文,Gensim 通常会 忽略 未知词,或者在精确词查找失败时抛出类似 KeyError 的错误。 (此外,一些词向量模型,如 FastText,可以根据训练期间观察到的词片段为未知词合成胜于无的猜测向量。)

您应该根据感兴趣的特定 models/method 尝试您想要的操作以观察结果。

如果抛出操作中断错误并且您的代码出现问题,您可以预过滤您的单词列表以删除那些不在模型中的单词。