本文主要是介绍NLP学习-词形标准化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
首先说一下文本分析流程:
NLP学习-分词:https://blog.csdn.net/RHJlife/article/details/104748790
NLP学习-清洗:https://blog.csdn.net/RHJlife/article/details/104834980
NLP学习-词形标准化:https://blog.csdn.net/RHJlife/article/details/104835785
NLP学习-文本特征向量化:https://mp.csdn.net/console/editor/html/104893608
NLP学习-建模:暂无
下面讲述词形标准化的相关内容。
在清洗过程中,我们说到了一个处理,就是同音近音近型替换也就是词形规范化,这里就讲述两种实现的方法,如下
词干提取(Stemming):基于语言的规则,抽取词的词干或词根形式(不一定能够表达完整语义),方法较为简单。
词性还原 (Lemmatisation):基于字典的映射,把一个词汇还原为一般形式(能表达完整语义),方法较为复杂。
(个人也是从晚上搜索了很多相应的资料...发现机会都是一些调库实现,两者的区别和优劣等...具体原理我也没很好的get到,下面我也就简单介绍一些实现方法和优劣了...)
词干提取:在py中也有相应的库(nltk.stem.porter),很容易实现,主要有:
- 基于Porter词干提取算法,PorterStemmer()方法
- 基于Lancaster 词干提取算法,LancasterStemmer()方法
- 基于Snowball 词干提取算法,SnowballStemmer()方法
词性还原 :在py中也有相应的库(nltk.stem.porter),很容易调用实现实现,最常见的就是WordNetLemmatizer()方法
以下将从各种方面对两者进行对比。
从目的上来说:是一致的,词干提取和词形还原的目标均是将词的其他分支形态或者派生形态归并为原始形态,都是一种对词的不同形态的统一归并的过程。
从实现方法上说:词干提取是基于语言的规则的,利用规则变化进行词缀的去除和缩减,从而达到词的简化效果,而词性还原是基于字典的映射,利用字典进行词形变化和原形的映射,还原成为原始单词。
从原理上来说:词干提取是采取缩减的方法将词转换为词干(boys->boy),而词性还原是采取转换的方法将词转换为其原型(made->make)。
从复杂性上来说:词干提取相对容易,而词性还原相对复杂。
从结果上来说:词干提取得到的结果有可能并不是具有意义的词,而只是词的一部分(例如revival->reviv),而词性还原得到的结果一定是完整的单词。
从应用领域上来说:词干提取用于信息检索领域较多,而词性还原更适合文本挖掘、自然语言处理等更精确的领域。
这篇关于NLP学习-词形标准化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!