给定一个词,我想获得该词在英语中最常见的前驱和后继列表。 我开发了一个代码,可以对任何语料库进行二元分析(我使用过安然电子邮件语料库)并且可以预测最常见的下一个可能的词,但我想要一些其他的解决方案,因为 a) 我想检查我预测的工作/准确性 b) 基于语料库或数据集的解决方案因未见过的词而失败
例如,给定“excellent”这个词,我想得到最有可能出现在excellent之前和之后的词
我的问题是是否存在任何特定的服务或 API?
最佳答案
任何解决这个问题的方法都必然是基于语料库的方法;你只需要一个更大的语料库。我不知道有任何 Web 服务或库可以为您执行此操作,但有一些方法可以获得更大的语料库:
- Google 有 published从网络的英语部分收集的大量 n-grams 语料库。这是available通过语言数据联盟 (LDC),但我相信您必须是 LDC 成员才能获得它。 (许多大学都是。)
- 如果您不是 LDC 成员,请尝试下载 Wikipedia database dump (得到
enwiki
)并训练你的预测器。 - 如果您恰好在使用 Python,请查看随 NLTK 提供的一组不错的语料库(和工具) .
至于看不见的单词问题,有很多方法可以解决它,例如通过将所有出现频率低于某个阈值的单词替换为特殊标记,如 <unseen>
训练前。这将使您的评估变得更加困难。
关于单词预测 - 获得最常见的前任和后继,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8769586/