中文分句,乍一看是一个挺简单的工作,一般我们只要找到一个【。!?】这类的典型断句符断开就可以了吗。
对于简单的文本这个做法是已经可行了(比如我看到这篇文章里有个简洁的实现方法:自然语言处理学习3:中文分句re.split(),jieba分词和词频统计FreqDist)
然而当我处理小说文本时,发现了这种思路的漏洞:
- 对于有双引号的句子,分句结果应该延后到双引号结束后,比如:
玄德幼时,与乡中小儿戏于树下,曰:“我为天子,当乘此车盖。”
- 省略号也是常见的句子分隔符,然而它超过了一个字符,用re.split()的方法就略有不便。
所以,这里我提供一个更加精细的解决方法,可以解决上面的问题:
# 版本为python3,如果为python2需要在字符串前面加上u
import re
def cut_sent(para)