konlpy 품사태거 성능 비교

성능 비교 (1회 실행 시간 – 10개 문장에 대해서 1000번 실행 후, 총 실행 시간을 1,000으로 나눔)
– 품질 비교는 해보지 않았지만, 실행 시간만으로는 mecab 분석기가 압도적으로 빠르네요…

품사 부착기pos 평균 시간morphs, nouns, pos 평균 시간순위
kkma0.0237280.0560484
komoran0.0017710.0045862
mecab0.0000830.0002231
twitter0.0076740.0117523
# 속도 측정
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))

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다