Python文本挖掘学习笔记-NLTK-Stopword,Stemming,Lemmatization,pos tag

接着上一篇nltk的学习笔记,今天我们继续来看看nltk更多的内容~

Stopword 停用词:

停用词在文本中被视为噪音。文本可能包含停用词,例如is,am,are,this,a,an,the等。在用于删除停用词的NLTK中,我们需要创建停用词列表并从这些单词中过滤出标记列表。

我们可以试试看我们从nltk的语料库corpus里下载一下stopwords的词库:

然后,我们print一下,看看nltk给我们定义了什么stop word

接下来,我们就可以试试看从我们的句子里删除这些stop words~

我们要写一个for循环,让他循环我们句子里每一个词,看看有没有出现stop word,如果不是stop word,就让他append到我们新的list里面。

Stemming 词干提取

在英文中,会出现许多词语的不同词性,比如说,过去式,ing形式,分词形式,我们这个lexicon normalization可以让词语都回归到原来的形式,返璞归真!

我们用到的方法是 PorterStemmer.stem():

可以看到,stem后的词语都被打回原形,stem() 仿佛照妖镜!

Lemmatization 词性还原(stem升级版)

Lemmatization是将单词转换为其基本形式的过程。Lemmatization与stemming之间的区别在于,Lemmatization会考虑上下文并将单词转换为其有意义的基本形式,而stemming仅删除最后几个字符,通常会导致含义不正确和拼写错误。

看看下面的图,我们就明白了:

我们用到的方法是WordNetLemmatizer.lemmatize()

Wordnet是一个大型的,免费的,公共可用的英语词汇数据库,旨在建立单词之间的结构化语义关系。它也提供去词皮化功能,并且是最早,最常用的去词皮机之一,我们可以先安装它:nltk.download('wordnet')

然后,我们就可以来试试看词性还原了:

哇!厉害厉害,连better都可以变成good~

小伙伴们是不是注意到了词语后面的:“a”,“v”,“n”? 是什么意思呢?是词性的意思,他叫pos tag,可以规定lemmatize出来的词语是什么词性,如下图所示,a就是形容词,v是动词,n是名词~

nltk也有一个方法帮我们看词语的pos tag,这个方法是pos_tag():

你可能感兴趣的:(Python文本挖掘学习笔记-NLTK-Stopword,Stemming,Lemmatization,pos tag)