词干比小种机


75

自然语言处理(NLP)(尤其是英语)已经发展到一个阶段,如果存在“完美”的词义修饰符,词干将成为古老的技术。这是因为词干将词/令牌的表面形式更改为一些毫无意义的词干。

然后,由于完全不同的NLP任务将需要不同程度的词法化,因此“完美”词法化器的定义还是有问题的。例如,在动词/名词/形容词形式之间转换单词

词干

[in]: having
[out]: hav

脱胶机

[in]: having
[out]: have
  • 所以问题是,英语词干今天是否有用?由于我们有大量的英语非母语化工具

  • 如果不是,那么我们应该如何着手构建强大的lemmatizers可以取nounifyverbifyadjectifyadverbify 预处理?

  • 词形化任务如何轻松地扩展到具有与英语相似的词法结构的其他语言?


1
您有特定的任务吗?在上下文中回答NLP问题总是比较容易。
雷诺德

要建立灵活的任何NLP任务lemmatizer,需要不同层次的抽象=)
alvas

Answers:


84

问题1:“ [..]今天的英语语法分析器有用吗?因为我们有大量的英语词义化工具”

是。词干比lemmatizers更简单,更小并且通常更快,并且对于许多应用而言,它们的结果足够好。为此使用lemmatizer会浪费资源。例如,考虑信息检索中的降维。您在搜索的文档和查询中都用driv替换了所有驱动器/驱动器。您不必关心它是驱动器还是drivx17a $,只要它将与拐点相关的单词聚集在一起即可。

问题2:“ [..]我们应该如何继续构建可用于名词化,动词化,形容词和副词化的强大词条简化器?

对引理定义是什么它包含导数(drive - driver)还是仅包含拐点(drive - drive - drove)?是否考虑到语义?

如果要包含派生词(大多数人会说包括动词名词等),则请记住,派生词比拐点词更不规则。有很多特质,差距等。您是否真的要更改更改火车)和更改(作为硬币)以具有相同的引理?如果没有,您在哪里划界?如何神经-失去勇气地球--世人,......这真的取决于应用程序。

如果您考虑到语义(根据上下文将银行标记为银行货币银行河流),您的工作范围有多深(将银行机构银行建设区分开来)?有些应用程序可能根本不关心这一点,有些可能想要区分基本语义,有些可能希望对其进行细化。

问题3:“如何将去词义化任务轻松地扩展到具有与英语相似的词法结构的其他语言?”

“与英语相似的形态结构”是什么意思?英语的屈折形态很少。对于其他形态类型的语言(真正的屈折,凝集,模板等),有很好的词义化工具。

除了可能出现的凝集性语言外,我认为查找表(例如压缩的特里)是最好的解决方案。(可能带有一些针对未知单词(例如专有名称)的备份规则)。查找后会进行某种歧义消除(从琐碎的-选择第一个,或选择与POS标签一致的第一个,到更为复杂)。更复杂的disambiguations通常监督随机情形下的算法(例如TreeTagger更快),虽然机器学习和人工创建的规则的组合已经做了太多(例如参见)。

显然,对于大多数语言,您不想手动创建查找表,而是根据该语言的形态描述生成该表。对于变形语言,您可以采用Hajic(针对捷克语)或Mikheev(针对俄语)的工程方法,或者,如果您胆敢,可以使用两级形态。或者,您也可以在两者之间做一些事情,例如Hana(我自己)(请注意,这些都是包括词条化的完整形态分析器)。或者,您可以通过la Yarowsky和Wicentowski以无人监督的方式学习lemmatizer,可能需要进行手动后处理,以纠正最常用的单词。

选项太多了,这实际上取决于您要对结果执行的操作。


user2543968在我的回答中添加了以下内容。我将其移至此处,是因为我不确定它们之间的相关性,尤其是与我在那儿回答的两个子问题之间的相关性-有些工具试图解决这些问题,例如著名的TreeTagger,也有一些层可以像[更快] [3]一样改善它。这里我们使用了机器学习和基于规则的系统。
Jirka

user2543968的另一项附加功能:-定向和勒索化有时可能具有相同的目标:提高搜索速度-索引速度,分类并减少搜索索引大小。一个好的问题是,如何改善这些要点?如果在生化过程中添加更多语义,则可能会降低速度。如果您添加更多详细信息,您可能会获得更大的索引。勒松机是一种平衡工具。
Jirka,

6

词干或词根化的一种经典应用是改善搜索引擎的结果:通过对查询应用词干(或词条化)以及对所有已索引的令牌(在索引编制之前),搜索“拥有”的用户能够查找包含“有”的结果。

(可以说,动词在大多数搜索查询中并不常见,但是相同的原理也适用于名词,尤其是在名词形态丰富的语言中。)

为了提高搜索结果的目的,词干(或引理)是否有意义(“具有”)(“具有”)实际上并不重要。它只需要能够代表所讨论的单词及其所有变形词即可。实际上,某些系统使用数字或其他类型的id字符串来代替词干或引理(或基本形式或可能被称为的形式)。

因此,这是一个应用程序示例,其中词干分析器(根据您的定义)与词义生成器一样好。


但是,我不太相信您的(暗示的)“词干”和“增粗剂”的定义通常被接受。我不确定这些术语是否有任何公认的定义,但是我定义它们的方式如下:

词干:使用已知后缀的规则和列表,将变形形式简化为词干或基本形式的功能。

Lemmatizer:执行相同归约的功能,但使用全面的完整形式字典来处理不规则形式。

根据这些定义,lemmatizer本质上是词梗的更高质量(和更昂贵)的版本。


2

答案高度依赖于我们正在谈论的自然语言处理(NLP)中的任务或特定研究领域。

值得指出的是,已经证明,在某些特定任务中,例如使用StemmerLemmatizer作为系统开发(训练机器学习)中的功能,例如情感分析(在NLP中是最喜欢的子字段)。模型)对模型的准确性没有明显影响,无论工具的大小如何。尽管它使性能有所提高,但是诸如依赖项解析之类的更重要的功能在此类系统中仍具有很大的潜力。

重要的是要提到我们正在研究的语言的特征也应该考虑在内。


1
@alvas本文是其中的研究之一,清楚地表明了我之前所说的内容。问候,
Pedram'3
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.