获得两个文本的相似性百分比

时间:2011-03-07 20:13:12

标签: java lucene

当一个人在第二个文本中时,我需要获得文本之间相似性的分数。

例如:

Text1: aaa bbb ccc ddd eee
Text2: bbb ccc

我需要一些事情说我,Text2在Text1中是100%。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:1)

根据您的需要,您可以尝试

  • 两个文本的最长公共子序列的长度除以text2的长度
  • 或两个文本的最长连续子序列的长度也除以text2的长度

如果文本完全位于text1内,则两者都会给出1;如果不共享公共字符,则两者都会给出0。

答案 1 :(得分:0)

你没有Lucene来获得文本之间的相似性。根据文本长度,字符串类型等,有几种可用的测量方法,你需要进行实验,以获得最佳效果。

SimMetrics提供了一个非常好且全面的算法集合,它是一个F / OSS库,提供了大量的相似性算法及其相应的成本函数。

答案 2 :(得分:0)

请参阅书籍Mining of Massive DatasetsDekang Lin's definition of similarity (PDF)。两者都不需要Lucene。