Морковь: разные кластеры для одного запроса - PullRequest
0 голосов
/ 01 ноября 2018

При выдаче одного и того же запроса с запросом на совпадение (*: *) я получаю разные кластеры и оценки все время. В чем может быть причина?

Первая попытка:

label: "В Минске"
score: 52.79549568196028

Вторая попытка:

label: "В Минске"
"score": 54.74385944060893

Третья попытка:

label: "В Минске"
"score": 48.884082925408734

Идентификаторы документов внутри кластеров также различны. Сами кластеры меняются: в одном ответе на запрос я получаю кластер «тысячами евро», в последующем он исчезает, но появляется новый кластер: «Тысячами Долларов»

Есть ли какой-нибудь морковный параметр, который мог бы сделать кластеры стабильными для данного запроса? Может ли быть желаемым ClusterCountBase?

Индекс Solr одинаков для всех случаев. Используемый алгоритм: org.carrot2.clustering.lingo.LingoClusteringAlgorithm с StopWordLabelFilter.enabled = false и clustering.rows = 1000.

1 Ответ

0 голосов
/ 02 ноября 2018

Похоже, я нашел причину:

  • в указателе были дубликаты каждого документа, с одним отличием: одна копия имела дату публикации, а другая - нет.
  • в то же время мой фильтр дат работал неправильно, потому что даты публикации были помечены неверно на каждом документе, и функция ранжирования с обратным рангом могла возвращать разные документы каждый раз для первой 1000 (эту часть трудно отладить, не глядя в исходный код Solr)
  • модуль кластеризации получит немного другие наборы документов => кластеры изменятся. Тем не менее, можно видеть, что наиболее заметные кластеры (по размеру) были все еще стабильны, менялись только оценки. Менее заметные кластеры могут быть заменены другими менее заметными кластерами между запросами.

Я не знаю, является ли это ошибкой, но удаление всех документов из индекса и возвращение их с правильной датой публикации решило проблему.

...