2013-05-03 60 views
2

我需要计算一个文本块(A)在另一个文本块(B)中有多少。像soundex这样的简单算法并不能为我提供很好的结果,因为文本B中有其他文本,而不是/不应该在文本A中,这会将我的数字抛出。我需要确保A的某个百分比在B之内,并且忽略B的添加。计算文本B中有多少文本A的算法?

我首先想到的可能适用于我的情况的简单算法是将A拆分成句子,记下句子的总数,然后搜索B以获得每个句子的实例以提供百分比。虽然这应该起作用,但感觉相当不好,我敢肯定有人比我设计了一种算法来提供更好的计算方法。

+0

请尝试[diff match patch](https://code.google.com/p/google-diff-match-patch/)? – 2013-05-03 09:01:55

+3

这里有一个完整的分支,它被称为[剽窃检测](http://en.wikipedia.org/wiki/Plagiarism_detection) – oleksii 2013-05-03 09:03:05

+0

局部敏感散列可能是一种矫枉过正,但是你可以从中获得灵感。 http://en.wikipedia.org/wiki/Locality-sensitive_hashing – anoopelias 2013-05-03 12:29:49

回答