2012-02-08 4 views
0

Я свеж от детской до Луцен/Соль, поэтому я, возможно, пытаюсь использовать ее совершенно неправильно, но я надеюсь, что кто-то может указать мне в правильном направлении.Длинные запросы на очень короткие документы

Мои документы (менее 3000) являются краткими заявлениями о таксономии. Все - одиночные предложения, некоторые из которых имеют длину не более 4-6 слов. Для каждого документа есть только одно поле, поэтому поиск по нескольким полям - это не маршрут, на который я бы посмотрел. То, что я хотел бы сделать, - это запросить содержимое документа, связанного с работой, и привести к соответствующим заявлениям о таксономии.

В настоящее время я использую настройку примера по умолчанию, которая поставляется с Solr с добавленными синонимами слов из Wordnet, поскольку выполняемые действия - это то, что я пытаюсь идентифицировать (т. Е. Выписывание таксономии «Alter одежды в спецификации»).

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

Могу ли я лучше индексировать документы (в настоящее время длинные запросы) на лету и запрашивать каждое заявление о таксономии и компилировать/сортировать результаты или я могу выполнять эти длинные запросы на крошечных документах каким-либо другим способом? Я предполагаю, что это может привести к его собственным трудностям.

+0

Я ссылался на запись в Википедии о таксономии, и я до сих пор не понимаю ваш вопрос. Пожалуйста, включите несколько примеров документов и запросов и их соответствие. Какой анализ вы хотите выполнить? – aitchnyu

+0

3000 документов в любом случае очень мало. Сценарий python, хранящий все это в памяти, занимает несколько МБ ОЗУ, не тратит время на его обработку и сохраняет/извлекает его с диска в мигание. Таким образом, вы можете реализовать любой требуемый алгоритм самостоятельно. Идентификация «выполненных действий» кажется работой для алгоритма «части речи» (существительное, глагол и т. Д.). Такие пакеты данных, как Mahout, могут сделать это. – aitchnyu

+0

@aitchnyu - К сожалению, я ничего не знаю о SA или LSI, чтобы иметь возможность писать свои собственные алгоритмы. Я надеялся, что смогу использовать что-то вроде Солра, чтобы начать здесь прыжок. Мне нужно знать конкретно, если в документе существует определенное утверждение (ы). Формулировка может быть совершенно иной (синонимы и т. Д.), Но мне нужно уловить ее. Я уверен, что это можно сделать с помощью алгоритмов и тегов POS, но я не знаю, как это сделать. Кроме того, я вообще не очень хорошо разбираюсь в Java, что мешает мне с некоторыми инструментами. – IOInterrupt

ответ

0

Я не вижу конца тому, что вы пытаетесь сделать здесь, я имею в виду, что ваш индекс коротких документов определенно пострадает от озера информации, а длинный запрос сделает почти каждый результат почти плоским, даже расширяя документ добавив, что каждый термин с синонимами Wordnet будет запутанным и вводящим в заблуждение, я думаю, мой совет - пробить другие возможные формы запроса.

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