Стандартный анализатор Lucene против Snowball - PullRequest
21 голосов
/ 06 октября 2010

Просто начать работу с Lucene.Net.Я проиндексировал 100 000 строк с помощью стандартного анализатора, выполнил несколько тестовых запросов и заметил, что множественные запросы не возвращают результатов, если исходный термин был единственным.Я понимаю, что анализатор снежного кома добавляет поддержку, что звучит неплохо.Тем не менее, мне интересно, есть ли какие-либо недостатки гонга со снежком по сравнению со стандартным?Я теряю что-нибудь, идя с этим?Есть ли другие анализаторы, чтобы рассмотреть?

Ответы [ 3 ]

18 голосов
/ 06 октября 2010

Да, используя стеммер, такой как Snowball, вы теряете информацию об оригинальной форме вашего текста. Иногда это будет полезно, иногда нет.

Например, Snowball превратит «организацию» в «орган», поэтому при поиске «организации» результаты будут возвращаться с «органом» без штрафа за подсчет очков.

То, подходит ли вам это, зависит от вашего контента и от типа запросов, которые вы поддерживаете (например, являются ли поиски очень простыми или очень сложными и используют ваш поиск для точной фильтрации результатов) ). Вы также можете посмотреть на менее агрессивные стеммеры, такие как KStem .

6 голосов
/ 10 октября 2010

Анализатор снежный ком увеличит ваш отзыв, поскольку он намного агрессивнее стандартного анализатора.Так что вам нужно оценить результаты поиска, чтобы увидеть, нужно ли для ваших данных увеличить отзыв или точность .

4 голосов
/ 07 октября 2010

Я только что закончил анализатор, который выполняет лемматизацию. Это похоже на основание, за исключением того, что оно использует контекст для определения типа слова (существительное, глагол и т. Д.) И использует эту информацию для получения основы. Он также сохраняет первоначальную форму слова в индексе. Может быть моя библиотека может быть вам полезна. Это требует Lucene Java, и я не знаю ни о каких лемматизаторах C # / .NET.

...