使用 Enchant 检查拼写时忽略某些单词
Ignore certain words when spell checking with Enchant
我正在使用 Python Enchant 检查某些文件的拼写,并希望它忽略专有名词。它纠正拼写错误的专有名词和不正确 'correcting' 它不知道的专有名词之间的权衡似乎太大了(尽管对此也有任何建议!)
这是我的代码,但目前仍在更正NNP列表中的单词。
chkr = SpellChecker("en_GB")
f = open('test_file.txt', 'r', encoding = 'utf-8')
text = f.read()
tagged = pos_tag(word_tokenize(text))
NNP = [(word) for word, tag in tagged if tag == 'NNP']
chkr.set_text(text)
for err in chkr:
if err is word in NNP:
err.ignore_always()
else:
sug = err.suggest()[0]
err.replace(sug)
corrected = chkr.get_text()
print (NNP)
print (corrected)
在输出中,例如,'Boojum' 被更改为 Boomer,即使它在 NNP 列表中也是如此。
有人能给我指出正确的方向吗?我是 Python 的新手。提前致谢。
我想通了。必须告诉它错误词是 stings,以便它可以将它们与 NNP 列表中的词进行比较。新代码:
chkr = SpellChecker("en_GB")
for file in os.listdir(path):
f = open(file, 'r', encoding = 'utf-8')
text = f.read()
tagged = pos_tag(word_tokenize(text))
NNP = [word for word, tag in tagged if tag == 'NNP']
chkr.set_text(text)
for err in chkr:
if str(err.word) in NNP:
err.ignore_always()
else:
sug = chkr.suggest()
if len(sug) is not 0:
err.replace(sug[0])
corrected = chkr.get_text()
还更正了,如果 Enchant 没有任何建议,它会保留错误。
我正在使用 Python Enchant 检查某些文件的拼写,并希望它忽略专有名词。它纠正拼写错误的专有名词和不正确 'correcting' 它不知道的专有名词之间的权衡似乎太大了(尽管对此也有任何建议!)
这是我的代码,但目前仍在更正NNP列表中的单词。
chkr = SpellChecker("en_GB")
f = open('test_file.txt', 'r', encoding = 'utf-8')
text = f.read()
tagged = pos_tag(word_tokenize(text))
NNP = [(word) for word, tag in tagged if tag == 'NNP']
chkr.set_text(text)
for err in chkr:
if err is word in NNP:
err.ignore_always()
else:
sug = err.suggest()[0]
err.replace(sug)
corrected = chkr.get_text()
print (NNP)
print (corrected)
在输出中,例如,'Boojum' 被更改为 Boomer,即使它在 NNP 列表中也是如此。
有人能给我指出正确的方向吗?我是 Python 的新手。提前致谢。
我想通了。必须告诉它错误词是 stings,以便它可以将它们与 NNP 列表中的词进行比较。新代码:
chkr = SpellChecker("en_GB")
for file in os.listdir(path):
f = open(file, 'r', encoding = 'utf-8')
text = f.read()
tagged = pos_tag(word_tokenize(text))
NNP = [word for word, tag in tagged if tag == 'NNP']
chkr.set_text(text)
for err in chkr:
if str(err.word) in NNP:
err.ignore_always()
else:
sug = chkr.suggest()
if len(sug) is not 0:
err.replace(sug[0])
corrected = chkr.get_text()
还更正了,如果 Enchant 没有任何建议,它会保留错误。