找到基本单词并估计它们的难度

时间:2013-04-13 14:33:30

标签: algorithm language-agnostic nlp heuristics

我正在寻找以下问题的简单解决方案:

输入句子,如

"Absence makes the heart grow fonder."

制作基本字词列表,然后列出其难度/复杂程度

[["absence", 0.5], ["make", 0.05], ["the", 0.01"], ["grow", 0.1"], ["fond", 0.5]]

我们假设

  • 句子中的所有单词都是有效的英语单词
  • 受欢迎程度是难度/复杂度的可接受度量
  • 基础词可以任何建设性的方式理解(见下文)
  • 难度/复杂程度从0 - 蛋糕到1 - 令人难以置信的
  • 难度偏见是好的,更好的是误以为轻松就是比其他方式
  • 工作简单的解决方案优于完美但复杂的东西
  • [edit] 与用户没有互动
  • [edit] 我们可以处理任何正确的英文输入
  • [edit] 一个单词并不比它的基本形式更难(因为如果我们知道快乐,我们可以创造不幸的 ),除非它创建一个新单词(不太可能 不同)

一般想法:

我考虑使用Google搜索或Wordcount这样的网站来估算可能表明其难度的词汇受欢迎程度。但是,根据输入的单词的形式,两种解决方案都会给出不同的结果。 Google为 fond 提供了316m的结果,但为 fonder 提供了11m的结果,而Wordcount为他们提供了6k和54k的排名。

将单词转换为基本形式并不是必须的,但可以解决歧义问题(并且可以轻松创建字典链接),但这不是一项简单的任务,而且我的意义可以让我发现它是有争议的。显然喜欢应该取代 fonder ,但是调查相信而不是令人难以置信的似乎是一种矫枉过正(< strong> [edit] 这可能不是最好的例子,但有一段时间我们修改基本单词我们创建一个新的喜欢 - &gt; 可能并且 doorkeeper 这样的词不应该被分成两部分。

可以找到关于什么应该考虑基本单词的一些想法here on Wikipedia,但也许更简单的方法来确定它是使用字典。例如,根据dictionary.reference.com unbelievable is a basic wordfonder comes from fond,然后是grow is not the same as growing

解决方案的想法:

在我看来,处理问题的最佳方法是使用字典查找基本单词,应用一些维基百科规则然后使用Wordcount(可能与Google搜索的数量相结合) )估计难度。

尽管如此,可能(可能是更简单,更好)的方式或准备好使用算法。我很感激任何解决这个问题的解决方案,并且很容易付诸实践。也许我只是想重新发明轮子(或许你知道我的方法会很好用,我浪费时间考虑而不是编码我所拥有的)。但是,我宁愿避免实施频率分析算法或准备文本语料库。

2 个答案:

答案 0 :(得分:3)

一些术语:

  • 该词的核心部分称为词干词根。稍后将详细介绍这种区别。您可以将root / stem视为带有单词主要含义的部分,并将出现在字典中。
  • (英文)大多数单词由一个 root 组成(例外:像“挡风玻璃”这样的化合物)/一个词干和零个或多个词缀:来的词缀在根/词干被称为后缀之后,在词根/词干之前的词缀称为前缀。示例:“driver”=“drive”(root / stem)+后缀“-er”; “unkind”=“kind”(root / stem)+“un-”(前缀)。
  • 后缀/前缀(=词缀)可以是 inflectional 派生。例如,在英语中,第三人称单数动词最后有s:“我开车”,但“他开车”。这些协议后缀不会改变单词的类别:“drive”是动词而不管屈折“s”。另一方面,像“-er”这样的后缀是派生:它采用动词(例如“drive”)并将其转换为名词(例如“driver”)
  • 词干是没有任何屈折词缀的单词,而词根是没有任何派生词缀的单词。例如,复数名词“drivers”可分解为“drive”(root)+“er”(派生词缀,制作新的词干“driver”)+“s”(复数)。< / LI>
  • 导出单词“基础”形式的过程称为“词干”。

所以,有了这个术语,对你的任务来说,最有用的事情就是你遇到的每一个形式,即删除所有屈折词缀,并保留派生词,因为派生词缀可以改变词被认为是多么常见。这样考虑一下:如果我用英语告诉你一个新单词,你会always know how to make it plural,第三人称单数,但是,你可能不知道你可以从中得到的其他一些单词)。英语是一种变形乏味的语言,没有太多的屈折后缀需要担心(谷歌搜索非常适合剥离它们,所以也许你可以通过谷歌搜索运行你的单词表格来使用谷歌的词干引擎取出突出显示的结果):

  • 第三个单数口头-s:“我开车”/“他开车了”
  • 名义复数`-s':“一个wug”/“两个wug-s”。请注意,这里有一些不规则的形式,如“孩子”,“牛”,“鹅”等。我想我不会担心这些。
  • 言语过去时形式和分词形式。常规的很简单:过去时有-ed过去时和过去分词(“我走路”/“我走路”/“我走了”),但有很多不规则的(跌倒/跌倒/跌倒,潜水/潜水/潜水?等)。也许列出这些?
  • 言语-ing表格:“walk”/“walking ing”
  • 形容词比较-er和最高级-est。有一些不规则/补充的(“好”/“更好”/“最好”),但这些不应该是一个巨大的问题。

这些是英语中主要的屈折词缀:我可能会忘记一些你可以通过阅读入门语言学书籍而发现的词汇。还有一些临界案例,例如“un-”,这是非常混杂的,我们可能会认为它是屈折的。有关这些类型的更多信息,请参阅Level 1 vs. Level 2 affixation,但我会将这些案例视为您的目的的派生而非阻止它们。

就“评分”各种词汇的常见程度而言,除谷歌之外,您还可以免费获得各种词汇text corpora。链接到的维基百科文章有一些免费语料库的链接,你可以通过谷歌搜索找到更多。从这些语料库中,您可以构建每个词干的频率计数,并使用它来判断表单的常见程度。

答案 1 :(得分:0)

我担心找到“基本”形式的任务没有简单的解决方案。我的基础是我的机器学习教科书,其中语言分析是其中的一部分。你需要一些数据库,你可以从中获得它们。

与此同时,请注意人们在日常用语中使用的单词数量并不大。您可以随时询问用户以前没有见过的世界的基本形式。 (除非这是你的作业,将自动检查)

最后,如果你不关心覆盖所有单词,你可以创建简单的数据库,其中包含不同形式的最常见的单词,然后尝试使用语法规则来处理不常见的单词(这将是一个好的近似,实际上,英语中最常见的单词是不规则的,而不常见的单词是常规的,因为它们的原始形式已经被遗忘了。)

但请注意,我不是专家,我只是想帮忙: - )