def test_split_into_sents(): kiwi = Kiwi() text = "다녀온 후기\n\n<강남 토끼정에 다녀왔습니다.> 음식도 맛있었어요 다만 역시 토끼정 본점 답죠?ㅎㅅㅎ 그 맛이 크으.. 아주 맛있었음...! ^^" sents = kiwi.split_into_sents(text, normalize_coda=True) assert len(sents) == 6 assert sents[0].text == "다녀온 후기" assert sents[1].text == "<강남 토끼정에 다녀왔습니다.>" assert sents[2].text == "음식도 맛있었어요" assert sents[3].text == "다만 역시 토끼정 본점 답죠?ㅎㅅㅎ" assert sents[4].text == "그 맛이 크으.." assert sents[5].text == "아주 맛있었음...! ^^"
def baseline_splitter(text): import re sents = re.split(r'(?<=[.!?])\s', text) return sents if __name__ == '__main__': import argparse parser = argparse.ArgumentParser() parser.add_argument('datasets', nargs='+') parser.add_argument('--write_result') parser.add_argument('--write_err') args = parser.parse_args() print('======== Baseline Splitter ========') for dataset in args.datasets: run_evaluate(dataset, baseline_splitter) print('======== Kiwi.split_into_sents ========') from kiwipiepy import Kiwi kiwi = Kiwi() kiwi.tokenize("foo-bar") # warm-up for dataset in args.datasets: run_evaluate( dataset, lambda text: [ sent.text for sent in kiwi.split_into_sents(text, normalize_coda=True) ], args.write_result, args.write_err)