我正在寻找以下问题的简单解决方案:
输入句子,如
"Absence makes the heart grow fonder."
制作基本字词列表,然后列出其难度/复杂程度
[["absence", 0.5], ["make", 0.05], ["the", 0.01"], ["grow", 0.1"], ["fond", 0.5]]
我们假设:
一般想法:
我考虑使用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 word而fonder comes from fond,然后是grow is not the same as growing
解决方案的想法:
在我看来,处理问题的最佳方法是使用字典查找基本单词,应用一些维基百科规则然后使用Wordcount(可能与Google搜索的数量相结合) )估计难度。
尽管如此,可能(可能是更简单,更好)的方式或准备好使用算法。我很感激任何解决这个问题的解决方案,并且很容易付诸实践。也许我只是想重新发明轮子(或许你知道我的方法会很好用,我浪费时间考虑而不是编码我所拥有的)。但是,我宁愿避免实施频率分析算法或准备文本语料库。
答案 0 :(得分:3)
一些术语:
s
:“我开车”,但“他开车”。这些协议后缀不会改变单词的类别:“drive”是动词而不管屈折“s”。另一方面,像“-er”这样的后缀是派生:它采用动词(例如“drive”)并将其转换为名词(例如“driver”)所以,有了这个术语,对你的任务来说,最有用的事情就是干你遇到的每一个形式,即删除所有屈折词缀,并保留派生词,因为派生词缀可以改变词被认为是多么常见。这样考虑一下:如果我用英语告诉你一个新单词,你会always know how to make it plural,第三人称单数,但是,你可能不知道你可以从中得到的其他一些单词)。英语是一种变形乏味的语言,没有太多的屈折后缀需要担心(谷歌搜索非常适合剥离它们,所以也许你可以通过谷歌搜索运行你的单词表格来使用谷歌的词干引擎取出突出显示的结果):
-s
:“我开车”/“他开车了”-ed
过去时和过去分词(“我走路”/“我走路”/“我走了”),但有很多不规则的(跌倒/跌倒/跌倒,潜水/潜水/潜水?等)。也许列出这些?-ing
表格:“walk”/“walking ing”-er
和最高级-est
。有一些不规则/补充的(“好”/“更好”/“最好”),但这些不应该是一个巨大的问题。这些是英语中主要的屈折词缀:我可能会忘记一些你可以通过阅读入门语言学书籍而发现的词汇。还有一些临界案例,例如“un-”,这是非常混杂的,我们可能会认为它是屈折的。有关这些类型的更多信息,请参阅Level 1 vs. Level 2 affixation,但我会将这些案例视为您的目的的派生而非阻止它们。
就“评分”各种词汇的常见程度而言,除谷歌之外,您还可以免费获得各种词汇text corpora。链接到的维基百科文章有一些免费语料库的链接,你可以通过谷歌搜索找到更多。从这些语料库中,您可以构建每个词干的频率计数,并使用它来判断表单的常见程度。
答案 1 :(得分:0)
我担心找到“基本”形式的任务没有简单的解决方案。我的基础是我的机器学习教科书,其中语言分析是其中的一部分。你需要一些数据库,你可以从中获得它们。
与此同时,请注意人们在日常用语中使用的单词数量并不大。您可以随时询问用户以前没有见过的世界的基本形式。 (除非这是你的作业,将自动检查)
最后,如果你不关心覆盖所有单词,你可以创建简单的数据库,其中包含不同形式的最常见的单词,然后尝试使用语法规则来处理不常见的单词(这将是一个好的近似,实际上,英语中最常见的单词是不规则的,而不常见的单词是常规的,因为它们的原始形式已经被遗忘了。)
但请注意,我不是专家,我只是想帮忙: - )