Skip to content

Instantly share code, notes, and snippets.

@oasic
Created June 11, 2020 00:43
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save oasic/31435774d7647b98368760a1803a540d to your computer and use it in GitHub Desktop.
Save oasic/31435774d7647b98368760a1803a540d to your computer and use it in GitHub Desktop.
Filtering flagged spelling words using a custom dictionary
import requests
def flag_errors(text, custom_dictionary=None):
r = requests.post("https://grammarbot.p.rapidapi.com/check",
data = {'text': text, 'language': 'en-US'},
headers={
'x-rapidapi-host': "grammarbot.p.rapidapi.com",
'x-rapidapi-key': "your_rapid_api_key_2a1c27dp1af3afjsn67a3e57142d6",
'content-type': "application/x-www-form-urlencoded"
})
j = r.json()
new_text = ''
cursor = 0
for match in j["matches"]:
offset = match["offset"]
length = match["length"]
if cursor > offset:
continue
error_text = text[offset:(offset + length)]
if custom_dictionary and match["rule"]["id"] == "MORFOLOGIK_RULE_EN_US":
if error_text in custom_dictionary:
continue
# build new_text from cursor to current offset
new_text += text[cursor:offset]
# next add **word**
new_text += "**" + error_text + "**"
# update cursor
cursor = offset + length
# if cursor < text length, then add remaining text to new_text
if cursor < len(text):
new_text += text[cursor:]
return new_text
print(flag_errors("We be smart. How doo you spel that wurd?"))
print(flag_errors("We be smart. How doo you spel that wurd?", {"wurd": True, "spel": True}))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment