Skip to main content

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

Customizing Download URL or Path

To overwrite the host part of URL that is used to download LanguageTool-{version}.zip:

$ export LTP_DOWNLOAD_HOST = [alternate URL]

This can be used to downgrade to an older version, for example, or to download from a mirror.

And to choose the specific folder to download the server to:

$ export LTP_PATH = /path/to/save/language/tool

The default download path is ~/.cache/language_tool_python/. The LanguageTool server is about 200 MB, so take that into account when choosing your download folder. (Or, if you you can't spare the disk space, use a remote URL!)

Prerequisites

  • Python 3.3+ <https://www.python.org>
  • lib3to2 <https://bitbucket.org/amentajo/lib3to2>
  • LanguageTool <https://www.languagetool.org> (Java 8.0 or higher)

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

language_tool_python-2.2.0.tar.gz (16.5 kB view details)

Uploaded Source

Built Distribution

language_tool_python-2.2.0-py3-none-any.whl (17.8 kB view details)

Uploaded Python 3

File details

Details for the file language_tool_python-2.2.0.tar.gz.

File metadata

  • Download URL: language_tool_python-2.2.0.tar.gz
  • Upload date:
  • Size: 16.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for language_tool_python-2.2.0.tar.gz
Algorithm Hash digest
SHA256 e0582d53d89ad0ce5fc0b6a0c33b8679899fb9beda9861e3f19d6ab118cf39f5
MD5 2f10e2584bddea7609e2b28ff1449364
BLAKE2b-256 cb5d51a152e603754534117c83b0897399d770a75b4e8f37ae15f5da76f63825

See more details on using hashes here.

File details

Details for the file language_tool_python-2.2.0-py3-none-any.whl.

File metadata

  • Download URL: language_tool_python-2.2.0-py3-none-any.whl
  • Upload date:
  • Size: 17.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.22.0 setuptools/46.1.3 requests-toolbelt/0.9.1 tqdm/4.46.0 CPython/3.7.6

File hashes

Hashes for language_tool_python-2.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0a215d21a936062b7430e08553fb66d4e8ccdd243a8db6c2755a1552cdd6041d
MD5 17620f70a54be4eb3241da99916e6409
BLAKE2b-256 359a871a9997ec7a5444aa7c428f926bab75b5a0a41f2220c3dfe89af628549f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page