V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
sundays
V2EX  ›  自然语言处理

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

  •  
  •   sundays · 2016-04-20 10:27:01 +08:00 · 7602 次点击
    这是一个创建于 2900 天前的主题,其中的信息可能已经有所发展或是发生改变。
    床下睡着一个 IBM 啥奖啥奖的舍友真是有种想舔大腿的冲动,是的,抱大腿已经不能满足我了。
    网上 python 中文分句的脚本一般都是 split 或者建一个分割标点 list ,用 for word in words 的循环来搞,然后大神就给我写了一个,核心就是下面这句
    for s in re.findall(u'.*?[!|,|,|。|...|?|?|!|;|~|~|。|::]+',line+u'::');
    其中
    findall 解决了 split 不保留标点的问题;
    .*?[]+解决了多标点的分割问题,比如“握日!!!”,但是这个正则并没那么简单,大神说这叫贪婪,我这就拿笔记下来;
    line+u'::'解决 用split方法,当文档最后一个不是标点的时候会把最后一句话都删掉的问题;
    当然这个脚本还是不能解决书名号里面有标点时候的分割问题,主要我没问,问了估计就是一句“用正则”回我,哎人家是 1 秒两行有效代码,我是 1 天两行有效代码嘤嘤嘤
    2 条回复    2017-06-17 17:31:03 +08:00
    simoncos
        1
    simoncos  
       2016-10-03 12:05:03 +08:00
    啊真应该抽时间学学正则了
    yucongo
        2
    yucongo  
       2017-06-17 17:31:03 +08:00
    [...] 的用法貌似有少少问题,不像是大神级写出来的正则,那些"|"不是在[...]里用的东西,或者是你抄错了?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   4543 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 09:58 · PVG 17:58 · LAX 02:58 · JFK 05:58
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.