【问题标题】:How to quickly check and count English grammar errors in Python? [closed]Python中如何快速检查和统计英语语法错误? [关闭]
【发布时间】:2018-02-20 21:38:26
【问题描述】:

我正在寻找一种快速计算 Python 中的语法错误的方法。例如,我需要一些类似的东西:

matches = grammar_checker.check('You is awesome!')
assert len(matches) == 1

速度比准确性更重要。作为快速检查的权衡,我可以忍受一些误报或误报。我在这里谈论的问题大小仅在几分钟内就达到了 100k 个文档(大约 5-10k 个字符)。

我在 Java 中遇到了 LanguageTool 及其 Python 包装器 language_check。然而,不幸的是,这些对于我的目的来说太慢了。还有其他建议或想法吗?谢谢!

【问题讨论】:

  • 暂停,真的吗? This question 没有那么具体(没有效率限制)并且有超过 20 票。为什么那个不被搁置?

标签: python python-3.x performance nlp


【解决方案1】:

你应该看看How to check whether a sentence is correct (simple grammar check in Python)?

另外,你应该使用“grammar-check 1.3.1”模块并且工作速度很快。

欲了解更多信息,请查看https://pypi.python.org/pypi/grammar-check/1.3.1

import grammar_check
tool = grammar_check.LanguageTool('en-GB')
text = 'This are bad.'
matches = tool.check(text)
len(matches)
>>>1

grammar_check.correct(text, matches)
>>>'These are bad'

【讨论】:

  • 我会调查 NLTK 的东西,谢谢。尽管如此,我不能使用grammar_check,因为它只是language_check 的一个分支。因此,还使用了对我来说太慢的 Java LanguageTool。仍然可能是我可以更好地配置 LanguageTool 服务器,使其在内部使用多处理,但我还没有找到这样做的方法。
【解决方案2】:

您可以试试 Grammarly,它是最受欢迎的拼写检查器之一。 可能,他们可以提供某种 API。 (我不是 Python 框架方面的专家,但如果您需要尽快检查语法,我想您应该尝试一下。

【讨论】:

  • 我不认为有一个用于 Grammarly 的 API,但我觉得这会更慢,因为你必须向他们的服务器发出大量文本的请求。即使在我输入此内容时,Grammarly 也会为该文本框中的每个错误花费几秒钟时间。
  • 现在grammarbot.io有一个语法API,您可以通过pypi包pypi.org/project/grammarbot免费使用
猜你喜欢
  • 2023-03-06
  • 1970-01-01
  • 2017-09-04
  • 2018-09-23
  • 1970-01-01
  • 1970-01-01
  • 2011-01-08
  • 2015-12-07
  • 1970-01-01
相关资源
最近更新 更多