Created
June 11, 2020 00:43
-
-
Save oasic/31435774d7647b98368760a1803a540d to your computer and use it in GitHub Desktop.
Filtering flagged spelling words using a custom dictionary
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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