성능 비교 (1회 실행 시간 – 10개 문장에 대해서 1000번 실행 후, 총 실행 시간을 1,000으로 나눔)
– 품질 비교는 해보지 않았지만, 실행 시간만으로는 mecab 분석기가 압도적으로 빠르네요…
품사 부착기 | pos 평균 시간 | morphs, nouns, pos 평균 시간 | 순위 |
kkma | 0.023728 | 0.056048 | 4 |
komoran | 0.001771 | 0.004586 | 2 |
mecab | 0.000083 | 0.000223 | 1 |
0.007674 | 0.011752 | 3 |
# 속도 측정 testList = [ "파일 단위로 단어를 등록하는 경우에는 등록한 이후 pip install customized_konlpy를 다시 실행시켜줘야 반영이 된다.", "한국어 정보처리를 위한 파이썬 패키지입니다.", "자세히 보아야 아름답다. 너도 그렇다", "기존 트위터 분석기 사전에 존재하지 않는 단어를 추가할 때 사용한다.", "자신이 분석하는 domain specific 단어를 추가할 때 유용하다", "단어 선택/필터/치환/결합 목록을 파일에 저장하고 로딩해서 실행하기", "ckonlpy는 기존의 다른 형태소 분석기와 다르게 사용자 맞춤형으로 단어 추가/필터/변형/결합 등 data cleansing을 분석가 구미에 맞게 수정할 수 있는 파이썬 패키지이다.", "더불어, 지속적으로 업데이트가 되고 있고 질문을 올리면 만드신 분이 feedback도 잘 주어서 앞으로도 더 발전해 나갈것으로 보인다.", "실제로 한국어 Text Mining을 하였을 때 ckonlpy를 쓰면서 성능이 많이 좋아졌다.", "ckonlpy 말고도 soyspacing, KR-WordRank 등 한국어 관련 여러가지 라이브러리를 개발하고 계신데, 앞으로 이런것들이 잘 통합되어서 한국어 Text 분석의 디딤돌이 되었으면 좋겠다." ] kkma = Kkma() komoran = Komoran() mecab = Mecab() twitter = Twitter() posTaggerList = [kkma, komoran, mecab, twitter] for i in range(len(posTaggerList)): start_time = time.time() import random for j in range(1000): index = random.randrange(10) posTaggerList[i].morphs(testList[index]) posTaggerList[i].nouns(testList[index]) posTaggerList[i].pos(testList[index]) print("%s: [%f seconds]" % (type(posTaggerList[i]), (time.time() - start_time) / 1000))