[코엔엘파이(KoNLPy)의 설치 과정]
1) JAVA 1.7 이상의 설치
오라클(Oracle) 사이트(http://www.oracle.com/technetwork/java/javase/downloads/index.html)에서해당 OS에 맞는 JDK(Java Developement Kit)를 설치한다.
2) JAVA_HOME Path 설정
• JDK가 정상적으로 동작하기 위하여 JAVA_HOME 경로(Path)를 설정해야한다.
• [시스템 변수]에 path의 변수값 부분에 JDK가 설치되어있는 경로를 입력한다.
3) JPype1 (>=0.5.7) 설치
‘코엔엘파이’의 경우 JAVA로 작성된 모듈을 로드하여야 하기 때문에 JPype1 0.5.7 이상이 설치되어야 한다.
4) KoNLPy 설치
[용어]
품사 태깅(tag)
형태소의 뜻과 문맥을 고려하여 그것에 마크업을 하는 일입니다.
예를 들어: 가방에 들어가신다 -> 가방/NNG + 에/JKM + 들어가/VV + 시/EPH + ㄴ다/EFN
한국어 품사 태그 비교표 링크: https://docs.google.com/spreadsheets/d/1OGAjUvalBuX-oZvZ_-9tEfYD2gQe7hTGsgUpiiBSXI8/edit#gid=0
말뭉치(corpus)
Hannanum - KAIST 말뭉치를 이용해 생성된 사전
Kkma - 세종 말뭉치를 이용해 생성된 사전 (꼬꼬마)
Mecab - 세종 말뭉치로 만들어진 CSV형태의 사전
Komoran- Java로 쓰여진 오픈소스 한글 형태소 분석기
Twitter(Okt) - 오픈소스 한글 형태소 분석기
[기본 사용 방식]
ex1) 형태소 분석기별 메서드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | from konlpy.tag import Hannanum hannanum = Hannanum() hannanum.analyze #구(Phrase) 분석 hannanum.morphs #형태소 분석 hannanum.nouns #명사 분석 hannanum.pos #형태소 분석 태깅 # 사용예시 print(hannanum.analyze(u'롯데마트의 흑마늘 양념 치킨이 논란이 되고 있다.')) [[[('롯데마트', 'ncn'), ('의', 'jcm')], [('롯데마트의', 'ncn')], [('롯데마트', 'nqq'), ('의', 'jcm')], [('롯데마트의', 'nqq')]], [[('흑마늘', 'ncn')], [('흑마늘', 'nqq')]], [[('양념', 'ncn')]], [[('치킨', 'ncn'), ('이', 'jcc')], [('치킨', 'ncn'), ('이', 'jcs')], [('치킨', 'ncn'), ('이', 'ncn')]], [[('논란', 'ncpa'), ('이', 'jcc')], [('논란', 'ncpa'), ('이', 'jcs')], [('논란', 'ncpa'), ('이', 'ncn')]], [[('되', 'nbu'), ('고', 'jcj')], [('되', 'nbu'), ('이', 'jp'), ('고', 'ecc')], [('되', 'nbu'), ('이', 'jp'), ('고', 'ecs')], [('되', 'nbu'), ('이', 'jp'), ('고', 'ecx')], [('되', 'paa'), ('고', 'ecc')], [('되', 'paa'), ('고', 'ecs')], [('되', 'paa'), ('고', 'ecx')], [('되', 'pvg'), ('고', 'ecc')], [('되', 'pvg'), ('고', 'ecs')], [('되', 'pvg'), ('고', 'ecx')], [('되', 'px'), ('고', 'ecc')], [('되', 'px'), ('고', 'ecs')], [('되', 'px'), ('고', 'ecx')]], [[('있', 'paa'), ('다', 'ef')], [('있', 'px'), ('다', 'ef')]], [[('.', 'sf')], [('.', 'sy')]]] print(hannanum.morphs(u'롯데마트의 흑마늘 양념 치킨이 논란이 되고 있다.')) ['롯데마트', '의', '흑마늘', '양념', '치킨', '이', '논란', '이', '되', '고', '있', '다', '.'] print(hannanum.nouns(u'다람쥐 헌 쳇바퀴에 타고파')) ['다람쥐', '쳇바퀴', '타고파'] print(hannanum.pos(u'웃으면 더 행복합니다!')) [('웃', 'P'), ('으면', 'E'), ('더', 'M'), ('행복', 'N'), ('하', 'X'), ('ㅂ니다', 'E'), ('!', 'S')] | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | from konlpy.tag import Kkma kkma = Kkma() kkma.morphs #형태소 분석 kkma.nouns #명사 분석 kkma.pos #형태소 분석 태깅 kkma.sentences #문장 분석 # 사용예시 print(kkma.morphs(u'공부를 하면할수록 모르는게 많다는 것을 알게 됩니다.')) ['공부', '를', '하', '면', '하', 'ㄹ수록', '모르', '는', '것', '이', '많', '다는', '것', '을', '알', '게', '되', 'ㅂ니다', '.'] print(kkma.nouns(u'대학에서 DB, 통계학, 이산수학 등을 배웠지만...')) ['대학', '통계학', '이산', '이산수학', '수학', '등'] print(kkma.pos(u'다 까먹어버렸네요?ㅋㅋ')) [('다', 'MAG'), ('까먹', 'VV'), ('어', 'ECD'), ('버리', 'VXV'), ('었', 'EPT'), ('네요', 'EFN'), ('?', 'SF'), ('ㅋㅋ', 'EMO')] print(kkma.sentences(u'그래도 계속 공부합니다. 재밌으니까!')) ['그래도 계속 공부합니다.', '재밌으니까!'] | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | from konlpy.tag import Komoran komoran = Komoran(userdic='/tmp/dic.txt') komoran.morphs #형태소 분석 komoran.nouns #명사 분석 komoran.pos #형태소 분석 태깅 # 사용예시 print(komoran.morphs(u'우왕 코모란도 오픈소스가 되었어요')) ['우왕', '코모란', '도', '오픈소스', '가', '되', '었', '어요'] print(komoran.nouns(u'오픈소스에 관심 많은 멋진 개발자님들!')) ['오픈소스', '관심', '개발자'] print(komoran.pos(u'혹시 바람과 함께 사라지다 봤어?')) [('혹시', 'MAG'), ('바람과 함께 사라지다', 'NNP'), ('보', 'VV'), ('았', 'EP'), ('어', 'EF'), ('?', 'SF')] | cs |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | from konlpy.tag import Okt okt = Okt() okt.morphs #형태소 분석 okt.nouns #명사 분석 okt.phrases #구(Phrase) 분석 okt.pos #형태소 분석 태깅 # 사용예시 print(okt.morphs(u'단독입찰보다 복수입찰의 경우')) ['단독', '입찰', '보다', '복수', '입찰', '의', '경우'] print(okt.nouns(u'유일하게 항공기 체계 종합개발 경험을 갖고 있는 KAI는')) ['항공기', '체계', '종합', '개발', '경험'] print(okt.phrases(u'날카로운 분석과 신뢰감 있는 진행으로')) ['날카로운 분석', '날카로운 분석과 신뢰감', '날카로운 분석과 신뢰감 있는 진행', '분석', '신뢰', '진행'] print(okt.pos(u'이것도 되나욬ㅋㅋ')) [('이', 'Determiner'), ('것', 'Noun'), ('도', 'Josa'), ('되나욬', 'Noun'), ('ㅋㅋ', 'KoreanParticle')] | cs |
1 2 3 4 5 6 7 8 9 10 11 | konlpy.utils.concordance(찾을 단어, 전체문장, show=False) #concordance 단어색인(해당 단어가 쓰인 부분(index) 찾음) #show = True 인 경우 단어 색인과 함께 포함된 문장 반환 konlpy.utils.pprint(obj) #유니코드 문자 출력 konlpy.utils.read_json(filename, encoding=u'utf-8') # json 파일 읽음 konlpy.utils.read_txt(filename, encoding=u'utf-8') # txt 파일 읽음 konlpy.utils.csvread(f, encoding=u'utf-8') # csv 파일 읽음 konlpy.utils.csvwrite(data, f) # csv파일로 쓰기 가능 konlpy.utils.hex2char( h ) #16진수 문자를 유니코드 문자로 변환 | cs |
'IT,인터넷 관련 학습 > Python 학습' 카테고리의 다른 글
파이썬(Python) 기본 내장함수 : sorted, lambda, map, filter, set (0) | 2019.02.25 |
---|---|
파이썬(Python) 카운팅 함수 : Collections.Counter (0) | 2019.02.25 |
파이썬(Python) 업무 자동화 관련 : pyautogui (1) | 2019.02.25 |
파이썬(Python) 웹크롤링 관련 : Beautiful Soup (1) | 2019.02.25 |
파이썬(Python) 웹 크롤링 관련 : requests (0) | 2019.02.25 |