Releases: hyunwoongko/kss
Releases · hyunwoongko/kss
v3.3.0
- Fix emoji bug reported in #23.
- Add improvements reported in #24.
- Lazy initialization of Pynori.
- Do not access
multiprocessingmodule whennum_workerswas 0 or 1.
- Add
nonebackend for users that want to fast segmentation without mecab.nonebackend works like kss 2.5.1 (do not use morpheme analyzer)- But if you use
nonebackend, performance will be decreased.
>>> split_sentences(text, backend="pynori")
['부디 만수무강 하옵소서', '천천히 가세용~', '너 밥을 먹는구나', '응 맞아 난 근데 어제 이사했음', '그랬구나 이제 마지막임', '응응']
>>> split_sentences(text, backend="mecab")
['부디 만수무강 하옵소서', '천천히 가세용~', '너 밥을 먹는구나', '응 맞아 난 근데 어제 이사했음', '그랬구나 이제 마지막임', '응응']
>>> split_sentences(text, backend="none") # <--- it is same with kss 2.5.1
['부디 만수무강 하옵소서 천천히 가세용~', '너 밥을 먹는구나 응 맞아 난 근데 어제 이사했음 그랬구나 이제 마지막임 응응'v3.2.0
- change default value of use_quotes_brackets_processing to False
- it is for speed. if you want to use this option, set to True.
- make preprocessing part parallelizable.
- preprocessing is much faster now :-)
v3.1.0
- Fix default rule using morpheme features.
- previous version segmented "없다 거나" -> ["없다", "거나"]
- current version doesn't segment these cases.
- Remove
nonebackend option. - segment error rate
- 3.5%+ -> 1.3% (mecab) / 2.3% (pynori)
v3.0.3
v3.0.2
- Hot fix of logging bugs for longer text.
- Add Memoization with LRU Cache for quotes calibration.
- Quote calibration algorithm has time complexity of O(2^N).
- It is very poor. So I applied memoization with caching.
v3.0.1
1. Use morpheme features
- Unlike 2.xx, unspecified eomi can also be segmented. (default backend is
pynori) - e.g. ~소서(경어), ~세용(신조어), ~했음/임(전성어미) ~구나(미등록 어미), etc.
>>> split_sentences("부디 만수무강 하옵소서 천천히 가세용~ 너 밥을 먹는구나 응 맞아 난 근데 어제 이사했음 그랬구나 이제 마지막임 응응") ['부디 만수무강 하옵소서', '천천히 가세용~', '너 밥을 먹는구나', '응 맞아 난 근데 어제 이사했음', '그랬구나 이제 마지막임', '응응']
- Boost segmentation speed via changing morpheme analyzer backend to
mecab.>>> split_sentences("부디 만수무강 하옵소서 천천히 가세용~ 너 밥을 먹는구나 응 맞아 난 근데 어제 이사했음 그랬구나 이제 마지막임 응응", backend="mecab") ['부디 만수무강 하옵소서', '천천히 가세용~', '너 밥을 먹는구나', '응 맞아 난 근데 어제 이사했음', '그랬구나 이제 마지막임', '응응']
- You can turn off this by changing morpheme analyzer backend to
none.>>> split_sentences("부디 만수무강 하옵소서 천천히 가세용~ 너 밥을 먹는구나 응 맞아 난 근데 어제 이사했음 그랬구나 이제 마지막임 응응", backend="none") ['부디 만수무강 하옵소서 천천히 가세용~ 너 밥을 먹는구나 응 맞아 난 근데 어제 이사했음 그랬구나 이제 마지막임 응응']
2. Support multiprocessing and batch processing
- You can input
Tuple[str]andList[str]as input text for batch processing.>>> split_sentences(["안녕하세요 반가워요", "반갑습니다. 잘 지내시나요?"]) [['안녕하세요', '반가워요'], ['반갑습니다.', '잘 지내시나요?']]
- You can change the number of multiprocess worker. default is
-1(max)>>> split_sentences(["안녕하세요 반가워요", "반갑습니다. 잘 지내시나요?"], num_workers=4) [['안녕하세요', '반가워요'], ['반갑습니다.', '잘 지내시나요?']]