найти проиндексированные термины в неиндексированном документе / строке - PullRequest
0 голосов
/ 17 октября 2019

Извините, если я здесь использую неправильную терминологию, я новичок в Lucene: D

Предположим, что я проиндексировал все названия английской Википедии в Lucene.

Допустим,Я посещаю новостной сайт. В этой статье я хочу преобразовать все фразы (которые соответствуют названию в Википедии) в ссылку на страницу Википедии.

Чтобы уточнить : я не хочу помещать новостиarticle в индекс Lucene, но лучше использовать проиндексированные заголовки WP, чтобы найти совпадения в заданной строке (article). Мы также не хотим беспокоиться о JS / HTML, просто сосредоточимся на Lucene сейчас.

Я также хотел бы , чтобы соответствовать жадности: то есть, если текст содержит "StackПереполнение », я бы хотел связать с SO, а не с« Stack »и« Overflow ». Но если бы я мог получить более короткие спички, это тоже было бы здорово. (Я бы хотел сделать и то, и другое, но я согласен на любой из них, если иметь оба затруднительно).

наивное решение : я вижу, что смогу запроситьотдельные слова итеративно и всякий раз, когда я попадаю в индекс, стараюсь найти текущее слово и следующее слово, пока я не пропущу. Затем преобразуйте последнее совпадение в ссылку и продолжайте после этого, пока я не закончу с полным документом.

Но это кажется очень неловким, и у меня есть подозрение, что в Lucene могут быть некоторые функции, которые могли бы поддержать меня здесь(или, по крайней мере, я на это надеюсь: D), но я понятия не имею, что я буду искать. Инвертированный индекс Lucene должен сделать эту довольно быструю операцию, поэтому я думаю, что она может работать достаточно хорошо, даже при наивном подходе.

Есть указатели? Я застрял: 3

1 Ответ

0 голосов
/ 12 ноября 2019

Есть такая вещь, она называется Обработчик тегов :

Учитывая словарь (индекс Solr) с именным полем, вы можете опубликовать текст вэтот обработчик запросов, и он будет возвращать каждое вхождение одного из этих имен со смещениями и другими необходимыми метаданными документа. Он используется для распознавания именованных сущностей (NER).

Это кажется немного сложным в настройке, но это именно то, что я хотел: D

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...