python 怎么提取一个大文本(3M)中所有带有“县”字的句子。

南极嗑烤队
2012-03-23 · TA获得超过264个赞
知道小有建树答主
回答量:206
采纳率:0%
帮助的人:99.1万
展开全部
import re
#读文件你会吧,我就不写了,下面搜索含“的”的句子(一下子没找到含县的段子)
s = "我国吸烟者3.5亿,占世界烟民的35%,受二手烟危害者更是高达7.4亿,这是我们必须警惕的局面。最大的生产国和消费国,我国的烟草行业是否该受到限制?吸烟率只有14%,新加坡是否值得我们学习?"
g = re.split(r"[,。?]", s) #根据你文章中的实际情况添加分割句子的标点
for line in g:
if re.match(r".*的.*", line):
print line

##测试结果:
占世界烟民的35%
这是我们必须警惕的局面
最大的生产国和消费国
我国的烟草行业是否该受到限制

## 把你的区区3M的文件直接用python读到内存中,再按上面的方法分句子查找就OK了
## Over
追问
我的文件就是一行。用你的程序运行了一下,似乎不行的哇。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
ristarcn
2012-03-23 · TA获得超过2203个赞
知道小有建树答主
回答量:1455
采纳率:50%
帮助的人:1264万
展开全部
先假设你的文件是gbk的编码,不是就自己换,对话这种带双引号的没考虑,要有的话,split前全都删除就好了。3M大什么,直接全读出来就好了。
import re
text = open('file.txt', 'rb').read().decode('gbk')
punct = re.compile(r'[。?!:]')
sentences = punct.split(text)
result = [sen for sen in sentences if u'县' in x]
print '\n'.join(result)
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式