У меня есть запрос и набор документов. Мне нужно ранжировать эти документы на основе сходства косинусов с tf-idf. Может кто-нибудь, пожалуйста, скажите мне, какую поддержку я могу получить от Lucene, чтобы вычислить это? Какие параметры я могу непосредственно вычислить из Lucene (могу ли я получить tf, idf непосредственно через некоторый метод в lucene?) И как вычислить сходство косинусов с Lucene (есть ли какая-либо функция, которая напрямую возвращает косинус-подобие, если я передаю два вектора запроса и документ?)Как вычислить сходство косинуса с tf-idf с использованием Lucene и Java
Thanx заранее
Мне нужно вычислить значения tf-idf, а затем сходства по косинусу. Я не могу найти образец кода. – Paba
См. [Здесь.] (Http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/api/core/org/apache/lucene/search/DefaultSimilarity.html) Это объект стратегии, который вы назначаете IndexSearcher, поэтому он будет использовать его для получения tf и idf и, наконец, queryNorm. Вам также необходимо будет управлять нормами поля индекса-времени, назначая свой сходство индексиру и реализуя computeNorm. Ничто из этого не так просто, как просто вычисление подобия косинуса, причина в том, что это высокоэффективная реализация этого расчета, разделенная между индексом-временем и временем запроса. –
Thanx Марко. Но у меня есть одна большая проблема, которая заключается в том, как рассчитать частоту и частоту документа. Есть ли способ получить частоту и частоту документа, передав корпус документа? – Paba