Checks grammar using LanguageTool.
Project description
language_tool_python
: a grammar checker for Python 📝
This is a Python wrapper for LanguageTool. LanguageTool is open-source grammar tool, also known as the spellchecker for OpenOffice. This library allows you to make to detect grammar errors and spelling mistakes through a Python script or through a command-line interface.
Local and Remote Servers
By default, language_tool_python
will download a LanguageTool server .jar
and run that in the background to detect grammar errors locally. However, LanguageTool also offers a Public HTTP Proofreading API that is supported as well. Follow the link for rate limiting details. (Running locally won't have the same restrictions.)
Using language_tool_python
locally
Local server is the default setting. To use this, just initialize a LanguageTool object:
import language_tool_python
tool = language_tool_python.LanguageTool('en-US') # use a local server (automatically set up), language English
Using language_tool_python
with the public LanguageTool remote server
There is also a built-in class for querying LanguageTool's public servers. Initialize it like this:
import language_tool_python
tool = language_tool_python.LanguageToolPublicAPI('es') # use the public API, language Spanish
Using language_tool_python
with the another remote server
Finally, you're able to pass in your own remote server as an argument to the LanguageTool
class:
import language_tool_python
tool = language_tool_python.LanguageTool('ca-ES', remote_server='https://language-tool-api.mywebsite.net') # use a remote server API, language Catalan
Example usage
From the interpreter:
import language_tool_python
tool = language_tool_python.LanguageTool('en-US')
text = 'A sentence with a error in the Hitchhiker’s Guide tot he Galaxy'
matches = tool.check(text)
len(matches)
2
Check out some Match
object attributes:
matches[0].ruleId, matches[0].replacements
('EN_A_VS_AN', ['an'])
matches[1].ruleId, matches[1].replacements
('TOT_HE', ['to the'])
Print a Match
object:
print(matches[1])
Line 1, column 51, Rule ID: TOT_HE[1]
Message: Did you mean 'to the'?
Suggestion: to the
...
Automatically apply suggestions to the text:
tool.correct(text)
'A sentence with an error in the Hitchhiker’s Guide to the Galaxy'
From the command line::
$ echo 'This are bad.' > example.txt
$ language_tool_python example.txt
example.txt:1:1: THIS_NNS[3]: Did you mean 'these'?
Installation
To install via pip::
$ pip install --upgrade language_tool_python
To overwrite the host part of URL that is used to download LanguageTool-{version}.zip::
- SET language_tool_python_DOWNLOAD_HOST = [alternate URL]
Prerequisites
Python 3.3+ <https://www.python.org>
_ (or 2.7)lib3to2 <https://bitbucket.org/amentajo/lib3to2>
_ (if installing for Python 2)LanguageTool <https://www.languagetool.org>
_ (Java 6.0+)
The installation process should take care of downloading LanguageTool (it may
take a few minutes). Otherwise, you can manually download
LanguageTool-stable.zip <https://www.languagetool.org/download/LanguageTool-stable.zip>
_ and unzip it
into where the language_tool_python
package resides.
LanguageTool Version
As of April 2020, language_tool_python
was forked from language-check
and no longer supports LanguageTool versions lower than 4.0.
Acknowledgements
This is a fork of https://github.com/myint/language-check/ (which is a fork of https://bitbucket.org/spirit/language_tool) that produces more easily parsable results from the command-line.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for language_tool_python-2.1.1.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5f92137f7c89cb7b64270ce22c2b13ffc6d1ee7dd20b4e8401f0d2abe9dc560 |
|
MD5 | 1dcdd680e4810a242157400810b15a65 |
|
BLAKE2b-256 | bcaab81eac2d21740eb06c367899afa98d7bb1da6df681e141355d1d74e17dd0 |
Hashes for language_tool_python-2.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b6e3224b8f5fbaede5f2eff8f7a240e4f47a42af1575d3ea2ea0ba1fee42466e |
|
MD5 | 50085135f2b2087e754def0a44dd2a1b |
|
BLAKE2b-256 | d40c0af3d00947708a0c81fd077f593166e1256eba0aac9edc93a3d7f5cfd6c8 |