如何用Python切分英语句子

qq_27313653 2015-04-11 10:00:46
Mr. Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. Did he mind? Adam Jones Jr. thinks he didn't. In any case, this isn't true... Well, with a probability of .9 it isn't.

用Python写一个函数切分这段话···切分的时候以什么切分可以获得完整的一句话呢?比如用句号的话 它会出现很多不是句子末尾的时候的切分 比如Mr. 这里就会切分 还有1.5这些·····求大神帮助···
...全文
1209 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
比如说,如果有人胡说什么“,号是子句的结束符号”,那么如果它写在一对引号内部(也就是引用别人的话)怎么办呢?总不能用这里的逗号把人家完整的句子给断掉吧?! 诸如此类的规则,只有头脑中有一个基本的词法分析的稍微严谨的概念时才行。如果是一个纯粹毫无质量概念的人给你搞“分析”,谁敢用这种人胡乱写的代码啊。
  • 打赏
  • 举报
回复
.*?(?<!\bMr\b)[\.\?](?=\s+(?:[A-Z]|$))
强行指定Mr.是要分割的,如果Mrs什么也这样的话,可以将(?<!\bMr\b)改为(?<!\bMrs?\b)
  • 打赏
  • 举报
回复
找一本大学2年级教材《编译原理》学习一下如何进行词法分析,如何使用词法分析器。 正则让许多业余编程爱好者感觉很痴迷。但是要想实际搞开发,你还是应该找到最合适的知识体系。
  • 打赏
  • 举报
回复
.*?[\.\?](?=\s+(?:[A-Z]|$))
问号的漏掉了
  • 打赏
  • 举报
回复
.*?\.(?=\s+(?:[A-Z]|$))
第一个Mr. Smith没办法……
  • 打赏
  • 举报
回复
Python里面有正则吗?正则应该一样的吧,你这个要按句号问号什么的切割完整语句,都是正则的事情

110,500

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧