Machine learning/NLP
[NLP]. 한국어 맞춤법 검사기 사용하기 (feat. hanspell )
Acdong
2021. 10. 27. 17:52
728x90
오픈 소스 링크 : https://github.com/ssut/py-hanspell
from hanspell import spell_checker
위 오픈소스는 네이버 맞춤법 검사기 API의 요청을 보내서 결과를 반환하는 오픈소스이다.
네이버 웹페이지에서 사용한 맞춤법검사기와 결과가 동일하다고 볼 수 잇다.
네이버 맞춤법 검사기의 오류로는 4가지가 있다.
오류 없음 | .PASSED | 맞춤법 검사 결과 문제가 없는 단어 또는 구절 |
맞춤법 오류 | .WRONG_SPELLING | 맞춤법에 문제가 있는 단어 또는 구절 |
띄어쓰기 오류 | .WRONG_SPACING | 띄어쓰기에 문제가 있는 단어 또는 구절 |
표준어 의심 오류 | .AMBIGUOUS | 표준어가 의심되는 단어 또는 구절 |
통계적 교정 오류 | .STATISTICAL_CORRECTION | 통계적 교정에 따른 단어 또는 구절 |
어떤 오류가 발생했는지 확인하는 방법
result = spell_checker.check(input_text)
>>> for key, value in result.words.items():
... print(key, value)
안녕하세요. 2
저는 0
한국인입니다. 2
이 2
문장은 2
한글로 0
작성됐습니다. 1
맞춤법 검사기의 결과를 오류별로 분류해주는 함수 구현
def spell_error_check(input_text):
if len(input_text) >= 500:
return ["max_length" , -1 , -1 ,-1,-1]
spell_cnt = 0
space_cnt = 0
standard_cnt = 0
statis_cnt = 0
try:
check = spell_checker.check(input_text)
mod_result = check.checked
for key , val in check.words.items():
if val==1:
spell_cnt = spell_cnt + 1
elif val==2:
space_cnt = space_cnt + 1
elif val==3:
standard_cnt = standard_cnt + 1
elif val==4:
statis_cnt = statis_cnt + 1
return [mod_result , spell_cnt , space_cnt , standard_cnt ,statis_cnt]
except:
return ["error",-1,-1,-1,-1]
*맞춤법 검사기는 500자 이하의 문장만 지원함.
반응형