我已经有一些正则表达式来寻找要比较的地址和电话号码,但这并不是最可靠的。是否有人熟悉一种简单的方法来比较整个文档,并可能显示像“80%相似”的简单方法?我无法想到任何事情,所以我怀疑我必须从头开始自己的解决方案,但我认为值得问一下stackoverflow的集体天才:)
首选的语言/方法是python / php / perl,但如果它是一个很好的解决方案,我会非常开放。
更新:有一点值得注意的是,因为我将在本地数据库中存储我所在地区(洛杉矶)的aps的RSS搜索数据,首选方法将包括一种方法来将它与我所有的东西进行比较目前知道。这可能是一个显而易见的事情,因为随着职位数量的增长,这可能会成为一个非常漫长的过程。
答案 0 :(得分:2)
你可以计算两个字符串之间的Levenshtein差异 - 经过一些合理的规范化,例如最小化重复的空白和不重复的空格。在你经历了足够的“重复”后,你应该知道你的阈值是什么 - 那么你可以在所有新的传入数据上运行Levenshtein,如果它低于你的阈值,你可以认为它是重复的。
答案 1 :(得分:1)
很少有相当复杂的项目可以找到文本重复。其中一个是Simian。看看吧。
答案 2 :(得分:1)
您可以使用xdiff。有一个xdiff PECL extension for PHP可用。
或使用similar_text
计算两个字符串之间的相似性
答案 3 :(得分:1)
您可以使用difflib直接计算python中的差异。
编辑:您可以考虑以某种方式创建内容的哈希值,以减少需要“差异化”的文本量。例如,删除所有空格,标点符号,标签等,然后查看实际内容。
答案 4 :(得分:0)
如果你想要做很多事情并且具有一定的可靠性,你可能想要使用半高级的方法,比如“词袋”技术。我实际上坐下来写了一个或多或少工作(如果可怕的未经优化)算法的草图来做它,但我不确定它是否真的适合包含在这里。您可以使用预先制作的库进行文本分类。