bab2min / kiwipiepy

Python API for Kiwi
Other
272 stars 26 forks source link

초반 1회 tokenize에 시간이 오래 걸리는 현상 #171

Closed uoneway closed 4 days ago

uoneway commented 1 month ago

안녕하세요. 항상 잘 쓰고 있습니다.

하나 궁금한게 서버 올리고 나서 항상 첫 .tokenize 콜에 대해서는 시간이 많이(1초 이상) 걸리네요. 그 다음부터는 0.001초 수준이 걸립니다. (당연히 서로 다른 인풋에 대한 결과입니다) 그래서 항상 서버가 기동됐을 때, 임의로 한번 콜을 시키고 있는데요. 혹시 이러한 현상이 발생하는 이유가 무엇인지, 방법이 있을지 궁금합니다.

버전: 1.18.0

kiwi = Kiwi(num_workers=2)
kiwi_tokenizer_options = {"normalize_coda": False, "z_coda": False, "stopwords": stopwords_ko}
kiwi.tokenize("오늘", **kiwi_tokenizer_options) 
bab2min commented 1 month ago

안녕하세요, @uoneway 해당 현상은 Kiwi 클래스가 첫번째 분석(tokenizeanalyze) 메소드가 호출되는 시점에서 실제 분석기를 초기화하는 작업을 수행하도록 설계되었기 때문에 발생합니다. 그래서 tokenize시 빠른 응답을 원하신다면 지금처럼 인스턴스 생성 후 tokenize를 미리 한 번 호출해서 강제로 초기화를 수행해주시면 되겠습니다. 공식 문서에서 초기화와 관련된 설명이 부족한듯하여 해당 내용 보완하도록 할게요~ 감사합니다.

uoneway commented 1 month ago

감사합니다 :)