我必须处理一些句子(假设英语格式良好),例如:
“汉普蒂·邓普蒂坐在墙上,也就是汉普蒂坐在墙上!然后,他摔倒了。他为什么摔倒了?”
我对两件事感兴趣:
!、?和.上),但是还有更复杂的“即”。其中有圆点)如果语句中有诸如“例如”这样的单词,那么使用泛型正则表达式跳过"\W+“是不可行的。
regex是完成上述两件事的好方法吗?如果是的话,有人能给我指点如何开始创建这样一个正则表达式吗?还是,我应该为找到句子的结尾创建自己的规则吗?
一项规则的例子是:
如果句子以
.或?或!和结尾,那么在和之后有一个空格,下一个单词以大写字母开头,那么前一句结束。
如果句子里写着“约翰博士回家了”,这个规则就失败了。(.和r后面的空格R后面的"J“后面的大写错误地表示了一个新句子的开始)
发布于 2015-07-22 00:03:17
您的示例文本结构不良,因为第一句在语法上是不正确的。
你一定要用regex吗?或者你只是在寻找一个很好的库来解析文本,找出完整的句子?
我建议使用TextBlob来解析文本。下面是一个示例:
from textblob import TextBlob
blob = TextBlob("Humpty dumpty sat on a wall i.e. humpty was sitting on a wall! Then, he fell down. Dr. John (BA in Medical Engineering) helped reconstruct humpty?")
blob.sentences
# [Sentence("Humpty dumpty sat on a wall i.e."),
# Sentence("humpty was sitting on a wall!"),
# Sentence("Then, he fell down."),
# Sentence("Dr. John (BA in Medical Engineering) helped reconstruct humpty?")]https://stackoverflow.com/questions/31551591
复制相似问题