【发布时间】:2015-07-21 23:52:18
【问题描述】:
我必须处理一堆句子(假设是格式良好的英语),例如:
“矮胖子坐在墙上,即矮胖子坐在墙上!然后,他摔倒了。他为什么摔倒?”
我对两件事感兴趣:
- 单词(因此忽略逗号、分号等)
- 特定句子的终止位置(我认为是
!、?和.,但“即”还有更复杂的情况,其中包含点)
鉴于该语句包含诸如“即”之类的词,使用通用正则表达式跳过“\W+”并不能立即使用。
正则表达式是完成上述两件事的好方法吗?如果是的话,有人可以给我指点开始创建这样的正则表达式吗? 或者我应该创建自己的规则来查找句子的结尾吗?
规则示例如下:
如果句子以
.或?或!结尾AND 后面有一个空格AND 下一个单词以大写字母开头,那么上一句就结束了。
如果句子中有“John 博士回家了”,则此规则无效。 (. 和 Dr. 中 r 后面的空格后跟大写的“J”错误地表示新句子的开始)
【问题讨论】:
-
如果是“即”和'博士。约翰”,您可以在设置带有结尾的句子之前制作一组“不结尾”来检查它们。您必须亲自挑选它们。