Как я могу определить, содержится ли предложение на странице (нечетко)?
Я долго искала, но пока не нашла ничего подходящего. ( Это было полезно, но не убедительно)
Из двух разных источников я получаю две разные строки. Я хочу проверить, содержится ли более короткий в более крупном. Однако, поскольку эти строки имеют корни в документе 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 ответ
Прежде всего вам нужно найти ваш источник ввода. Веб-страница имеет дерево DOM, которое может быть проанализировано двумя способами: SAX (управляемая событиями модель без контекста) или DOM (основанная на дереве модель с контекстом). SAX идеален здесь, потому что вам не нужно иметь контекстную информацию для получения потока токенизированных текстовых узлов из DOM. Преобразуйте все текстовые узлы в поток токенов.
Если у вас есть поток токенов, вы можете обработать их. Для большого количества входных алгоритмов, таких как сопоставление строк Левенштейна, становится неадекватным. Вместо этого посмотрите на цепи Маркова. Они могут помочь сопоставить набор входов с набором выходов достаточно надежно и эффективно.