混合语言的语义相似性

Posted

技术标签:

【中文标题】混合语言的语义相似性【英文标题】:semantic similarity for mix of languages 【发布时间】:2022-01-10 01:02:35 【问题描述】:

我有一个包含数千条话语的数据库。每条记录(话语)都是代表问题描述的文本,用户已将其提交给服务台。有时还包括服务台代理的响应。该语言技术性很强,它包含三种类型的标记:

    语言 1 中的单词和短语(例如英语) 语言 2 中的单词和短语(例如法语、挪威语或意大利语) 机器生成的输出(例如,使用 unix 命令 ls -la 列出文件)

这些语言混杂在一起。我经常看到,在一次对话中,语言 1 的句子后面跟着语言 2。因此无法将数据分成两个单独的集合,对应于两种语言的话语。

任务是找到记录之间的相似性(问题描述)。本练习的目的是了解用户提交的某些 bug 是否彼此相似。

问:在这种情况下进行的标准方法是什么?

特别是,问题在于这些词来自两个不同的语料库(语料库),此外,一些技术词(如文件名、操作系统路径或应用程序名称)在任何语料库中都找不到。

【问题讨论】:

【参考方案1】:

我认为没有“标准方法”——只有你可以尝试的方法。

您可以查看在不同语言之间对齐的词嵌入,以便跨多种语言的相似词具有相似的向量。然后,基于词向量(如所有文本词向量的简单平均)或基于词向量的成对比较(如“Word Mover's Distance”)为文本构建摘要向量的方法仍然适用于混合- 语言文本(甚至在一个文本中混合多种语言)。

单个文本,可能是关于单个(或密切相关的)问题的集合,具有混合语言可能是福而不是祸:您从此类文本中训练的一些分类器/嵌入可能能够学习十字架- 单词与共享主题的语言相关性。此外,您可以考虑使用额外的合成自动翻译文本来增强您的文本,适用于任何单语范围,以确保下游嵌入/比较更接近您理想的语言遗忘。

【讨论】:

【参考方案2】:

感谢您的建议。经过几次实验,我开发了一种简单且效果很好的方法。我没有使用现有的语料库,而是根据我的多语言数据库中可用的所有话语创建了自己的语料库。无需翻译它们。该数据库有 130,000 个话语,包括 350 万个单词(三种语言:英语、法语和挪威语)和 150,000 个独特的单词。基于以这种方式构建的意义空间的短语相似性效果出奇的好。我已经在生产中测试了这种方法,结果很好。我也看到了很大的改进空间,会继续打磨。我还写了这篇文章An approach to categorize multi-lingual phrases,更详细地描述了所有步骤。欢迎批评或改进。

【讨论】:

以上是关于混合语言的语义相似性的主要内容,如果未能解决你的问题,请参考以下文章

自然语言语义相似度计算方法

语义相似度相关文章链接

如何度量两个词之间的语义相似度

语义相似度(实践篇)

基于Gensim的文本相似度计算

自然语言处理(NLP)基于PaddleNLP的短文本相似度计算