前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Lemmatization VS Stemming

Lemmatization VS Stemming

作者头像
Alan Lee
发布2021-03-22 10:29:25
8940
发布2021-03-22 10:29:25
举报
文章被收录于专栏:Small CodeSmall Code

简单来说,两者都是对词的归一化,但 Stemming(中文一般译为词干提取,以下简称 stem)更为简单、快速一些,通常会使用一种启发式方法去掉一个词的结尾。 Lemmatization(中文一般译为词形还原,以下简称 lemma)更为「智能」一些,上下文相关,有一个 vocab,不在其中的词不会被处理:

例如

  • 对于 better,stem 的结果仍然是 better,但是 lemma 结果是 good
  • 对于 meeting,在没有上下文的情况下,既可以指名词会议,也可以是动词 meet 的 ing 形式。在 in our last meetingWe are meeting again tomorrow 这两句话中,lemma 就更能选择一个正确的结果。

nltk 中,这两者都在 nltk.stem 中,常见的有这么几种:PorterStemmerSnowballStemmerWordNetLemmatizer。其中 WordNetLemmatizer 是通过 pos 来获取上下文信息的,pos 可以使用 nltk.pos_tag(nltk.word_tokenize('YOUR SENTENCE')) 来获得。

下面以几个例子了解下:

代码语言:javascript
复制
def test_stemmer(word: str, pos='n'):
    porter = nltk.stem.PorterStemmer()
    snowball = nltk.stem.SnowballStemmer('english')
    wordnet = nltk.stem.WordNetLemmatizer()
    
    print(f"Origin: {word}")
    print('----------------------')
    print(f"PorterStemmer: {porter.stem(word)}")
    print(f"SnowballStemmer: {snowball.stem(word)}")
    print(f"WordNetLemmatizer: {wordnet.lemmatize(word, pos=pos)}")  # pos 的默认值是 n,即名词


test_stemmer('apples', pos='n')
# Origin: apples
# ----------------------
# PorterStemmer: appl
# SnowballStemmer: appl
# WordNetLemmatizer: apple

test_stemmer('better', pos='a')
# Origin: better
# ----------------------
# PorterStemmer: better
# SnowballStemmer: better
# WordNetLemmatizer: good

test_stemmer('meeting', pos='n')
# Origin: meeting
# ----------------------
# PorterStemmer: meet
# SnowballStemmer: meet
# WordNetLemmatizer: meeting

test_stemmer('meeting', pos='v')
# Origin: meeting
# ----------------------
# PorterStemmer: meet
# SnowballStemmer: meet
# WordNetLemmatizer: meet

Reference

END

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2021-03-08 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Reference
  • END
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档