Skip to content

kiwi 초기화시 num_wokers 질문 #200

@Dokkabei97

Description

@Dokkabei97

안녕하세요

num_workersanlayze(), 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로 설정해야 합니다.

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions