Сейчас я индексирую веб-страницу, используя lucene. Цель состоит в том, чтобы иметь возможность быстро извлекать, какая страница содержит определенное выражение (обычно 1, 2 или 3 слова), и какие другие слова (или группа из 1 до 3 из них) также находятся на странице. Это будет использовано для создания/обогащения/изменения тезауруса (фиксированного словаря).
Из статей, которые я нашел, кажется, проблема заключается в том, чтобы найти n-gram (или галерею).
Lucene имеет ShingleFilter, ShingleMatrixFilter и ShingleAnalyzerWrapper, которые, как представляется, связаны с этой задачей.
Из этой презентации я узнал, что Lucene также может искать термины, разделенные фиксированным числом слов (называемых slops). Пример представлен здесь.
Однако, я не понимаю четко различия между этими подходами? Являются ли они принципиально разными или это выбор размера производительности/индекса, который вы должны сделать?
В чем разница между ShingleMatrixFilter и ShingleFilter?
Надеюсь, гурунский гуру найдет этот вопрос и ответит:-)!