2016-02-15 48 views
2

我目前在我的Java項目中使用Snowball Stemmer(Porter2)來幹掉單詞等。但是,它的詞幹或者不一定需要被阻止或者干擾過多?例如,online -> onlin,why -> whi,raise-> rais,appreciate -> appreciSnowball Stemmer [Java]

有什麼辦法,我可以嘗試避免這種不必要的制止,因爲我想它給我的話是有意義的,也需要加以遏制制止的話,如treating -> treatrecords -> recorddevelopment -> develop等通過實施一些哪種字典可以避免這些詞被阻止?或者如果有其他類似於雪球的干擾者,他們的干擾能力不那麼精確?

感謝您的幫助。

這是我的功能。

+0

什麼是你所產生的目標是什麼?搜索? –

+0

@ bigOTHER - 我的目標是從互聯網上獲取推文,剔除推文中的單詞,並刪除停用詞,因此我只剩下推文中的基本單詞進行分析。然而,一些詞語太過分了,並不真正需要這個,這就是爲什麼我一直在尋找它不那麼精確 –

+0

這些詞幹是好的,因爲Portar是爲了搜索目標而存在的,也就是說,詞幹是否一個真正的起源,重要的是它對於整個詞族來說是一樣的。 –

回答

1

Porter Stemmer的主要工作是將單詞分組爲一組詞。這些詞幹很好,因爲波特是爲了搜索目的而存在的,也就是說,詞幹是否是真正的起源並不重要,重要的是它對於整個詞族來說都是一樣的。

正如你所工作的詞頻分析搭配的目標,我想你需要一個光詞幹或最小的一個。

您可以在Lucene中查看這篇文章的stemmers。你可以注意到:

minimal_english

EnglishMinimalStemmer在Lucene的,這消除 複數

+0

EnglishMinimalStemmer會刪除ing,ment等結尾嗎? –

+0

@JohnLewis不,這隻適用於複數形式。如果你想要更多,請嘗試kstem或lovins。 –

+0

剛剛實施Lovins,它似乎比雪球哈哈更準確 –