[Day3] stemming 与 lemmatization

一. 前言

这部份我比较不会着墨太多,因为通常是在处理中文文本比较不会处理这一块,而在非中文的语言上,例如英文语句中,同一个单词在拼法上可能随着时态、单复数、主被动等状况不同,ex: speaking 与 speak,然而其所要表达的语意并没有太大的不同。
Stemming 与 Lemmatization的目的就是及将这些不同的表示型态归一化,藉此来降低文本的复杂度。

其优点为能够大幅降低词数量,在建立 BOW (bag of word,在後面的文章会慢慢介绍到,一个文章或句子的表示型态) 时可以降低表示文本的维度,以降低资料复杂度,加快语言模型训练速度,ex: speak 与 speaking 想表达的语意相当接近,如果将两者都转为 speak。

缺点其实就是丧失的讯息,以上述 speaking / speak 为例,有可能某些预测需要利用到时态的讯息,当我们将两者都转为 speak 输入模型时, speak-ing 中 ing 的讯息也被我们移除。

二. 方法介绍

  1. Stemming:较偏向rule-base的方式去拆解单词,例如下列:

    university
    universal
    universities
    universe
    
    • 上面这些词stemming完後会变->univers,但这样就会有Overstemming的问题,就是切的太多了~~
  2. Lemmatization: 还原字的元型,精度比Stemming好很多~例如:

    amused
    amusing
    
    • 上面这些词经过 stemming 後会返回 amus,但经Lemmatization返回 amuse,因为他并不是切分

就以结论来说,Lemmatization 相较於 Stemming 会是更好的选择,但Stemming 的优点为计算速度快。

三. 利用nltk来处理

nltk是一个处理文字的package,通常在英文的文本上,可以参考这篇[1]。
这边稍微介绍一下怎麽使用nltk来处理Stemming与Lemmatization

  1. 下载nltk的套件:
    pip install nltk
  2. 初始Stemming处理器与Lemmatization处理器:
    from nltk.stem import WordNetLemmatizer 
    from nltk.stem.porter import PorterStemmer
    import nltk
    
    #stemmer
    ps=PorterStemmer()
    
    #Lemmatizer
    lm = WordNetLemmatizer()
    
  3. 范例的部份:
    print(f'Stemming amusing : {format(ps.stem("amusing"))}')
    print(f'lemmatization amusing : {format(lm.lemmatize("amusing", pos = "v"))}')
    #output: Stemming amusing : amus
    #output: lemmatization amusing : amuse
    

因为这主要是在非中文的文本上比较容易需要~我这边就不太多叙述了~~这个 nltk套件其实非常猛~非常推荐可以看[1]这个作者写的介绍~
下一篇会开始说明语言模型与N-gram

四. 参考资讯
[1] NLTK 初学指南


<<:  Day3 资料储存 - block storage优缺点及场景

>>:  30天轻松学会unity自制游戏-了解unity基础操作

[火锅吃到饱-16] 斗牛士二锅 - 台中文心店

官网有分店资讯 之前在脸书社团就看过版友分享过桃园店的用餐体验,平日午餐328的价位,提供6种肉品吃...

Real Microsoft DA-100 Dumps - Pass DA-100 Exam With Ease

Actual Microsoft DA-100 Dumps – Quickest Way to Ge...

[第二十六只羊] 迷雾森林舞会XV 继续整理房间

天亮了 昨晚是平安夜 关於迷雾森林故事 苏醒 在发牌之前我们先稍微小小调整一下房间的介面 我对你 想...

D17 - 从TiDB将资料同步出去

TiDB可以同步MySQL的资料异动,那麽能不能反过来让其他DB同步随着TiDB异动呢。 答案是可以...

Day 6 中场休息。转职路上的旁徨

今天来聊聊转职的困难。 其实从一开始决定要学新的技能就有很多事情需要考虑跟抉择,以下两个部份是在这条...