The Porter Stemming Algorithm 已有多种语言实现
porterstemmer 示例
from porterstemmer import Stemmer
stemmer = Stemmer()
print stemmer("foo")
print stemmer(u"foo")
print stemmer("er")
print stemmer(u"er")
print stemmer("")
print stemmer(u'')
try:
stemmer()
except:
print "exception raised."
try:
stemmer(None)
except:
print "exception raised."
package main
import (
"bufio"
"github.com/agonopol/go-stem"
"os"
)
func main() {
in := bufio.NewReader(os.Stdin)
out := bufio.NewWriter(os.Stdout)
defer out.Flush()
for word, err := in.ReadSlice('\n'); err == nil; word, err = in.ReadSlice('\n') {
out.Write(stemmer.Stem(word))
out.WriteString("\n")
}
}