目录
英文自然语言处理
词干处理器(Porter/Snowball/Lancaster)结果对比
词性还原与词干提取的区别
词性还原与词干提取的定义
词性还原与词干提取的相同点
词性还原与词干提取的不同点
中文自然语言处理
三种分词选项(全模式/精确模式/搜索引擎模式)示例对比
三种分词选项(全模式/精确模式/搜索引擎模式)的应用场景
英文自然语言处理中使用了三个词干处理器,对比三种处理器的结果差别,如下表
词干提取算法
Porter
Snowball
Lancaster
例子1:
arguearguedarguesarguingargus结果
arguarguarguarguargu结果
arguarguarguarguarg结果
arguarguarguarguargus例子2:
caringwasthis结果
care wa thi结果
care was this结果
car was thi分析
最原始的算法,准确率较低。
被认为是Porter的改进算法,与Porter相差约5%
算法较为激进
特点
速度慢,但精确度不算高
速度快,精确度高;
速度最快,但精确度低
处理过程
将词干提取划分为一系列线性步骤,Porter算法提取最为宽松
迭代算法,通过循环步骤删除词缀,算法提取最为严格
结论
Snowball Stemmer综合了速度和精确性两个指标,成为了应用较为广泛的算法。值得注意的是,(1)如果数据集中包含带有词干的停用词,则应首先进行词干提取,然后再移除停用词。(2)否则,则应该先移除“停用词”,然后再进行“词干提取”。
词干提取是根据语言形态中的规律进行处理,去除屈折或派生形态的词缀,将一个词的不同形式统一为一种具有代表性的标准形式(词干)。
词形还原是基于词典,将单词的复杂形态转变成最基础的形态。词形还原不是简单地将前后缀去掉,而是会根据词典将单词进行转换。
参考来源:
https://stackoverflow.com/questions/10554052/what-are-the-major-differences-and-benefits-of-porter-and-lancaster-stemming-alg
https://easyai.tech/ai-definition/stemming-lemmatisation/
https://vprusso.github.io/blog/2018/natural-language-processing-python-5/
https://medium.com/@tusharsri/nlp-a-quick-guide-to-stemming-60f1ca5db49e
原文
分词是文本处理不可或缺的一步
全模式
分词/是/文本/文本处理/本处/处理/不可/不可或缺/或缺/的/一步/
精确模式
分词/是/文本处理/不可或缺/的/一步/
搜索引擎模式
分词/是/文本/本处/处理/文本处理/不可/或缺/不可或缺/的/一步/
不用的使用场景,对分词提出了不同的要求,不需要片面地追求高准确率。在搜索的索引阶段,往往会召回所有可能切分结果,对切分准确率要求不高,但对分词速度有很高的要求,对于中型搜索系统(e.g.每秒处理的文档字节数达到50MB),如果分词系统太慢的话,需要开大量线程才能处理这些文档。在问答系统中,需要对文本实现较为深入的理解,对分词和实体识别的准确性要求很高。
精确模式,精确模式分词速度为400KB/秒,试图将句子最精确地切开,适合问答系统或文本分析;对于较小的数据集,一般用精确模式即可;搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎;“搜索引擎模式”下,Jieba将会把分词的所有可能都打印出来,在某些模糊匹配场景下,“搜索引擎模式”较“精确模式”更为适合。全模式,把句子中所有的可以成词的词语都扫描出来。不同于“搜索引擎分词模式”只提取重要的关键词,“全模式”对于同样的模型训练,正确率会有1%-2%提升;分词速度非常快,能达到1.5MB/秒,但是不能解决歧义。因此,“全模式”可应用于搜索的索引阶段;“全模式”下,Jieba将会把分词的所有可能都打印出来,在某些模糊匹配场景下,“全模式”较“精确模式”更为适合。参考来源:
https://pypi.org/project/jieba/
https://www.ibm.com/developerworks/cn/cognitive/library/cc-1606-spark-seniment-analysis/index.html
https://www.pythonf.cn/read/87215