안녕하세요
num_workers는 anlayze(), extract관련 함수들만 적용되는 줄 알았는데
#99 해당 이슈를 보면 kiwi.tokenize(리스트) 와 같이 iterable 객체가 들어오면 자동으로 멀티 스레드로 분산 처리한다고 되어 있는데
tokenize 함수도 num_workers가 적용되는 건가요?
공식문서는 kiwi 초기화 해주는 num_workers 부분 참고 했습니다.
class Kiwi
(
num_workers: Optional[int] = None, model_path: Optional[str] = None, integrate_allomorph: Optional[bool] = None, load_default_dict: Optional[bool] = None, load_typo_dict: Optional[bool] = None, load_multi_dict: Optional[bool] = None, model_type: Optional[str] = None, typos: Union[str, [TypoTransformer](https://bab2min.github.io/kiwipiepy/v0.21.0/kr/#kiwipiepy.TypoTransformer), ForwardRef(None)] = None, typo_cost_threshold: float = 2.5)
Kiwi 클래스는 실제 형태소 분석을 수행하는 kiwipiepy 모듈의 핵심 클래스입니다. 이 클래스는 지연 초기화(Lazy initialization)를 사용합니다. 즉 [Kiwi](https://bab2min.github.io/kiwipiepy/v0.21.0/kr/#kiwipiepy.Kiwi) 인스턴스를 생성할 때에는 최소한의 초기화만 수행하고, 실제 분석을 수행하는 함수(tokenize, analyze 등)를 호출할 때에 초기화가 완료됩니다. 따라서 분석 함수를 최초로 호출할 때에는 초기화에 추가적인 시간이 소요될 수 있습니다. 만약 미리 초기화를 수행하고 싶다면 인스턴스가 생성된 후에 빈 문자열에 대해서 [Kiwi.tokenize()](https://bab2min.github.io/kiwipiepy/v0.21.0/kr/#kiwipiepy.Kiwi.tokenize) 함수를 호출하는 것을 권장합니다.
Parameters
num_workers : int
내부적으로 멀티스레딩에 사용할 스레드 개수. -1으로 설정시 시스템 내 가용한 모든 코어 개수만큼 스레드가 생성됩니다. 0으로 설정 시 단일 스레드에서 동작하며 async 기능을 지원하지 않습니다. 1 이상으로 설정 시 멀티스레드로 동작하며 async 기능을 지원합니다. 멀티스레딩은 extract 계열 함수에서 단어 후보를 탐색할 때와 analyze 함수에서만 사용됩니다.
Changed in version: 0.21.0
이전까지는 num_workers=0일때 자동으로 가용한 코어 개수만큼 스레드가 생성되었으나, v0.21.0부터는 num_workers=0일 경우 단일 스레드로 동작합니다. 이전과 동일하게 자동으로 코어 개수를 선택하려면 num_workers=-1로 설정해야 합니다.
안녕하세요
num_workers는anlayze(),extract관련 함수들만 적용되는 줄 알았는데#99 해당 이슈를 보면
kiwi.tokenize(리스트)와 같이 iterable 객체가 들어오면 자동으로 멀티 스레드로 분산 처리한다고 되어 있는데tokenize 함수도 num_workers가 적용되는 건가요?
공식문서는 kiwi 초기화 해주는 num_workers 부분 참고 했습니다.