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

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

例子:

I love Stackoverflow - Correct
I Stackoverflow love - Incorrect
参考资料:
Stack Overflow
收藏
评论
共 2 个回答
高赞 时间 活跃

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

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

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

收藏
评论

有各种Web服务可提供自动校对和语法检查。有些具有Python库以简化查询。

据我所知,大多数这些工具(肯定是在Deadline和LanguageTool之后)都是基于规则的。将选中的文本与描述常见错误的大量规则进行比较。如果规则匹配,则软件将其称为错误。如果规则不匹配,则该软件不执行任何操作(它无法检测到没有规则的错误)。

截止日期之后

import ATD
ATD.setDefaultKey("your API key")
errors = ATD.checkDocument("Looking too the water. Fixing your writing typoss.")
for error in errors:
 print "%s error for: %s **%s**" % (error.type, error.precontext, error.string)
 print "some suggestions: %s" % (", ".join(error.suggestions),)

预期产量:

grammar error for: Looking **too the**
some suggestions: to the
spelling error for: writing **typoss**
some suggestions: typos

可以在自己的计算机上运行服务器应用程序,建议使用4 GB RAM。

语言工具

https://pypi.python.org/pypi/language-check

>>> import language_check
>>> tool = language_check.LanguageTool('en-US')
>>> text = 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'
>>> matches = tool.check(text)

>>> matches[0].fromy, matches[0].fromx
(0, 16)
>>> matches[0].ruleId, matches[0].replacements
('EN_A_VS_AN', ['an'])
>>> matches[1].fromy, matches[1].fromx
(0, 50)
>>> matches[1].ruleId, matches[1].replacements
('TOT_HE', ['to the'])

>>> print(matches[1])
Line 1, column 51, Rule ID: TOT_HE[1]
Message: Did you mean 'to the'?
Suggestion: to the
...

>>> language_check.correct(text, matches)
'A sentence with an error in the Hitchhiker’s Guide to the Galaxy'

也可以私下运行服务器端。

生姜

此外, 是针对Ginger的hacky(屏幕抓取)库,可以说是目前最完善的免费语法检查选项之一。

微软Word

应该可以编写Microsoft Word脚本并使用其语法检查功能。

更多

Open Office网站上精选的语法检查器列表 。在Patrick的评论中提到。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号