粗略测试,比 nltk 好用:
- 支持中文
Mr.Zhang
这样的词不会做错误的断句
代码:
#!/usr/bin/env python3
import spacy
nlp = spacy.load('zh_core_web_sm')
txt = """
唐朝历史可以概略分成数个时期,大致上以安史之乱为界。初唐时军事实力强盛,但人口处于中国历史上的低点。李渊建立唐朝,年号武德,是为高祖。其子秦王李世民在唐朝建立中立下赫赫战功,号天策上将,与父亲、兄弟的矛盾逐渐激化。626年,发动玄武门之变,射杀太子李建成、齐王李元吉,促使高祖内禅帝位,是为太宗。
"""
doc = nlp(txt)
for sent in doc.sents:
print(sent)
print('#'*5)
效果:
$ ./demo_zh.py
唐朝历史可以概略分成数个时期,大致上以安史之乱为界。
#####
初唐时军事实力强盛,但人口处于中国历史上的低点。
#####
李渊建立唐朝,年号武德,是为高祖。
#####
其子秦王李世民在唐朝建立中立下赫赫战功,号天策上将,与父亲、兄弟的矛盾逐渐激化。
#####
626年,发动玄武门之变,射杀太子李建成、齐王李元吉,促使高祖内禅帝位,是为太宗。
#####
#####