一尘不染

如何检查句子是否正确(Python中的简单语法检查)?

python

如何检查句子在Python中是否有效?

例子:

I love Stackoverflow - Correct
I Stackoverflow love - Incorrect

阅读 245

收藏
2020-12-20

共1个答案

一尘不染

查看NLTK。他们支持语法,您可以使用语法来分析句子。您可以定义语法,也可以使用提供的语法以及无上下文的解析器。如果句子解析,那么它具有有效的语法;如果没有,那就没有。这些语法可能没有最广泛的覆盖范围(例如,它可能不知道如何处理StackOverflow之类的单词),但是这种方法可以让您明确说明语法中有效或无效的内容。
NLTK本书的第8章介绍了解析,并应解释您需要了解的内容。

一种替代方法是为覆盖面广的解析器(如Stanford解析器C&C)编写python接口。这些是统计分析器,即使他们以前没有看过所有单词或语法结构,也能够理解句子。缺点是有时解析器仍会返回语法错误的句子的解析,因为它将使用统计信息来做出最佳猜测。

因此,这实际上取决于您的目标是什么。如果要非常精确地控制被认为是语法的内容,请对NLTK使用上下文无关的解析器。如果需要鲁棒性和广泛的覆盖范围,请使用统计分析器。

2020-12-20