Как мне сделать слово «Стемминг» или «Лемматизация»? - PullRequest
106 голосов
/ 21 апреля 2009

Я пробовал PorterStemmer и Snowball, но оба не работают на всех словах, пропуская некоторые очень распространенные.

Мои тестовые слова: « кошки, бегущие по кактусам, кактусам, сообществам кактусов », и оба получают право наполовину меньше.

Смотри также:

Ответы [ 21 ]

0 голосов
/ 08 марта 2014

Мартин Портер (Snow Porter) написал Snowball (язык, на котором основываются алгоритмы) и переписал «English Stemmer» на Snowball. Есть английский Stemmer для C и Java.

Он недвусмысленно заявляет, что Porter Stemmer был переопределен только только по историческим причинам, поэтому проверка правильности определения основ на Porter Stemmer даст вам результаты, которые вы (должны) уже знать.

От http://tartarus.org/~martin/PorterStemmer/index.html (акцент мой)

Стеммер Портера следует рассматривать как « замороженный », то есть строго определен и не подлежит дальнейшей модификации. Как стеммер, он немного уступает стеммеру Snowball English или Porter2, который происходит от него и который иногда подвергается улучшениям. Поэтому для практической работы рекомендуется новый стеблер Snowball. Стеммер Портера подходит для исследований в области ИК, связанных со стеммингом, где эксперименты должны быть точно повторяемыми.

Dr. Портер предлагает использовать английский или Porter2 вместо Steter. Английский демоверсия - это то, что на самом деле используется на демонстрационном сайте , как @StompChicken ответил ранее.

...