2、NLP文本预处理技术:词干提取和词形还原

一、说明

在上一篇文章中,我们解释了文本预处理的重要性,并解释了一些文本预处理技术。在本文中,我们将介绍词干提取和词形还原主题。
词干提取和词形还原是两种文本预处理技术,用于将单词还原为其基本形式或词根形式。这些技术的主要目标是减少文本文档中唯一单词的数量,使其更易于分析和理解。

它们广泛用于搜索引擎和标记。搜索引擎使用词干来索引单词。因此,搜索引擎可能只存储其词根,而不是存储单词的所有形式。通过这种方式,词干提取可以减少索引的大小并提高检索准确性。

让我们深入学习一下它们吧!

二、词干提取和词形还原

词干提取涉及从单词中删除后缀以获得其基本形式,而词形还原涉及将单词转换为其形态基本形式。

与词形还原相比,词干提取是一种更简单 、**更快速的技术。**它使用一组规则或算法来删除后缀并获得单词的基本形式。然而,词干提取有时会产生无效的基本形式,在这种情况下,它也可能导致歧义。

另一方面,词形还原是一种更复杂的技术,它使用词汇和形态分析来确定单词的基本形式。词形还原比词干提取更 且更复杂。它生成可以在字典中找到的有效基本形式,使其比词干提取更准确。

当单词的含义对分析不重要 时,首选词干提取。例如:垃圾邮件检测

当单词的含义对于分析很重要 时,建议进行词形还原。例如:问题解答

三、Porter & Zemberek词干提取

Porter词干提取算法是最常见的词干提取算法之一,其主要目的是删除和替换众所周知的英语单词后缀。

如果您想用土耳其语进行操作,在土耳其语中查找词根的最常见算法被称为" Zemberek "。Zemberek 是一个自然语言处理库,可以根据土耳其语的语言结构和词法分离词根和后缀。

尽管波特词干算法是针对英语文本开发的,但它可以适应不同的语言。然而,使用专门针对不同语言(例如土耳其语)设计的自然语言处理工具和算法更为有效,因为它们并不能完全适应该语言的特点。

Zemberek 在理解和处理土耳其语丰富的形态结构方面更加成功,因此在土耳其语文本上给出了更好的结果。因此,更常见的是选择 Zemberek 等特定于语言的工具来进行土耳其语的语言处理和寻根任务。

我将在另一篇文章中更详细地介绍"Zemberek"主题。

让我们看看波特词干算法是如何工作的:

ba 复制代码
from nltk.stem.porter import PorterStemmer

stemmer = PorterStemmer()
 
def stem_words(text):
    word_tokens = text.split()
    stems = [stemmer.stem(word) for word in word_tokens]
    return stems
 
text = 'text preprocessing techniques for natural language processing by Aysel Aydin'
stem_words(text)

输出:

ba 复制代码
['text',
 'preprocess',
 'techniqu',
 'for',
 'natur',
 'languag',
 'process',
 'by',
 'aysel',
 'aydin']

现在让我们考虑"词形还原"的主题

在我们的词形还原示例中,我们将使用一种流行的词形还原器,称为WordNet词形还原器。

WordNet 是英语单词关联数据库,也是英语词形还原的有用资源。然而,土耳其语中没有与此源直接等效的工具,Zemberek 等特定于语言的工具更适合土耳其语文本的词形化。

正如我上面提到的,我将在另一篇文章中更详细地讨论"Zemberek"主题。

让我们编码并应用词形还原。

ba 复制代码
from nltk.stem import WordNetLemmatizer

lemmatizer = WordNetLemmatizer()

def lemmatize_word(text):
    word_tokens = text.split()
    lemmas = [lemmatizer.lemmatize(word, pos ='v') for word in word_tokens]
    return lemmas
 
text = 'text preprocessing techniques for natural language processing by Aysel Aydin'
lemmatize_word(text)

输出:

ba 复制代码
['text',
 'preprocessing',
 'techniques',
 'for',
 'natural',
 'language',
 'process',
 'by',
 'Aysel',
 'Aydin']

四、总结

总而言之,词干提取和词形还原是帮助我们进行自然语言处理的文本预处理的方法。它们都旨在将词形变化减少到共同的基本词根,但各自采取不同的方法来做到这一点。

在某些情况下,词干提取可能比词形还原产生更好的结果,而在其他情况下,词形还原可能更准确。因此,在选择文本规范化技术时,必须权衡简单性、速度和准确性之间的权衡。

相关推荐
zhoxier1 小时前
elementui el-select 获取value和label 以及 对象的方法
javascript·vue.js·elementui
是小狐狸呀1 小时前
elementUI-表单-下拉框数据选中后,视图不更新
前端·javascript·elementui
四岁半儿3 小时前
常用css
前端·css
你的人类朋友4 小时前
说说git的变基
前端·git·后端
姑苏洛言4 小时前
网页作品惊艳亮相!这个浪浪山小妖怪网站太治愈了!
前端
字节逆旅4 小时前
nvm 安装pnpm的异常解决
前端·npm
Jerry5 小时前
Compose 从 View 系统迁移
前端
IT码农-爱吃辣条5 小时前
Three.js 初级教程大全
开发语言·javascript·three.js
GIS之路5 小时前
2025年 两院院士 增选有效候选人名单公布
前端
四岁半儿5 小时前
vue,H5车牌弹框定制键盘包括新能源车牌
前端·vue.js