由于nltk等都没有实现句子级别的tokenize,或者文本分句。这里使用python正则,快速实现一个,可以把文本分成若干个小句子。
代码如下,如果你想要实现自己个性化的分句,例如只考虑“。!”等的分句,可以调整正则项,“|”代表或的意思。
def sent_tokenize(x):
sents_temp = re.split('(:|:|,|,|。|!|\!|\.|?|\?)', x)
sents = []
for i in range(len(sents_temp)//2):
sent = sents_temp[2*i] + sents_temp[2*i+1]
sents.append(sent)
return sents
x:'这个配置和价位真的很合适,完全够用,而且小黑的质量非常不错。'
sents:['这个配置和价位真的很合适,', '完全够用,', '而且小黑的质量非常不错。']