2015-03-12 3 views
3

Пусть D это текстовый документ, ирелевантности документа нескольких ключевых слов

K = < k1, ..., kN > 

представляет собой набор терминов, содержащихся в документе. Например:

D = "What a wonderful day, isn't it?" 
K = <"wonderful","day"> 

Моя цель состоит в том, чтобы увидеть, если документ D говорит о всех слов в K в целом. Например:

D = "The Ebola in Africa is spreading at high speed" 
K = <"Ebola","Africa"> 

является случай, в котором D тесно связана с K, в то время как:

D = "NEWS 1: Ebola is a dangerous disease that is causing thousands of deaths. Many governments are taking precautions to prevent its spread. NEWS 2: population in Africa is increasing." 
K = <"Ebola","Africa"> 

является случай, в котором D не связано с K, так как «Эбола» и «Африка »упоминаются в разных точках документа, в отдельных предложениях и не связаны.

Как я могу синтезировать эту концепцию «родства» от D до K? Есть ли какая-то техника в состоянии искусства, которая может быть использована?

Спасибо.

ответ

0

Для решения этой проблемы могут быть два подхода. Один простой, применимый только в этом случае, а другой более общий.

Конкретное решение: Я заметил, что у вас есть маркеры абзаца в ваших документах, а именно «Новости:». Вы можете обрабатывать контент в этих маркерах как свои единицы индексирования, что позволит вам получить результаты поиска для этих абзацев. В качестве этапа поиска после публикации вы можете вычислить показатель поиска уровня документа путем агрегирования (среднего или максимального) отдельных баллов абзаца.

Общее решение:

Рассмотрим близость между терминами запроса. Если в документе около болезни Эбола в Африке, то с большей вероятностью можно найти термины Эбола и Африка в непосредственной близости, чем далеко друг от друга. Lucene поддерживает позиционное индексирование и использование этих позиций в вычислении счета поиска с помощью proximity aware query parser.

Это то, что используют веб-поисковые системы.

1

A vector space model возможно, что вы ищете.

Вы можете превратить D в тот же формат, что и K, список слов, например. < «Что», «a», «чудесно», «день», «не« это »>. Это делается тем, что называется токенизатором.

После этого вы можете удалить бесполезные слова, которые не имеют никакого значения, например «и», «the», «it» и т. Д. Слова для удаления называются stop words, хранящиеся в списке стопов.

Вы также должны преобразовать все слова в нижний регистр (или даже в верхний регистр), чтобы «Что» и «что» не были классифицированы как разные слова.

После этого документ может быть выражен в виде списка слов и их частот (см. inverted index).

Рассчитайте cosine similarity между документом (D) и запросом (K).

Смежные вопросы