python 怎么提取一个大文本(3M)中所有带有“县”字的句子。
2个回答
展开全部
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
#读文件你会吧,我就不写了,下面搜索含“的”的句子(一下子没找到含县的段子)
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
追问
我的文件就是一行。用你的程序运行了一下,似乎不行的哇。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
先假设你的文件是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)
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)
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询