在处理文字时,由于语法原因,我们遇到了很多变化。 这里的变化的概念意味着必须处理像:democracy, democratic 和 democratization 等不同形式的相同词汇。机器非常需要理解这些不同的单词具有相同的基本形式。 通过这种方式,在分析文本的同时提取单词的基本形式将会很有用。
我们可以通过阻止来实现这一点。 通过这种方式,可以说干扰是通过切断单词的结尾来提取单词基本形式的启发式过程。
在Python NLTK模块中,有一些与stemming相关的其它包。 这些包可以用来获取单词的基本形式。 这些软件包使用算法。 一些软件包如下所示 -
PorterStemmer包
这个Python包使用Porter算法来提取基础表单。可以使用下面的Python代码来这个包 -
from nltk.stem.porter import PorterStemmer
例如,如果将writing这个词作为这个词干的输入,它们就会在词干之后得到write这个词。
LancasterStemmer包
这个Python包将使用Lancaster的算法来提取基本形式。 可以使用下面的Python代码来导入这个包 -
from nltk.stem.lancaster import LancasterStemmer
例如,如果将writing这个词作为这个词干的输入,它们就会在词干之后得到write这个词。
SnowballStemmer包
这个Python包将使用雪球算法来提取基本形式。 可以使用下面的Python代码来导入这个包 -
from nltk.stem.snowball import SnowballStemmer
例如,如果将writing这个词作为这个词干的输入,它们就会在词干之后得到write这个词。
所有这些算法都有不同程度的严格性。 如果比较这三个词干的话,那么波特词干是最不严格的,兰卡斯特词干是最严格的。 雪球词干在速度和严格性方面都很好用。
词形还原
也可以通过词形化来提取单词的基本形式。 它基本上通过使用词汇的词汇和形态分析来完成这项任务,通常旨在仅删除变元结尾。 任何单词的这种基本形式都称为引理。
词干化和词性化的主要区别在于词汇的使用和形态分析。 另一个区别是,词干最常见的是崩溃派生相关的词汇,而词素化通常只会折拢引理的不同的折点形式。 例如,如果提供单词saw作为输入词,那么词干可能会返回单词's',但词形化会尝试返回单词,看看或看到取决于使用该单词是动词还是名词。
在Python NLTK模块中,有以下与词形化过程有关的包,可以使用它来获取词的基本形式 -
WordNetLemmatizer包
这个Python包将提取单词的基本形式,取决于它是用作名词还是动词。 可以使用下面的Python代码的来导入这个包 -
from nltk.stem import WordNetLemmatizer
//更多请阅读:https://www.yiibai.com/ai_with_python/ai_with_python_nltk_package.html
|