在 python 中测量多种语言文本之间的相似性的最佳方法是什么?

Ole*_*kyi 5 python multilingual nlp similarity word-embedding

所以,我有一个任务需要测量两个文本之间的相似度。这些文本是杂货店产品的简短描述。它们始终包含产品名称(例如牛奶),并且可能包含生产商和/或尺寸,以及产品的一些其他特征。

我有一整套这样的文本,然后,当新的文本到达时,我需要确定我的数据库中是否有类似的产品,并测量它们的相似程度(从 0 到 100% 的范围)。

问题是:文本可能采用两种不同的语言:乌克兰语和俄语。另外,如果有外国品牌(例如,Coca Cola),它会用英文书写。

我解决这个任务的最初想法是获得多语言单词嵌入(不同语言中的相似单词位于附近)并找到这些文本之间的距离。但是,我不确定这会有多有效,如果可以的话,该从什么开始。

因为我拥有的每个文本只是一组产品特征,所以一些基于上下文的词嵌入可能不起作用(我不确定这个陈述,这只是我的假设)。

到目前为止,我已经尝试熟悉MUSE框架,但在安装时遇到了问题faiss。

因此,我的问题是:

  • 我的词嵌入想法值得尝试吗?
  • 也许有更好的方法吗?
  • 如果词嵌入的想法没问题,我应该使用哪些?

注意:我有 Windows 10(以防某些库无法在 Windows 上运行),并且我需要该库才能使用乌克兰语和俄语。

预先感谢您的任何帮助!任何建议将不胜感激!

Meh*_*hdi 0

假设您的任务是关于细粒度实体识别。我认为您有一个明确定义的实体:品牌、尺寸等...\n因此,定义产品的这些特征每个都可以是一个向量,这意味着您的产品可以用矩阵表示。\n您可以用以下方式表示每个特征嵌入。\n或者嵌入向量和 one-hot 向量的混合。

\n

方法如下。

\n
    \n
  1. 定义产品特征列表:\n产品名称、品牌名称、尺寸、重量。
  2. \n
  3. 对于每个产品功能,您都需要一个文本识别模型:\n例如 通过品牌识别,您可以找到文本的哪一部分是其品牌名称。
  4. \n
  5. 如果可以对所有子文本进行统一的语言表示,请使用机器翻译。例如Coca Cola到\n ru \xd0\x9a\xd0\xbe\xd0\xba\xd0\xb0-\xd0\x9a\xd0\xbe\xd0\xbb\xd0\xb0, en Coca Cola。
  6. \n
  7. 使用上下文嵌入(即 Huggingface 多语言 BERT 或更好的东西)将提示文本转换为一个向量。
  8. \n
  9. 为了比较两个产品,需要比较它们的特征向量:两个特征数组之间的平均相似度是多少。您还可以决定每个特征的权重是多少。
  10. \n
  11. 尝试其他矢量化方法。也许您不想混合品牌仿冒品:“可口可乐”类似于“酷可乐”。因此,也许嵌入对于品牌名称、尺寸和重量来说不太好,但对于产品名称来说就足够了。如果您想要精确匹配,则需要对其文本使用哈希函数。关于他们的多语言提示设计文本。
  12. \n
  13. 您还可以通过串联多个嵌入或其源语言的一个热向量等来扩展每个特征向量。
  14. \n
\n

这里没有明确的答案,您需要进行实验和测试,看看什么是最好的解决方案。您可以创建测试集并为您的解决方案制定基准。

\n