https://uiydlop.tistory.com/20
[Mecab] 사용자 사전 단어 추가 방법
mecab을 사용해서 형태소분석하고 나면, 중요 token들이 인식되지 않을 때가 있다. 기본적으로 mecab은 제공하는 사전 외에, 사용자가 직접 입력해서 단어를 인식할 수 있도록 하는 ‘사용자 사전’
uiydlop.tistory.com
앞서 사용자 사전 추가할 때 우선순위를 설정하지 않아, 원하는 단어가 출력되지 않은 경우들이 있다.
이경우에는 아래와 같이 우선순위(가중치)를 지정해 주면 된다.
일반적으로 사용자 사전에 단어를 등록할 때 우선순위(가중치)를 지정해 주지 않았음.
✅ 단어 추가 양식 : 추가할 단어, 0, 0, 우선순위(가중치), 품사태그, 의미분류, 종성유무(단어의 끝 글자 받침 유무로 T, F 입력), 읽기(발음), 타입, 첫 번째 품사, 마지막 품사, 인덱스 표현
하지만 💢
mecab 사용자 사전에 단어를 등록하였는데도
사전에 입력한 대로 결과가 나오지 않고 단어가 분리되어 나올때가 있음 !
예) ‘한글날’ → ‘한글’, ‘날’
‘오리불고기’ → ‘오리’, ‘불고기’
token = mecab.pos('독거노인 복지')
print(token)
[('독거', 'NNG'), ('노인', 'NNG'), ('복지', 'NNG')]
[('독거', 'NNG'), ('노인', 'NNG')] <- 이렇게 사전에 등록한 '독거노인'이 아닌, '독거', '노인'으로 분리되어 나옴
사전 추가가 실패한 것은 아님 !
✔ mecab 은 각 단어별로 단어비용이란 것이 존재하는데, 이 비용이 낮은 순서대로 우선순위를 부여해서 기준에 따라 출력을 하는 것이다.
따라서 기존 단어에 대한 비용이 사용자 사전으로 등록한 단어보다 낮게 되면
우선순위가 기존단어 > 사전에 등록한 단어가 되어 출력되지 않음.
⇒ 우선순위를 조정해 주면 된다.
⭐ 우선순위 조정 방법
기존 C:\mecab\user-dic\nnp.csv 파일이 아닌 C:\mecab\mecab-ko-dic\user-nnp.csv 파일을 열면
우리가 등록한 단어가 등록되어있는데, 임의의 우선순위 값 2953~3275으로 지정되어 있음.
→ 우선순위를 0으로 바꿔줌 !!
(우선순위 값은 낮을수록 가중치가 올라감 → 즉, 값이 0이면 무조건적인 단어분리 해줌)
다시, Windows PowerShell을 관리자 권한으로 실행한 후 명령어 입력
.\tools\compile-win.ps1
➡ done! 되면 완료
다시 테스트해보면,
pos = mecab.pos('독거노인 복지')
print(pos)
[('독거노인', 'NNP'), ('복지', 'NNG')]
[('독거노인', 'NNP')] <- 적용되어 잘 나오는 것을 확인할 수 있다.
'Study > NLP' 카테고리의 다른 글
[Mecab] 사용자 사전 단어 코드로 추가 방법 (0) | 2025.04.03 |
---|---|
Fasttext 이용해서 분류 모델 만들기 (0) | 2023.05.17 |
Fasttext classification (텍스트 분류) (0) | 2023.05.17 |
[Mecab] 사용자 사전 단어 추가 방법 (0) | 2022.08.27 |
[Mecab] 형태소분석기 설치 - window (0) | 2022.08.19 |
댓글