졸업 프로젝트

colab에서 mecab 설치하기

그린푸딩 2021. 5. 28. 09:05
728x90
반응형

1. 설치하기 

위와 같은 코드를 실행시켜 konlpy 의 mecab을 설치한다. 

설치가 완료되면 여러 메세지가 뜨는데 마지막에 다음과 같은 메세지가 뜬다.

설치가 완료되었으면 konlpy를 import 하여 mecab 형태소 분석기를 통하여 형태소 분석을 할 수 있다.

2. Mecab 사용법

우선 konlpy 홈페이지에 가면 한국어 형태소 분석을 지원하는 여러 형태소 분석기와 사용법을 확인할 수 있다. 

https://konlpy.org/en/latest/ 

오픈소스 형태이어서 형태소 분석기가 쓰이는 상황에 따라 형태소 분석기를 비교해서 사용해 볼 수 있다. 

 

API 메뉴에서 Mecab class로 가면 간단한 예제와 함께 mecab으로 할 수 있는 기능들을 확인할 수 있다. 

mecab.morphs(sentence) : 입력받은 sentence를 형태소 단위를 분리하는 기능이다.

mecab.nouns(sentence): 입력받은 sentence에서 명사만을 추출하는 기능이다.

mecab.pos(sentence): 입력받은 sentence에 대하여 형태소 단위로 분위한 것에 대한 형태소 명을 태그해주는 기능이다.

 

mecab에서 태그 되는 형태소 품사의 종류는 다음 링크에서 확인 가능하다.

https://docs.google.com/spreadsheets/d/1-9blXKjtjeKZqsf4NzHeYJCrr49-nXeRF6D80udfcwY/edit#gid=589544265

3. 띄어쓰기, 오타 ,속도 측면 성능 (okt와 비교)

(1)띄어쓰기가 되지 않은 경우

문장1: '어머니가방에들어가신다' 

<mecab>

 

 

 

 

 

 

'가방'이 아닌 가(주격조사)-방(일반명사)로 분리가 잘 되었다. 

<okt>

 

 

 

okt의 경우 '가방'으로 인식하여 정확히 분리가 되지 않는다.

 

문장2: '강아지가발을든다'

<mecab>

 

 

 

'가발'이 아닌 가(주격조사)-발(일반명사)로 분리가 잘 되었다. 

<okt>

 

 

 

'가발'로 인식하여 분리가 잘 되지 않았다. 

 

이외에 '할머니가죽을드신다'와의 문장으로 형태소분석을 하였더니 mecab,okt 모두 가(주격조사)-죽(일반명사)로 인식하는것이 아닌 '가죽'(일반명사)로 인식하였다. mecab의 경우 띄어쓰기가 되지 않는 문장에 대하여 정확도를 완전히 보장할 수는 없지만, 띄어쓰기가 되지 않는 문장들을 전처리 해야할 경우 okt 보다 mecab을 활용하는것이 좋을것으로 예측된다.

 

(2)비교적 기존단어와 유사한 오타일 경우

 

문장1:'청소를햇다'

<mecab>

 

 

 

문장 전체적으로 형태소 구분이 잘 처리되었다.

<okt>

 

 

 

okt 도 완전히 정확하지는 않지만 전체적으로 형태소 구분이 잘 되었다.

 

문장2: '안녕햐세요'

<mecab>

 

 

<okt>

 

 

두 분석기 모두 분석에 어려움이 있다.

 

이외에도 오타가 원래 단어를 알기 힘들만큼의 문장으로 돌려봤더니 분석이 더 어려워졌다. 오타측면에서는 성능이 비슷해보인다.

 

(3)속도 측면

같은 노래가사로 속도차이를 비교해 보았다.

<mecab>

총 449µs가 소요되었다.

<okt>

총 73.9ms 가 소요되었다. 

1000µs= 1ms 이므로 mecab이 처리 속도가 훨씬 더 빠르다. 

전처리 속도가 중요한 상황에 mecab을 활용하는것이 더 유용할것이다.  

 

형태소분석기는 각각 장단점이 있기때문에 쓰이는 상황에서 가장 보장되어야 하는 요소를 위주로 선택하고, 

선택된 형태소 분석기의 단점을 보완하도록 다른 형태소분석기나 기술적 요소가 뒷받침된다면 형태소 분석 성능을 높일수 있을것이다.

728x90
반응형