import re
import jieba
from string import punctuation
def cut_sent(para):
para = re.sub('([。!?\?])([^”’])', r"\1\n\2", para) # 单字符断句符
para = re.sub('(\.{6})([^”’])', r"\1\n\2", para) # 英文省略号
para = re.sub('(\…{2})([^”’])', r"\1\n\2", para) # 中文省略号
para = re.sub('([。!?\?][”’])([^,。!?\?])', r'\1\n\2', para)
# 如果双引号前有终止符,那么双引号才是句子的终点,把分句符\n放到双引号后,注意前面的几句都小心保留了双引号
para = para.rstrip() # 段尾如果有多余的\n就去掉它
# 很多规则中会考虑分号;,但是这里我把它忽略不计,破折号、英文双引号等同样忽略,需要的再做些简单调整即可。
return para.split("\n")
def txt_deal(filepath,outfilepath):
#将txt分句,保存
f = open(filepath,'r')
a = f.read()
f.close()
temp = cut_sent(a)
temp = [ x for x in temp if len(x) > 30 ]
final = []
for i in temp:
flag = 0
把一篇txt分词
最新推荐文章于 2023-03-14 18:04:27 发布