如何检测页面中是否包含句子(模糊)?

时间:2012-03-02 21:33:48

标签: java string comparison fuzzy

我一直在寻找一段时间,但到目前为止找不到任何适合我需要的东西。 (This was helpful, but not convincing

从两个不同的来源,我得到两个不同的字符串。我想检查,如果较短的一个包含在较大的一个中。但是,由于这些字符串都存在于OCR文档中,因此可能存在明显的差异。

示例:

String textToSearch = "Recognized Headline";
String documentText = "This is the document text, spanning multiple pages" .
                      "..." .
                      "..." .
                      "This the row with my Recognizect Head1ine embedded" .
                      "..." .               ^^^^^^^^^^^^^^^^^^^^
                      "..." .
                      "End of the document";

如何在不使用独立Lucene / Solr安装的情况下在页面中可靠地找到我的字符串? (或者我可能还没找到 教程/手册)。必须有一些图书馆可以做到这一点,对吗?

1 个答案:

答案 0 :(得分:0)

首先,您需要找到输入源。网页有一个DOM树,可以用两种方式解析:SAX(没有上下文的事件驱动模型)或DOM(带上下文的基于树的模型)。 SAX在这里是理想的,因为您不需要具有上下文信息来从DOM检索标记化文本节点流。将所有文本节点转换为标记流。

你有一个令牌流,你可以对它们进行处理。对于大量的输入算法,如Levenshtein字符串匹配变得不充分。相反,看看Markov Chains。它们可以相当可靠和有效地帮助将一组输入与一组输出相匹配。