NLP /机器学习文本比较

Rob*_*rtH 15 nlp compare machine-learning

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

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

我希望输出有两种方式:

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

选项2: 文本匹配的文本D具有最高的相似性

我在学校读过一些机器学习,但我不确定哪种算法最适合这个问题,或者我应该考虑使用NLP(不熟悉该主题).

有没有人建议使用什么算法或哪里可以找到解决我的问题的nessecary文献?

谢谢你的贡献!

lej*_*lot 25

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

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

  • 汉明距离
  • Levenshtein距离和Damerau-Levenshtein距离
  • Needleman-Wunsch距离或卖方算法
  • 史密斯 - 沃特曼距离
  • Gotoh距离或Smith-Waterman-Gotoh距离
  • Monge Elkan距离
  • 块距离或L1距离或城市街区距离
  • Jaro-Winkler的距离
  • Soundex距离度量
  • 简单匹配系数(SMC)
  • 骰子的系数
  • Jaccard相似度或Jaccard系数或Tanimoto系数
  • 特沃斯基指数
  • 重叠系数
  • 欧氏距离或L2距离
  • 余弦相似度
  • 变化距离
  • Hellinger距离或Bhattacharyya距离
  • 信息半径(Jensen-Shannon分歧)
  • 歪斜分歧
  • 混乱的可能性
  • Tau度量,Kullback-Leibler散度的近似值
  • Fellegi和Sunters度量标准(SFS)
  • 最大匹配
  • 李距离

上面的一些(例如,余弦相似性)需要将数据转换为矢量化格式.这个过程也可以通过多种方式实现,包括最简单的单词/ tfidf技术.

列表本身远非完整,只是这种方法的草案.特别是,有许多字符串内核,它们也适用于测量文本相似性.特别是Wordnet内核可以基于英语最完整的语义数据库之一来测量语义相似性.

  • Tf-idf是术语加权方案,FASTA和BLAST是计算生物学包.-1表示来自维基百科的非关键复制粘贴. (8认同)
  • 感谢你澄清你的downvote,尽管这些方面很难被视为答案是"错误"或"坏"的理由. (2认同)