728x90
SMALL
1. 글을 쓰게 된 계기
여러 한국어 형태소 분석기를 사용하면서
맞춤법이 맞지 않을 때 형태소 분석기가 잘 되지 않는 현상을 확인했다.
그래서 이번 프로젝트에서 사용하는 데이터 특성상
★그램 리뷰 데이터들은 오탈자가 많다는 문제가 있어서
맞춤법 검사기를 사용한 뒤에 형태소 분석을 진행하려고 한다.
2. 사용 방법
다음 명령어를 사용해 git 저장소를 clone 해서 저장받고 모듈을 설치해 보도록 하자. (py-hanspell git repo)
git clone https://github.com/ssut/py-hanspell
cd py-hanspell
python setup.py install
이제 다음 받은 모듈을 불러와서 테스트해보자.
spell.checker.check("검사할문장") 을 이용하면 맞춤법을 검사해서 객체를 반환할 수 있다.
from hanspell import spell_checker
text = "외않되"
spelled_text = spell_checker.check(text)
print(spelled_text)
# Checked(result=True, original='외않되', checked='왜 안돼', errors=1,
# words=OrderedDict([('왜', 1), ('안돼', 1)]), time=0.047921180725097656)
- result : 맞춤법 검사 성공 여부 {True / Fasle}
- original : 검사 전 문자
- checked : 검사 후 문장
- errors : 맞춤법 오류 수
- words : 검사 후 문장을 공백으로 split하고 오류 종류를 매핑한 dict
- time : 총 요청 시간
words 값 확인
- key 값은 검사 후 문장, value 값은 검사 전 오류의 종류가 매핑된 int 이다.
- CheckResult를 import 하여 상수값을 확인해 보면 value의 숫자가 어떤 오류를 나타내는지 알 수 있다.
CONST | int | error |
PASSED | 0 | 맞춤법 검사 결과 문제가 없는 단어 또는 구절 |
WRONG_SPELLING | 1 | 맞춤법에 문제가 있는 단어 또는 구절 |
WRONG_SPACING | 2 | 띄어쓰기에 문제가 있는 단어 또는 구절 |
AMBIGUOUS | 3 | 표준어가 의심되는 단어 또는 구절 |
STATISTICAL_CORRECTION | 4 | 통계적 교정에 따른 단어 또는 구절 |
from hanspell.constants import CheckResult
print(CheckResult.PASSED)
print(CheckResult.WRONG_SPELLING)
print(CheckResult.WRONG_SPACING)
print(CheckResult.AMBIGUOUS)
print(CheckResult.STATISTICAL_CORRECTION)
아래와 같이 checked를 뽑아내면 맞춤법검사기를 한 텍스트만 출력할 수 있다.
checked_text = spelled_text.checked
print(checked_text)
# 왜 안돼
3. 모듈 테스트 결과 확인
네이버에서 제공하는 맞춤법검사기 와 코드를 통해 얻은 결과값이 동일한 것을 확인할 수 있다.
4. 한계점
네이버 맞춤법 검사기는 최대 500자까지 검사가 가능합니다.
모듈 또한 특정 글자수가 넘어가면 False로 응답하게 되는데 같은 이유라고 생각이 듭니다.
고려해서 전처리 코드를 작성해야하니 참고하면 좋을 것 같습니다.
728x90
LIST
'Python > Data Engineering' 카테고리의 다른 글
한국어 문장 분리기 (kss - korean sentence splitter) 사용방법 (0) | 2023.02.10 |
---|---|
문자열 중간 다중 공백 제거하는 방법 (0) | 2023.01.28 |
KoNLPy를 활용한 한국어 형태소 분석기 비교 (0) | 2023.01.24 |
Mecab 설치 에러 해결 : Exception: Install MeCab in order to use it: http://konlpy.org/en/latest/install/ (0) | 2023.01.22 |
정규식을 이용한 데이터 전처리(문자만 남기기) (0) | 2023.01.14 |