Machine learning NLP/机器学习文本比较

Machine learning NLP/机器学习文本比较,machine-learning,nlp,Machine Learning,Nlp,我目前正在开发一个程序,能够将一个小文本(比如250个字符)与一组类似文本(大约1000-2000个文本)进行比较 目的是评估文本A是否与集合中的一个或多个文本相似,如果相似,则必须通过ID检索集合中的文本。每个文本将具有唯一的ID 我希望输出有两种方式: 选项1: 文本A匹配的文本B具有90%的相似性,文本C具有70%的相似性,依此类推 选项2: 文本A以最高相似度匹配文本D 我在学校里读过一些机器学习,但我不确定哪一个算法适合这个问题最好,或者我应该考虑使用NLP(不熟悉这个主题)。 有没有

我目前正在开发一个程序,能够将一个小文本(比如250个字符)与一组类似文本(大约1000-2000个文本)进行比较

目的是评估文本A是否与集合中的一个或多个文本相似,如果相似,则必须通过ID检索集合中的文本。每个文本将具有唯一的ID

我希望输出有两种方式:

选项1: 文本A匹配的文本B具有90%的相似性,文本C具有70%的相似性,依此类推

选项2: 文本A以最高相似度匹配文本D

我在学校里读过一些机器学习,但我不确定哪一个算法适合这个问题最好,或者我应该考虑使用NLP(不熟悉这个主题)。
有没有人建议使用什么算法,或者我在哪里可以找到nessecary文献来解决我的问题?

这似乎不是一个机器学习问题,你只是在寻找一些文本相似性度量。一旦您选择了一个,您只需根据获得的“分数”对数据进行排序

根据您的文本,您可以使用以下指标之一()或定义自己的指标:

  • 汉明距离
  • Levenshtein距离和Damerau–Levenshtein距离
  • Needleman–Wunsch距离或Sellers算法
  • 史密斯-沃特曼距离
  • Gotoh距离或Smith Waterman Gotoh距离
  • Monge-Elkan距离
  • 街区距离或L1距离或城市街区距离
  • Jaro–Winkler距离
  • Soundex距离度量
  • 简单匹配系数(SMC)
  • 骰子系数
  • Jaccard相似性或Jaccard系数或Tanimoto系数
  • 特沃斯基指数
  • 重叠系数
  • 欧几里德距离还是L2距离
  • 余弦相似性
  • 变距离
  • Hellinger距离或Bhattacharyya距离
  • 信息半径(詹森-香农散度)
  • 斜发散
  • 混淆概率
  • Tau度量,Kullback–Leibler散度的近似值
  • 费勒吉和森特公制(SFS)
  • 最大匹配
  • 背风距离
上面的一些(如余弦相似性)需要将数据转换为矢量化格式。这一过程也可以通过多种方式实现,使用尽可能简单的文字包/tfidf技术

列表本身还远远不够完整,只是这些方法的一个草稿。特别是,有许多字符串内核,它们也适合于测量文本相似性。尤其是Wordnet内核可以基于英语最完整的语义数据库之一来度量语义相似性。

我听说有:

  • 余弦角分离

  • 汉明距离

  • 潜在语义分析(LSA)或潜在语义索引(LSI)

这些方法基于语义相似性


我还听说一些公司使用了一种叫做“总结文档”的工具来相互比较

Tf idf是一种术语加权方案,FASTA和BLAST是计算生物学软件包-1为不受批评的复制粘贴从维基。感谢你的下注,即使这些方面是很难考虑的原因,答案是“错误”或“坏”。此外,余弦相似性,L1和L2距离,可能还有一堆其他没有定义在字符串上,但在特征空间(如字袋)。称这些字符串度量值很牵强。将调和平均数列为字符串度量是非常荒谬的;两个字符串的调和平均值是什么?我称之为“文本相似性度量”,这似乎与向量化格式的流行度量并不矛盾。我敢说,余弦相似性是在简单应用程序中测量文本相似性最常用的方法之一。