Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python Enchant 모듈로 맞춤법 검사 및 유사 단어 제안받기

글을 작성하다 보면 단어의 철자를 잘못 입력하는 경우가 자주 발생합니다. 이러한 문제를 해결하기 위해 Python은 Enchant 모듈을 제공합니다. 이 모듈은 단어의 철자를 검사하고, 잘못된 철자에 대한 수정 제안을 제공하는 데 주로 사용됩니다.

PyEnchant는 ispell, aspell, MySpell 등 널리 사용되는 여러 맞춤법 검사 패키지에서도 활용되고 있으며, 다양한 사전(dictionary)과 여러 언어를 매우 유연하게 처리할 수 있다는 장점이 있습니다.

설치 방법

PyEnchant는 pip를 통해 간단히 설치할 수 있습니다. 명령 프롬프트(터미널)에서 아래 명령어를 실행하세요.

pip install pyenchant

기본 사용 예시

모듈을 임포트한 후 suggest() 메서드를 호출하면, 잘못된 철자의 단어에 대해 유사한 단어 목록을 받아볼 수 있습니다.

>>> import enchant
>>> d.suggest("prfomnc")
['prominence', 'performance', 'preform', 'Provence', 'preferment', 'proforma']

가장 유사한 단어 찾기

suggest()가 반환하는 여러 후보 중에서 원래 단어와 가장 유사한 단어를 선택하려면 difflib 모듈을 함께 사용할 수 있습니다. SequenceMatcher의 ratio() 값으로 각 후보와의 유사도를 계산하여 가장 높은 점수를 가진 단어를 출력합니다.

import enchant, difflib
d = enchant.Dict("en_US")
my_word = "prfomnc"
dict, max = {}, 0
a = set(d.suggest(my_word))
for b in a:
   tmp = difflib.SequenceMatcher(None, my_word, b).ratio()
   dict[tmp] = b
   if tmp > max:
      max = tmp
print(dict[max])

실행 결과

performance

Dict 객체 이해하기

Dict 객체는 PyEnchant 모듈에서 가장 핵심적인 객체입니다. 하나의 사전을 나타내며, 단어의 철자 검사와 잘못된 철자에 대한 제안을 얻는 데 사용됩니다.

check() 메서드를 사용하면 특정 단어가 올바른 철자인지 확인할 수 있으며, 결과는 True 또는 False로 반환됩니다.

>>> import enchant
>>> d = enchant.Dict("en_US")
>>> d.check("Hello")
True
>>> d.check("Helo")
False

언어 태그(Language Tag)로 사전 생성

Dict 객체는 검사할 언어를 지정하는 언어 태그를 통해 생성할 수도 있습니다. 태그를 지정하지 않으면 시스템 기본 언어 설정이 적용됩니다.

>>> d = enchant.Dict()
>>> d.tag
'en_AU'

주요 함수 정리

enchant 모듈에는 사전을 다루기 위한 다양한 함수가 제공됩니다.

dict_exists — 주어진 언어에 대한 Dict가 존재하는지 확인합니다.

request_dict — 새로운 Dict 객체를 생성하여 반환합니다.

list_languages — 현재 사용 가능한 Dict가 있는 언어 목록을 표시합니다.

>>> enchant.dict_exists("fake")
False
>>> enchant.dict_exists("en_US")
True
>>> d = enchant.request_dict("en_US")
>>> d
<enchant.Dict object at 0x2aaaabdffa50>
>>> enchant.list_languages()
['en', 'en_CA', 'en_GB', 'en_US', 'eo', 'fr', 'fr_CH', 'fr_FR']