首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python:解析英语句子的方法: Regex?

Python:解析英语句子的方法: Regex?
EN

Stack Overflow用户
提问于 2015-07-21 23:52:18
回答 1查看 335关注 0票数 0

我必须处理一些句子(假设英语格式良好),例如:

“汉普蒂·邓普蒂坐在墙上,也就是汉普蒂坐在墙上!然后,他摔倒了。他为什么摔倒了?”

我对两件事感兴趣:

  1. 单词(因此逗号、分号等被忽略)
  2. (我认为在!?.上),但是还有更复杂的“即”。其中有圆点)

如果语句中有诸如“例如”这样的单词,那么使用泛型正则表达式跳过"\W+“是不可行的。

regex是完成上述两件事的好方法吗?如果是的话,有人能给我指点如何开始创建这样一个正则表达式吗?还是,我应该为找到句子的结尾创建自己的规则吗?

一项规则的例子是:

如果句子以.?! 结尾,那么在之后有一个空格,下一个单词以大写字母开头,那么前一句结束。

如果句子里写着“约翰博士回家了”,这个规则就失败了。(.和r后面的空格R后面的"J“后面的大写错误地表示了一个新句子的开始)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-22 00:03:17

您的示例文本结构不良,因为第一句在语法上是不正确的。

你一定要用regex吗?或者你只是在寻找一个很好的库来解析文本,找出完整的句子?

我建议使用TextBlob来解析文本。下面是一个示例:

代码语言:javascript
复制
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?")]
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31551591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档