使用Python将文本按标点整句切分

系统 2546 0

利用分词工具包例如jieba可以轻易的将句子切分为不同的单词,但是当你有切分整句的需求时,该怎么解决呢?

  • 将段落按句号切分整句

1.jieba分词可以切分单词

进行中文自然语言处理时,分词是一个常见的操作,例如:

            
              import jieba.posseg as pseg
txt = "【#奔驰女车主不接受4S店道歉# 双方现场交涉言语激烈】4月13日,西安维权奔驰女车主和4S店方见面,双方并未当场和解。4S店相关负责人称,由于出差等原因未及时联系车主,车主则反驳称,可通过电话联系,“没人把你的联系方式给我。”交涉过程中双方言语交锋激烈。#西安奔驰女车主维权# "
words = pseg.cut(txt)
for word, flag in words:
    print('%s %s' % (word, flag))

            
          

利用这段代码对这段文本信息进行分词和词性标注,就有如下结果(部分省略):

            
              【 x
# x
奔驰 v
女 b
车主 n
...

            
          

2.整句切分——按标点切分

或许你不需要单词切分你只需要整句切分,即按标点切分,那么你可以这样做:

            
              import re
txt = "【#奔驰女车主不接受4S店道歉# 双方现场交涉言语激烈】4月13日,西安维权奔驰女车主和4S店方见面,双方并未当场和解。4S店相关负责人称,由于出差等原因未及时联系车主,车主则反驳称,可通过电话联系,“没人把你的联系方式给我。”交涉过程中双方言语交锋激烈。#西安奔驰女车主维权#  "
pattern = r',|\.|/|;|\'|`|\[|\]|<|>|\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|,|。|、|;|‘|’|【|】|·|!| |…|(|)'
result_list = re.split(pattern, txt)
print(result_list)

            
          

这是利用正则表达式进行的整句切分,结果如下,标点符号出自动切句

            
              ['', '', '奔驰女车主不接受4S店道歉', '', '双方现场交涉言语激烈', '4月13日', '西安维权奔驰女车主和4S店方见面', '双方并未当场和解', '4S店相关负责人称', '由于出差等原因未及时联系车主', '车主则反驳称', '可通过电话联系', '“没人把你的联系方式给我', '”交涉过程中双方言语交锋激烈', '', '西安奔驰女车主维权', '', '']

            
          

3.整句切分——按句号切分

或许你需要完整的句子,即保留逗号,按句号切分一整句,这要怎么做呢?你只需要把正则表达式里的逗号去掉即可

            
              import re
txt = "【#奔驰女车主不接受4S店道歉# 双方现场交涉言语激烈】4月13日,西安维权奔驰女车主和4S店方见面,双方并未当场和解。4S店相关负责人称,由于出差等原因未及时联系车主,车主则反驳称,可通过电话联系,“没人把你的联系方式给我。”交涉过程中双方言语交锋激烈。#西安奔驰女车主维权# "
#pattern = r',|\.|/|;|\'|`|\[|\]|<|>|\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|,|。|、|;|‘|’|【|】|·|!| |…|(|)'
pattern = r'\.|/|;|\'|`|\[|\]|<|>|\?|:|"|\{|\}|\~|!|@|#|\$|%|\^|&|\(|\)|-|=|\_|\+|。|、|;|‘|’|【|】|·|!| |…|(|)'
result_list = re.split(pattern, txt)
print(result_list)


            
          

结果如下

            
              ['', '', '奔驰女车主不接受4S店道歉', '', '双方现场交涉言语激烈', '4月13日,西安维权奔驰女车主和4S店方见面,双方并未当场和解', '4S店相关负责人称,由于出差等原因未及时联系车主,车主则反驳称,可通过电话联系,“没人把你的联系方式给我', '”交涉过程中双方言语交锋激烈', '', '西安奔驰女车主维权', '', '']

            
          

get到了吗?


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论