NLP之nltk:基于nltk库实现句子分词及标注对应词性、句子分割、波特词干算法进行词干提取代码案例实现
目录
基于nltk库实现句子分词及标注对应词性、句子分割、波特词干算法进行词干提取代码案例实现
实现句子分词及标注对应词性、句子分割
波特词干算法Porter Stemmer
实现代码
基于nltk库实现句子分词及标注对应词性、句子分割、波特词干算法进行词干提取代码案例实现 实现句子分词及标注对应词性、句子分割 波特词干算法Porter Stemmer这是一种基于后缀剥离的词干提取算法。在英语中,一个单词常常是另一个单词的“变种”,如:happy=>happiness,这里happy叫做happiness的词干(stem)。在信息检索系统中,我们常常做的一件事,就是在Term规范化过程中,提取词干(stemming),即除去英文单词分词变换形式的结尾
句子分词(包括符号):
['On', 'Nov.', '12', ',', '2018', ',', 'LeBron', 'James', 'passed', 'Michael', 'Jordan', 'in', 'career', 'points', '.']
句子分词(包括符号)—按照顺序:
[',', '.', '12', '2018', 'James', 'Jordan', 'LeBron', 'Michael', 'Nov.', 'On', 'career', 'in', 'passed', 'points']
句子分词(包括符号)及其对应词性:
[('On', 'IN'), ('Nov.', 'NNP'), ('12', 'CD'), (',', ','), ('2018', 'CD'), (',', ','), ('LeBron', 'NNP'), ('James', 'NNP'), ('passed', 'VBD'), ('Michael', 'NNP'), ('Jordan', 'NNP'), ('in', 'IN'), ('career', 'NN'), ('points', 'NNS'), ('.', '.')]
波特词干算法(包括符号):
['On', 'nov.', '12', ',', '2018', ',', 'lebron', 'jame', 'pass', 'michael', 'jordan', 'in', 'career', 'point', '.']
句子分割(包括符号):
['On Nov. 12, 2018, LeBron James passed Michael Jordan in career points.']
实现代码
import nltk
text = 'On Nov. 12, 2018, LeBron James passed Michael Jordan in career points.'
word2tokens = nltk.word_tokenize(text)
print('句子分词(包括符号):\n',word2tokens)
vocab = sorted(set(word2tokens))
print('句子分词(包括符号)—按照顺序:\n',vocab)
pos_tag = nltk.tag.pos_tag(word2tokens)
print('句子分词(包括符号)及其对应词性:\n',pos_tag)
stemmer = nltk.stem.PorterStemmer()
stem = [stemmer.stem(t) for t in word2tokens]
print('波特词干算法(包括符号):\n',stem)
sent2tokens = nltk.sent_tokenize(text)
print('句子分割(包括符号):\n',sent2tokens)