Python 中的词干和词形还原:使用哪一个?

已发表: 2021-02-09

自然语言处理 (NLP) 是一种通信处理技术,涉及从语言中提取重要特征。 这是人工智能的进步,涉及构建具有先前经验的智能代理。 这里之前的经验是指在庞大的数据集上执行的训练,这些数据集涉及来自社交媒体、网络抓取、调查表格和许多其他数据收集技术等来源的文本数据。

数据收集后的第一步是清理这些数据并将其转换为机器可读的形式,即机器可以解释的数字形式。 虽然转换过程完全是另一回事,但清洁过程是要执行的第一步。 在这个清理任务中,变形是一个重要的概念,在继续进行词干化和词形还原之前需要清楚地理解。

目录

拐点

我们知道文本数据包括带有单词和其他字符的句子,这些字符可能会或可能不会影响我们的预测。 句子包括单词和常用的单词,例如is,there,并且被称为停用词。 这些可以通过为它们形成语料库来轻松删除,但是同一个词的不同形式呢?

您不希望您的机器将“学习”和“学习”视为不同的词,因为这些词背后的意图保持相同并且都传达相同的含义。 处理这种情况是 NLP 中的常见做法,这被称为拐点。 这是使用不同方法进行词干提取和词形还原的基本思想。 让我们发现它们之间的区别,看看哪个更好用。

词干

它是文本规范化技术之一,专注于减少单词的歧义。 词干提取侧重于将词舍入到词干。 它通过删除前缀或后缀来做到这一点,具体取决于所考虑的单词。 该技术根据定义的规则集减少单词。

结果词可能有也可能没有任何实际有意义的词根。 其主要目的是将相似词组组合在一起,以便进一步优化预处理。 例如,play、play、play 等词都属于词干“play”。 这也有助于减少搜索引擎的搜索时间,因为现在更多地关注关键元素。

关于词干化需要讨论两种情况,即过蒸词干不足 虽然从单词中删除前缀和后缀可以解决某些情况,但有些单词被剥离的程度超过了要求。

这可能会导致更多没有意义的垃圾词。 虽然这是整个词干的缺点,如果它发生得更剧烈,它被称为过度词干。 词干不足是相反的情况,词干处理过程导致单词很少或有差异。

词形还原

另一种规范化文本并将其转换为词根含义的方法是词形还原。 这具有将相似的意图词分组为一组的相同动机,但不同之处在于,结果词在这里是有意义的。

它们不是用预定义的规则剥离的,而是使用字典形成的,或者我们称之为引理。 在这里,转换过程需要更多时间,因为首先,单词与其词性匹配,这本身就是一个耗时的过程。

这确保了词根具有字面意义,有助于在分析中获得良好的结果。 当我们不想花太多时间在数据清理上,并且需要更干净的数据进行进一步分析时,这很有用。 这种技术的一个缺点是,由于它更多地关注单词的语法,不同的语言将需要单独的语料库,从而导致越来越多的数据处理。

结帐:初学者的深度学习项目创意

使用哪一个?

现在到了在他们两个之间选择一个的关键。 选择任何人都是非常主观的,因为您所针对的用例在这里起着重要作用。

如果您想分析一段文本但时间是一个限制,那么您可以选择词干提取,因为它执行此操作的时间较短但成功率较低,并且词干是通过可能没有任何算法的方式提供的意义。

采用 Lemmatization 提供了一个额外的优势,即从不同的形式中获得有意义和准确的词根词。 如果你能用更多的时间买得起好的计算资源,那么这可能是一个更好的选择。 这应该在我们需要精确分析的地方采用。 搜索引擎上的某些搜索技术也可能是这种情况,其中根词足以获取用户想要的结果。

Python 实现

NLTK(自然语言工具包)包是围绕 NLP 的任务的 Python 实现。 该库具有所有必需的工具,例如 Stemmers。 Lemmatizers、停用词删除、创建自定义解析器树等等。 它还包含来自包本身包含的主要来源的语料库数据。

词干提取技术有许多实现,但最流行和最古老的一种是 Porter Stemmer 算法。 雪球词干分析器也用于一些项目。 为了更清楚地理解词干提取和词形还原之间的区别,请查看下面的代码及其输出:

导入 nltk

从 nltk.stem 导入 PorterStemmer

从 nltk.stem 导入 WordNetLemmatizer

word_stemmer = PorterStemmer()

lemmatizer = WordNetLemmatizer()

打印(lemmatizer.lemmatize('苍蝇'))

打印(word_stemmer.stem('苍蝇'))

输出:

第一个输出来自词形还原器,第二个来自词干分析器。 您可以看到不同之处在于,词形还原器将根词作为输出,而词干分析器只是从末尾修剪了单词。

学习世界顶尖大学的数据科学课程获得行政 PG 课程、高级证书课程或硕士课程,以加快您的职业生涯。

另请阅读:机器学习项目理念

结论

NLP 每天都在增长,新的方法随着时间的推移而发展。 他们中的大多数人专注于如何以最小的损失有效地从文本数据中提取正确的信息并消除所有噪声。 这两种技术都被广泛使用。 重要的是分析是在干净的数据上进行的。

用于聚类文档的两种 AI 算法是什么?

分层聚类和非分层聚类是用于聚类文本的两种人工智能算法。 层次聚类算法根据一组规则对文档进行划分和聚合。 然后将层次结构的成对的数据项集群连接在一起。 虽然这种技术易于阅读和理解,但它可能不如非分层聚类有效。 当数据中有很多缺陷时,聚类可能会很困难。 非分层集群需要合并和打破现有集群以创建新集群。 这是一种相对更快、更可靠、更稳定的聚类方法。

词形还原是情感分析的首选吗?

词形还原和词干化都是非常有效的程序。 然而,当转换成词根形式时,词形还原总是产生字典含义术语。 当术语的含义对研究不重要时,建议使用词干提取。 当单词的含义对分析至关重要时,建议进行词形还原。 因此,如果您必须选择一种方法进行情感分析,则可以采用词形还原法。

词干提取和词形还原如何用于文档聚类?

文档聚类,也称为文本聚类,是一种通过将文本组合在一起来分析文本的方法。 它的应用范围从自动文档排列到主题提取,甚至是快速信息检索。 词干提取和词形还原用于减少传达相同信息所需的标记数量,从而改进整体技术。 在这个预处理步骤之后,通过测量每个标记的频率来计算特征,然后是最有效的聚类方法。