词干比小种机
nlp
text-analysis
wordnet
5
0

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

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

词干

[in]: having
[out]: hav

脱胶机

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

  • 如果不是这样,那么我们应该如何继续构建可以进行nounifyverbifyadjectifyadverbify强大词adverbify

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

参考资料:
Stack Overflow
收藏
评论
共 3 个回答
高赞 时间 活跃

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

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

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

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


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

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

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

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

收藏
评论

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

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

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

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

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

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

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

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

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

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

选项太多了,这实际上取决于您要如何处理结果。

收藏
评论

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

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

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

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号