简单的问题:我们什么时候干活或词汇化?是否有助于所有nlp过程,或者是否存在使用完整形式的单词可能导致更高精度或精度的应用程序?
答案 0 :(得分:4)
在基于机器学习的NLP环境中,词干会使您的训练数据更加密集。它减少了字典的大小(语料库中使用的单词数量)两倍或三倍(对于像法语这样的许多选项的语言,甚至更多,例如,在动词的情况下,单个词干可以生成数十个单词)。
具有相同的语料库,但输入维度较少,ML将更好地工作。召回应该真的更好。
缺点是,如果在某些情况下实际单词(与其词干相对)有所不同,那么您的系统将无法利用它。所以你可能会失去一些精确度。
答案 1 :(得分:1)
我们什么时候阻止或引用这些词?
词干是一种有用的“规范化”技术。考虑作为搜索文档语料库的示例。更具体地说,我们可能会准备一堆文档,以便在某种搜索索引中进行搜索。在创建搜索索引时,我们采用类似的术语并将它们置于根词中,以便对该词的其他形式的搜索与我们的文档匹配。
考虑以下条款
假设我们将这些中的每一个转换为搜索索引中的术语index
。每当我们遇到其中一个时,我们将使用根形式“index”而不是文档中的单词。
同样,我们在运行搜索查询之前执行相同的步骤,例如database indexing
。
查询将转换为database index
,匹配其中包含任何形式“索引”的所有文档,最像是增加搜索结果的相关性。
在全文搜索中,在执行短语搜索时保留词干非常有用,我们可能会拼出一个语法正确的短语。类似于确切的短语"Doug likes indexing databases"
。我们希望在该上下文中进行全文搜索的完整“索引”。
答案 2 :(得分:1)
词干对各种任务非常有用。例如,如果您正在进行文档相似性,则可以更好地规范化数据。删除属性,停用词,小写一切,删除标点符号并取消选择。另一个建议是对单词进行排序。对于bigrams而言,这并不是那么糟糕,但是如果用更大的术语看起来可能会很奇怪。
Stack Exchange's
stack exchange
STACK EXCHANGE
Exchange, Stack
Stack Exchange (WEB)
StAcK Exchanges
为了进一步计算,所有这些应该标准化为“交换堆栈”。