Индексация и поиск по слоям комментариев уровня слова в Lucene

Я имею набор данных с несколькими слоями аннотации по базовому тексту, такими как часть тегов, блоки от поверхностного синтаксического анализатора, называю объекты и других от различных инструментов обработки естественного языка (NLP). Для предложения как The man went to the store, аннотации могли бы быть похожими:


Word  POS  Chunk       NER
====  ===  =====  ========
The    DT     NP    Person     
man    NN     NP    Person
went  VBD     VP         -
to     TO     PP         - 
the    DT     NP  Location
store  NN     NP  Location

Я хотел бы индексировать набор документов с аннотациями как эти использование Lucene и затем выполнить поиски через различные слои. Пример простого запроса состоял бы в том, чтобы получить все документы, где Вашингтон отмечен как человек. В то время как я не абсолютно посвящаю себя нотации, синтаксически конечные пользователи могли бы ввести запрос следующим образом:

Запрос: Word=Washington,NER=Person

Я также хотел бы сделать более сложные запросы, включающие последовательный порядок аннотаций через различные слои, например, найти все документы, где существует отмеченная личность слова, сопровождаемая словами arrived at сопровождаемый словом отметил местоположение. Такой запрос мог бы быть похожим:

Запрос: "NER=Person Word=arrived Word=at NER=Location"

Что хороший путь состоит в том, чтобы пойти о приближении к этому с Lucene? Там должен так или иначе индексировать и искать по полям документа, которые содержат структурированные маркеры?

Полезные нагрузки

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

Последний важен с тех пор, для некоторых примеров использования количество документов, которые содержат шаблон, действительно, что я хочу.

Кроме того, только полезные нагрузки на условиях, которые соответствуют запросу, исследованы. Это означает, что полезные нагрузки могли только даже помочь с рейтингами первого запроса в качестве примера, Word=Washington,NER=Person, посредством чего мы просто хотим удостовериться термин Washingonton отмечен как a Person. Однако для второго запроса в качестве примера, "NER=Person Word=arrived Word=at NER=Location", Я должен проверить неуказанные теги, и таким образом несоответствие, условия.

8
задан dmcer 22 May 2010 в 06:49
поделиться

2 ответа

Вам нужны полезные данные . В Lucid Imagination есть подробная запись в блоге на эту тему. Полезные данные позволяют хранить байтовый массив метаданных об отдельных терминах. После того, как вы проиндексировали свои данные, включая полезные нагрузки, вы можете создать новый механизм подобия, который учитывает ваши полезные нагрузки при скоринге.

1
ответ дан 6 December 2019 в 01:39
поделиться

Вы действительно можете искать шаблоны текста в Lucene, используя SpanQuery и настраивать расстояние наклона, чтобы ограничить количество терминов друг друга, в которых могут встречаться термины запроса, и даже порядок, в котором они появляются.

0
ответ дан 6 December 2019 в 01:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: