python pyenchant库(以及c enchant)允许检查单词是否拼写正确 http://pythonhosted.org/pyenchant/api/enchant.html
import enchant
enchant.Dict("en_US").check("house")
美国词典来自哪里? 它是否也包含专有名词,例如Microsoft或John? 是否可以检查给定的单词是否是名词(但不是专有名词)并拼写正确? 所以,比如:
check("house") -> true
check("houses") -> true
check("Microsoft") -> false
check("keiujr") -> false
答案 0 :(得分:0)
us_EN词典包含您在词典中找到的单词-因此没有专有名词。这意味着您在拼写检查时,除了在句子开头不希望对大写单词进行拼写检查。这不是理想的方法,但是在许多情况下都可以使用。也可以在提供的词典中添加专有名词词典。
答案 1 :(得分:0)
您可以将nltk和pyspellchecker用于此任务。 使用nltk的词性(POS)标记可用于找出词的种类。
您可以在此处详细了解标签-https://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html
Pyspellchecker的未知功能可用于确定给定单词的拼写是否正确。
import nltk
!pip install pyspellchecker
from spellchecker import SpellChecker
spell = SpellChecker()
def check(list_words):
tagged = nltk.pos_tag(list_words)
for i in range(0,len(tagged)):
if(tagged[i][1] not in ['NN','NNS']):
print("False:",tagged[i][0])
else:
if(spell.unknown([tagged[i][0]])):
print("False:",tagged[i][0])
else:
print("True:",tagged[i][0])
list_words =['house','houses','Microsoft','keiujr']
check(list_words)
上面代码的输出将是。
真实:房子
真实:房屋
错误:Microsoft
错误:keiujr