예제 #1
0
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 == "아주 맛있었음...! ^^"
예제 #2
0
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)