python 分句小技巧-大神的日常

2016-04-20 10:27:01 +08:00
 sundays
床下睡着一个 IBM 啥奖啥奖的舍友真是有种想舔大腿的冲动,是的,抱大腿已经不能满足我了。
网上 python 中文分句的脚本一般都是 split 或者建一个分割标点 list ,用 for word in words 的循环来搞,然后大神就给我写了一个,核心就是下面这句
for s in re.findall(u'.*?[!|,|,|。|...|?|?|!|;|~|~|。|::]+',line+u'::');
其中
findall 解决了 split 不保留标点的问题;
.*?[]+解决了多标点的分割问题,比如“握日!!!”,但是这个正则并没那么简单,大神说这叫贪婪,我这就拿笔记下来;
line+u'::'解决 用split方法,当文档最后一个不是标点的时候会把最后一句话都删掉的问题;
当然这个脚本还是不能解决书名号里面有标点时候的分割问题,主要我没问,问了估计就是一句“用正则”回我,哎人家是 1 秒两行有效代码,我是 1 天两行有效代码嘤嘤嘤
7638 次点击
所在节点    自然语言处理
2 条回复
simoncos
2016-10-03 12:05:03 +08:00
啊真应该抽时间学学正则了
yucongo
2017-06-17 17:31:03 +08:00
[...] 的用法貌似有少少问题,不像是大神级写出来的正则,那些"|"不是在[...]里用的东西,或者是你抄错了?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/272461

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX