使用NLTK检查英语语法

4
我开始使用NLTK库,我想检查一个英语句子是否正确。
示例:
"He see Bob" - 不正确
"He sees Bob" - 正确
我读了this,但对我来说很难。我需要一个更简单的例子。

你所说的“正确英语”是什么意思?你是只考虑动词的形式,比如在你的例子中纠正第三人称单数吗? - Jared
1个回答

11

语法检查是自然语言处理研究的活跃领域,因此目前还没有100%的答案(甚至可能没有80%的答案)。最简单的方法(或者至少是一个合理的基准)是使用n-gram语言模型(将utterance长度的LM概率进行归一化,并设置一个'grammatical'或'ungrammatical'的启发式阈值)。

你可以使用Google的n-gram语料库,或者在特定领域的数据上训练自己的语言模型。你可以使用NLTK,也可以使用LingPipe、SRI语言建模工具包或OpenGRM。

话虽如此,n-gram模型的表现并不算好。如果它满足了你的需求,那太好了,但如果你想做得更好,你就需要训练一个机器学习分类器。通常,一个语法分类器会使用句法和/或语义处理的特征(例如POS标记、依赖和从属分析等)。你可以看看ETS的Joel Tetrault及其团队,或都柏林的Jennifer Foster及其团队的一些工作。

很抱歉目前没有一个简单明了的答案......


3
八年前这是一个很好的回答。现在最佳的答案是什么? - MattG

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接