码迷,mamicode.com
首页 > 其他好文 > 详细

什么是词干化处理

时间:2016-08-11 15:35:05      阅读:540      评论:0      收藏:0      [点我收藏+]

标签:

词干化处理:

在NLP中,我们对一句话或一个文档分词之后,一般要进行词干化处理。词干化处理就是把一些名词的复数去掉,动词的不同时态去掉等等类似的处理。

对于切词得到的英文单词要进行词干化处理,主要包括将名词的复数变为单数和将动词的其他形态变为基本形态。对动词的词干化可以使用 Porter 算法[5]。

举个例子说明:用的python中的    from nltk.stem.snowball import SnowballStemmer

def tokenize_and_stem(self,text):
        # first tokenize by sentence, then by word to ensure that punctuation is caught as it‘s own token
        tokens = [word for sent in nltk.sent_tokenize(text) for word in nltk.word_tokenize(sent)]
        print tokens
        filtered_tokens = []
        # filter out any tokens not containing letters (e.g., numeric tokens, raw punctuation)
        for token in tokens:
            if re.search([a-zA-Z], token):
                filtered_tokens.append(token)
        stems = [stemmer.stem(t) for t in filtered_tokens]
        print stems

结果:

[hello, ,, what, are, you, doing, now, ,, i, want, to, go, to, school, ,, by, some, fruits]
[uhello, uwhat, uare, uyou, udo, unow, i, uwant, to, go, to, uschool, by, usome, ufruit]

从上面对比可以看出:doing——>do fruits——>fruit 逗号也去掉了

什么是词干化处理

标签:

原文地址:http://www.cnblogs.com/lovychen/p/5760939.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!