티스토리 뷰

▶형태소 분석

형태소 분석은 자연 언어의 문장을 형태소라는 최소 단위로 분할하고 품사를 판별하는 작업입니다.

영어 형태소 분석은 형태소 마다 띄어쓰기를 해서 문장을 구성하는 것이 기본입니다.

그래서 영어 형태소 분석은 쉬운편이며 유용한 라이브러리도 많습니다.

반면 아시아 계열 언어 분석은 많은 노력이 필요합니다.

 

▷한국어 형태소 분석 라이브러리 : koNLpy

!pip install koNKpy

 

▷koNLpy는 kolaw[대한민국 헌법 텍스트 파일]을 제공

from konlpy.corpus import kolaw
kolaw.fileids() # 파일 아이디를 확인

out:::

['constitution.txt']

 

['constitution.txt']을 열어서 law라는 변수에 저장해두겠습니다.

law = kolaw.open('constitution.txt').read()

 

▷koNLpy는 kobill[국회법안 파일]을 제공

from konlpy.corpus import kobill
kobill.fileids() # 파일 아이디 확인

out:::

['1809892.txt',
 '1809898.txt',
 '1809896.txt',
 '1809895.txt',
 '1809894.txt',
 '1809890.txt',
 '1809893.txt',
 '1809897.txt',
 '1809899.txt',
 '1809891.txt']

이 중 하나를 읽어 bill이라는 변수에 저장해두겠습니다.

bill = kobill.open('1809892.txt').read()

 

▷koNLpy의 형태소 분석·태킹 라이브러리

① Hannaum: 한나눔. KAIST Semantic Web Research Center 개발

② kkma: 꼬꼬마. 서울대학교 IDS 연구실 개발

③ Komoran: 코모란. Shinewere에서 개발

④ Mecab: 매카브. 일어용 형태소 분석기를 한국어를 사용할 수 있도록 수정

⑤ Open Korean Text: 오픈 소스 한국어 분석기. 과거 트위터 형태소 분석기

from konlpy.tag import *

hannaum = Hannaum()
kkma = Kkma()
komoran = Komorna()
okt = Okt()

 

▷명사 추출 : nouns

hananum.nouns(law)
kkma.nouns(law)
komoran.nouns('\n'.join([s for s in law.split('\n') if s])) # 코모란은 빈줄이 있으면 에러가 발생
okt.nouns(law)

 

▷모든 품사의 형태소 추출 : morphs

hannaum.morphs(law)
kkma.morphs(law)
komoran.morphs('\n'.join([s for s in law.split('\n') if s]))
okt.morphs(law)

 

▷품사까지 출력 : pos

hannaum.pos(law)
kkma.pos(law)
komoran.pas('\n'.join([s for s in law.split('\n') if s]))
okt.pos(law)

 

 

▷부착되는 품사 태그의 기호와 의미 알아보기 : tagset

okt.tagset

 


여기까지 형태소 분석에 대해 알아보았습니다 :)

728x90
LIST
250x250
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
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
글 보관함