词干提取(stemming)和词形还原(Lemmatisation):
词干提取( Stemming ) 这是西方语言特有的处理,比如说英文单词有单数复数的变形,-ing和-ed的变形,但是在计算相关性的时候,应该当做同一个单词。比如 apple和apples,doing和done是同一个词,提取词干的目的就是要合并这些变态。
Stemming有3大主流算法:
Porter Stemming、Lovins stemmer 和 Lancaster Stemming。
Lucene 英文分词自带了3个stemming算法,分别是:
1. EnglishMinimalStemmer 2. 著名的 Porter Stemming 3. KStemmer
词干提取算法并不复杂,要么是一堆规则,要么用映射表,编程容易,但是必须是这种语言的专家,了解构词法才行。
http://text-processing.com/demo/stem/ 是一个在线试验词干提取算法的网站。
词形还原(Lemmatisation),就是通过查询字典,把 "drove" 还原到 "drive" ,而词干提取( Stemming ) 会把单词变短,"apples","apple"处理之后都变成了 "apple"。