1

python pyenchant 库(以及 c 附魔)允许检查单词是否拼写正确 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
4

2 回答 2

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)

上述代码的输出将是。

真:房子

真:房子

错误:微软

错误:keiujr

于 2020-02-12T18:04:37.050 回答
0

us_EN 字典包含您可以在字典中找到的单词 - 因此没有专有名词。这意味着您不想在拼写检查时对除句首以外的大写单词进行拼写检查。这并不理想,但应该适用于许多情况。还可以将专有名词字典添加到提供的字典中。

于 2018-10-24T21:22:41.687 回答