02 NLTK 分句、分词、词干提取、词型还原

NLTK 分句、分词、词干提取、词型还原

 

print("==========案例1:分句、分词===============")
import nltk.tokenize as tk
doc ="Are you curious about tokenization? ""Let's see how it works! "\
"We need to analyze a couple of sentences " "with punctuations to see it in action."

print(doc)

# 按句拆分:tk.sent_tokenize(doc)
# 问:tk.sent_tokenize()为何能识别出到哪里是一句?
# 答:1、看首字母是大写 ;2、结尾有标点符号
tokens = tk.sent_tokenize(doc)
for i,token in enumerate(tokens):
    print("%2d" % (i+1),token)

print("-----------------------------")

# 按词拆分:tk.word_tokenize(doc)
tokens = tk.word_tokenize(doc)
for i,token in enumerate(tokens):
    print("%2d" % (i+1),token)


# 按词和标点拆分:tk.WordPunctTokenizer().tokenize(doc)
tokenizer=tk.WordPunctTokenizer()
tokens = tokenizer.tokenize(doc)
for i,token in enumerate(tokens):
    print("%2d" % (i+1),token)
    
print("=============案例2:词干提取、词型还原===================")    

# 导入下面三种词干提取器进行对比
import nltk.stem.porter as pt
import nltk.stem.lancaster as lc
import nltk.stem.snowball as sb

# 导入nltk.stem用来词型还原
import nltk.stem as ns


words = ['table', 'probably', 'wolves', 'playing',
         'is', 'dog', 'the', 'beaches', 'grounded',
         'dreamt', 'envision']
print(words)

print("----------词干提取-------------")
# 在名词和动词中,除了与数和时态有关的成分以外的核心成分。
# 词干并不一定是合法的单词

pt_stemmer = pt.PorterStemmer()  # 波特词干提取器
lc_stemmer = lc.LancasterStemmer()   # 兰卡斯词干提取器
sb_stemmer = sb.SnowballStemmer("english")# 思诺博词干提取器

for word in words:
    pt_stem = pt_stemmer.stem(word)
    lc_stem = lc_stemmer.stem(word)
    sb_stem = sb_stemmer.stem(word)
    print("%8s %8s %8s %8s" % (word,pt_stem,lc_stem,sb_stem))


print("----------词型还原器---------------")
# 词型还原:复数名词->单数名词 ;分词->动词原型
# 单词原型一定是合法的单词

lemmatizer = ns.WordNetLemmatizer()
for word in words:
    # 将名词还原为单数形式
    n_lemma = lemmatizer.lemmatize(word, pos='n')
    # 将动词还原为原型形式
    v_lemma = lemmatizer.lemmatize(word, pos='v')
    print('%8s %8s %8s' % (word, n_lemma, v_lemma))

 

转载于:https://www.cnblogs.com/wodexk/p/10292947.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值