성능 비교 (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))