티스토리 뷰
Ubuntu 18.04 + Python3.6 을 기준으로 작성된 글 입니다.
KoNLPy 가 설치가 되었다는 가정하에 Mecab 설치 방법부터 정리를 해본다.
설치는 konlpy 공식 문서에 나온 방법으로 하면 의존성까지 모두 체크하고 한국어 사전까지 설치를 해주기 때문에 편리하게 설치 가능하다.
sudo apt-get install curl git
bash <(curl -s https://raw.githubusercontent.com/konlpy/konlpy/master/scripts/mecab.sh)
설치하는데 시간이 조금 걸리고, 설치가 끝나면 아래와 같은 메시지를 볼수 있다.
done!
echo To enable dictionary, rewrite /usr/local/etc/mecabrc as \"dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic\"
To enable dictionary, rewrite /usr/local/etc/mecabrc as "dicdir = /usr/local/lib/mecab/dic/mecab-ko-dic"
make[1]: Nothing to be done for `install-exec-am'.
./install-sh -c -d '/usr/local/lib/mecab/dic/mecab-ko-dic'
/usr/bin/install -c -m 644 model.bin matrix.bin char.bin sys.dic unk.dic left-id.def right-id.def rewrite.def pos-id.def dicrc '/usr/local/lib/mecab/dic/mecab-ko-dic'
Install mecab-python
/tmp /tmp/mecab-ko-dic-2.1.1-20180720
Cloning into 'mecab-python-0.996'...
Unpacking objects: 100% (17/17), done.
/tmp/mecab-ko-dic-2.1.1-20180720
사용자 사전을 편집 하기 위해서는 원본 소스파일이 필요하기 때문에 위의 경로를 참고 한다.
tmp 폴더는 언제든 삭제 될수 있으니 자연어 처리 프로젝트 파일 폴더로 옮겨 온다.
mv /tmp/mecab-ko-dic-2.1.1-20180720 .
사용자 사전은 mecab-ko-dic-2.1.1-20180720/user-dic/ 폴더에 위치한다.
user-dic 폴더 내에는
README.md
nnp.csv
person.csv
place.csv
파일이 있으며 README 를 보면 예제가 들어있다.
https://github.com/Pusnow/mecab-ko-dic-msvc/blob/master/user-dic/README.md
git 에서도 확인이 가능하다.
사용자 사전을 추가할때 *.csv 파일을 참고하므로 자신이 원하는 파일을 생성해서 관리를 해도 된다.
필자는 브랜드명 고유명사와 뷰티분야의 일반 명사들, 그리고 인터넷 신조어를 관리하기 위해 파일 3개를 추가했다.
brand.csv, beauty.csv 등
그리고 체계적인 관리를 위해 엑셀로 원본 파일을 관리하고 csv 로 내보내기로 했다.
사용자 사전을 만들기 위해 먼저 참고 해야 할것은 당연히 어떤 양식으로 등록 해야 하는지 참고 해야 할것이다.
그러기 위해 먼저 태그의 종류를 참고하고
양식을 참고한다.
위를 참고하여 아래와 같은 엑셀 문서를 만들었다.
품사 태그 종류 NNP 는 고유명사 NNG 는 일반 명사이다.
그리고 종성 유무 T,F 로 잘 체크하여 문서를 작성하고 csv 로 내보낸다.
그리하여 user-dic 폴더에 넣어주는데 csv 파일이 아래와 같은 결과가 나오면 된다.
3CE,,,,NNP,브랜드,F,3CE,*,*,*,*,*
NYX,,,,NNP,브랜드,F,NYX,*,*,*,*,*
RMK,,,,NNP,브랜드,F,RMK,*,*,*,*,*
fmgt,,,,NNP,브랜드,F,fmgt,*,*,*,*,*
구찌,,,,NNP,브랜드,F,구찌,*,*,*,*,*
글로시에,,,,NNP,브랜드,F,글로시에,*,*,*,*,*
끌레드뽀,,,,NNP,브랜드,F,끌레드뽀,*,*,*,*,*
끌레드뽀 보떼,,,,NNP,브랜드,F,끌레드뽀 보떼,*,*,*,*,*
파일을 넣은 후 다시 컴파일 해주면 끝!
./mecab-ko-dic-2.1.1-20180720/tools/add-userdic.sh
done! 메시지가 보이면 잘 된것이다.
python 코드 실행해서 해보니 너무 잘되고, okt 보다 관리도 편리하고 빠르고 잘된다 .
-----------------------------------
Mecab 품사 태깅 : [('수정', 'NNG'), ('용', 'XSN'), ('으로', 'JKB'), ('들', 'VV'), ('고', 'EC'), ('다니', 'VV'), ('는', 'ETM'), ('쿠션', 'NNG'), ('입니다', 'VCP+EF'), ('.', 'SF'), ('-', 'SY'), ('세미', 'NNG'), ('매트', 'NNG'), ('제형', 'NNG'), ('-', 'SY'), ('얇', 'VA'), ('게', 'EC'), ('밀착', 'NNG'), ('하', 'XSV), ('-', 'SY'), ('심플', 'NNP'), ('한', 'MM'), ('케이스', 'NNG'), ('수정', 'NNG'), ('용', 'XSN'), ('으로', 'JKB'), ('저', 'MM'), ('세', 'MM'), ('가지', 'NNBC'), ('특징', 'NNG'), ('을', 'JKO'), ('선호', 'NNG'), ('하', 'XSV'), ('는데', 'EC'), ('마침', 'MAG'), ('광고', 'NNG'), ('도', 'JX'), ('많이', 'MAG'), ('보이V+EC'), ('구매', 'NNG'), ('했', 'XSV+EP'), ('어요', 'EF'), ('.', 'SF'), ('첨', 'MAG'), ('봤', 'VV+EP'), ('을', 'ETM'), ('때', 'NNG'), ('는', 'JX'), ('케이스', 'NNG'), ('가', 'JKS'), ('살짝', 'MAG'), ('장난감', 'NNG'), ('마냥', 'JKB'), ('유치', 'NNG'), ('해', 'XSV+EC'), ('보이', 'VV'), ('긴', 'ETN+JX'), ('했', ', ('는데', 'EC'), ('그래도', 'VV+EC'), ('계속', 'MAG'), ('보다', 'MAG'), ('보', 'VV'), ('니', 'EC'), ('괜찮', 'VA'), ('은', 'ETM'), ('것', 'NNB'), ('같', 'VA'), ('아요', 'EF'), ('ㅎㅎ', 'IC'), ('작', 'VA'), ('아서', 'EC'), ('들', 'VV'), ('고', 'EC'), ('다니', 'VV'), ('기', 'ETN'), ('도', 'JX'), ('좋', 'VA'), ('', 'VCP'), ('라서', 'EC'), ('파우', 'NNG'), ('치', 'XSV+EC'), ('안', 'NNG'), ('에서', 'JKB'), ('공간', 'NNG'), ('차지', 'NNG'), ('도', 'JX'), ('많이', 'MAG'), ('안', 'MAG'), ('합니다', 'VV+EF'), ('.', 'SF'), ('모공', 'NNG'), ('은', 'JX'), ('신경', 'NNG'), ('써서', 'VV+EC'), ('잘', 'MAG'), ('올리', 'VV'), ('면', 'VX'), ('는', 'ETM'), ('정도', 'NNG'), ('입니다', 'VCP+EF'), ('(', 'SSO'), ('원래', 'NNG'), ('모공', 'NNG'), ('이', 'JKS'), ('크', 'VA'), ('지', 'EC'), ('는', 'JX'), ('않', 'VX'), ('아요', 'EF'), ('.', 'SF'), ('.)', 'SY'), ('주근깨', 'NNG'), ('나', 'JC'), ('잡티', 'NNG'), ('정도', 'NNG'), ('도', 'JX'), ('약하'', 'VV+EF'), ('.', 'SF'), ('한', 'MM'), ('가지', 'NNBC'), ('아쉬운', 'VA+ETM'), ('점', 'NNG'), ('은', 'JX'), ('저', 'NP'), ('는', 'JX'), ('21', 'SN'), ('호', 'NNBC'), ('정도', 'NNG'), ('의', 'JKG'), ('피부', 'NNG'), ('이', 'VCP'), ('고', 'EC'), ('21', 'SN'), ('c', 'SL'), ('컬러', 'NNG'), ('를', 'JKO'), ('샀', ' ('좀', 'MAG'), ('회색빛', 'NNG'), ('이', 'JKS'), ('도', 'VV'), ('는', 'ETM'), ('것', 'NNB'), ('같', 'VA'), ('아요', 'EF'), ('ㅠ', 'UNKNOWN'), ('분명히', 'MAG'), ('핑크', 'NNG'), ('베이스', 'NNG'), ('이', 'VCP'), ('긴', 'ETN+JX'), ('한데', 'VX+EC'), ('좀', 'MAG'), ('부자연', 'XR'), ('스럽', 'XSA'), ('고', 'EC')), ('느낌', 'NNG'), ('이', 'JKS'), ('들', 'VV'), ('어요', 'EF'), ('.', 'SF'), ('.', 'SY'), ('근데', 'MAJ'), ('어차피', 'MAG'), ('수정', 'NNG'), ('용', 'XSN'), ('으로', 'JKB'), ('쓰', 'VV'), ('기', 'ETN'), ('때문', 'NNB'), ('에', 'JKB'), ('감수', 'NNG'), ('하', 'XSV'), ('고', 'EC'), ('들', 'VV'), ('고', 'EC'), ('), ('첫', 'MM'), ('화장', 'NNG'), ('용', 'XSN'), ('으로', 'JKB'), ('쓰', 'VV'), ('고', 'EC'), ('싶', 'VX'), ('지', 'EC'), ('는', 'JX'), ('않', 'VX'), ('은', 'ETM'), ('컬러', 'NNG'), ('감', 'XSN'), ('이', 'VCP'), ('에요', 'EF'), ('ㅎㅎ', 'IC'), ('세미', 'NNG'), ('매트', 'NNG'), ('-', 'SY'), ('매트', 'NNG'), ('이ETN'), ('때문', 'NNB'), ('에', 'JKB'), ('광', 'MAG'), ('나', 'NP'), ('는', 'JX'), ('표현', 'NNG'), ('은', 'JX'), ('아닙니다', 'VCN+EF'), ('.', 'SF'), ('원래', 'MAG'), ('광', 'MAG'), ('나', 'NP'), ('는', 'JX'), ('표현', 'NNG'), ('을', 'JKO'), ('별로', 'MAG'), ('좋', 'VA'), ('아', 'EC'), ('하', 'VV'), ('지', 'EC'), ('개인', 'NNG'), ('적', 'XSN'), ('으로', 'JKB'), ('는', 'JX'), ('괜찮', 'VA'), ('습니다', 'EF'), ('ㅎㅎ', 'IC'), ('아', 'IC'), ('마스크', 'IC'), ('묻', 'VV'), ('어', 'EC'), ('남', 'NNG'), ('정도', 'NNG'), ('.', 'SF'), ('.?', 'SY'), ('거의', 'MAG'), ('안', 'MAG'), ('묻', 'VV'), ('긴', 'ETN+JX'), ('하', 'VX'), ('그래도', 'VV+EC'), ('코', 'NNG'), ('근방', 'NNG'), ('은', 'JX'), ('묻어나', 'VV'), ('는', 'ETM'), ('편', 'NNB'), ('이', 'VCP'), ('에요', 'EF'), ('ㅎㅎ', 'IC')]
-----------------------------------
Mecab 명사 추출 : ['수정', '쿠션', '세미', '매트', '제형', '밀착', '느낌', '심플', '케이스', '가지', '특징', '선호', '광고', '구매', '때', '장난감', '유치', '것', '사각형', '파우', '안', '공간', '차지', '모공', '신경', '정도', '원래', '주근깨', '잡티', '점', '저', '호', '피부', '컬러', '회색빛', '핑크', '베이스', '때문', '감수', '화장', '나', '표현', '개인', '남', '데', '코', '근방', '편']
-----------------------------------
-----------------------------------
Mecab 명사 불용어 + 중복 제거 : ['수정', '쿠션', '세미', '매트', '제형', '밀착', '느낌', '심플', '케이스', '가지', '특징', '선호', '광고', '구매', '장난감', '유치', '사각형', '파우', '공간', '차지', '모공', '신경', '정도', '원래', '주근깨', '잡티', '피부', '컬러', '회색빛', '핑크', '베이스', '때문', '감수', '화장', '표현', '개인', '데', '코', '근방', '편']
-----------------------------------
OKT 명사 불용어 + 중복 제거 : ['수정', '쿠션', '세미', '매트', '형', '밀착', '느낌', '심플', '케이스', '세', '가지', '특징', '선호', '마침', '광고', '보이', '구매', '살짝', '장난감', '마냥', '유치', '계속', '기도', '사각형', '파우치', '공간', '차지', '모공', '신경', '정도', '원래', '주근깨', '잡티', '피부', '컬 '별로', '개인', '마스크', '거의', '코', '근방', '편이']
-----------------------------------
'Develope > Python' 카테고리의 다른 글
KoNLPY - okt 사용자 사전 편집 방법 (7) | 2022.03.14 |
---|---|
Python 개발을 편하게 iPython (0) | 2021.09.17 |
ImportError: cannot import name 'string_int_label_map_pb2' from 'object_detection.protos 에러 발생시 해결 방법 (0) | 2021.09.17 |
Ubuntu20.04 - CUDA, tensorflow 설치하기 (0) | 2021.08.27 |
Detectron - 응용편2 #validation (0) | 2021.08.04 |
- Total
- Today
- Yesterday
- IOT
- 엘라스틱서치
- 아이폰
- 리눅스
- 아두이노
- 라즈베리파이
- 파이썬
- 서버
- swift
- 미세먼지
- OpenCV
- 캠핑
- mysql
- Deeplearning
- ubuntu
- diy
- ios
- Python
- 머신러닝
- 스위프트
- xcode
- 딥러닝
- Android
- 사물인터넷
- object-C
- 강좌
- php
- 인공지능
- 공기청정기
- 우분투
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |