Получение модели векторного пространства (tf-idf) из запроса по индексу lucene - PullRequest
1 голос
/ 28 июля 2010

Мне нужно получить модель векторного пространства (с взвешиванием tf-idf) из результатов запроса на lucene и не могу понять, как это сделать. Кажется, это должно быть просто, и на этом этапе, возможно, один из вас, ребята, может указать мне правильное направление.

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

Изменить: Для всех, кто сталкивается с этим, есть решение @ гораздо более ясный вопрос здесь То, что мне нужно, можно получить с помощью метода IndexReader.getTermFreqVector (String field, int docid).

К сожалению, это не работает для меня, так как индекс, над которым я работаю, не сохранил термин частотные векторы, поэтому я думаю, что я все еще ищу дополнительную помощь в этом!

Ответы [ 3 ]

3 голосов
/ 10 августа 2010

Чтобы ответить на этот вопрос, вы можете вычислить модель взвешенного векторного пространства TF-IDF для набора результатов lucene, используя классы IndexReader.getTermFreqVector () и Searcher.docFreq (). В Lucene невозможно напрямую получить VSM для набора результатов.

2 голосов
/ 28 июля 2010

Может быть, я неправильно понимаю, что вы пытаетесь сделать, но в оценке Лусена используется модель векторного пространства. Если вы хотите получить более подробную информацию о том, как рассчитываются оценки, с учетом документа и запроса, используйте Searcher.explain (Query query, int doc).

1 голос
/ 29 июля 2010

Если я правильно понял из вашего комментария, вы хотите вычислить косинусное сходство между документами, а не между запросом и документом. Я не знаю точно, как это сделать, но я бы указал на страницу API Lucene для класса Similarity. Возможно, вам придется извлечь и использовать пользовательский подкласс Similarity, который изменяет элементы coord и queryNorm, и найти способ превратить документы в объекты запроса.

(Нет гарантий; я просто пытаюсь сам разобраться с этим.)

...