如何在python中找到两个字符串的语义相似度

如何在python中找到两个字符串的语义相似度,python,machine-learning,nlp,Python,Machine Learning,Nlp,我不想找到两个字符串之间的相似性,我只想找到两个字符串的相似性 超线程有哪些类型 超线程中有任何类别吗 应该有相似性。到目前为止,我尝试了余弦相似性和单词移动距离,但对于某些字符串,我没有得到准确的结果。这是一件非常困难的事情。也很难知道两个短语之间的“准确”语义相似性是什么意思。你需要找到一个“好的”指标来做到这一点 无论如何,如果你有一个有限的上下文(你不必做一个通用的语义相似性计算器),一个非常基本的方法可以是构建一个文本分类器(使用机器学习),在其中定义你想要使用的主要类 例如,对于示例

我不想找到两个字符串之间的相似性,我只想找到两个字符串的相似性

  • 超线程有哪些类型
  • 超线程中有任何类别吗

  • 应该有相似性。到目前为止,我尝试了余弦相似性和单词移动距离,但对于某些字符串,我没有得到准确的结果。这是一件非常困难的事情。也很难知道两个短语之间的“准确”语义相似性是什么意思。你需要找到一个“好的”指标来做到这一点

    无论如何,如果你有一个有限的上下文(你不必做一个通用的语义相似性计算器),一个非常基本的方法可以是构建一个文本分类器(使用机器学习),在其中定义你想要使用的主要类

    例如,对于示例短语,可以有两个文本类:

  • 询问有关阅读的问题

  • 询问食物

  • 然后使用大量短语训练模型,并根据示例短语输出模型概率,如下所示:

  • “超线程的类型有哪些”:

    • 询问有关0.9的问题

    • 询问食物0.5

  • “超线程中是否有任何类别”

    • 询问有关0.8的问题

    • 询问食物0.4


  • 这两个短语都被归类为“询问超阅读”(因为它们在这些课程中得分较高),然后人们可以假设它们是相似的。人们还可以使用概率分数来做一些更具真实性的事情(使用分数差异等)

    如果你想要准确的语义相似性,你可能需要一些预先训练好的模型。或者你可以试试ConceptNet Numberbatch,就像这里解释的那样:这个标题也可以给你一些想法;你的问题太宽泛了,请花点时间阅读并回答。