将一段话中的句子分离出来不是一件容易的事。因为句子的开头和结尾并不是很规则,而且句子内部会出现句号。这使得通过单一的正则表达式分离句子是不可能的。有时你能成功,但大多数时候你会出错。这里我们用nltk模块来做。

第一部分:使用正则表达式

import re

paragraph = "Mr. Smith bought cheapsite.com for 1.5 million dollars, i.e. he paid a lot for it. Did he mind? Adam Jones Jr. thinks he didn't. In any case, this isn't true... Well, with a probability of .9 it isn't. I say. What's wrong with you? I am confused by your activity."

#匹配句尾的那个特殊空格,所有后面只能用依据空格用split分割

rule = re.compile(r"(?

result = re.split(rule, paragraph)

for sentence in result:

print sentence

#如果段落中含有双引号就报错。此时我们应该改用三双引号或三单引号,亲测有效。当然,正则表达式也需要变化。下面是利用正则表达式提取文本文件中的句子的代码。

import re

#open the txt file which must be in ANSI format

#TXT file in unicode format doesn't work. I don't why.

input = open('test.txt')

input_result = input.read()

rule = re.compile(r"(?

result = re.split(rule, input_result)

#for sentence in result:

#print sentence

input.close()

#This command will create the ouput.txt file for you.

output = open("ouput.txt","a+")

for sentence in result:

output.write(sentence)

output.write("n")

output.close()

第二部分:提取字符串中的句子

from nltk import tokenize

paragraph = "Good morning Dr. Adams. The patient is waiting for you in room number 3."

print tokenize.sent_tokenize(paragraph)

第三部分:提取文本文件中的句子

import nltk.data

tokenizer = nltk.data.load('tokenizers/punkt/english.pickle')

fp = open("test.txt")

data = fp.read()

print 'n-----n'.join(tokenizer.tokenize(data))

备注:暂时无法成功安装nltk模块,提示缺少某dll文件!

参考资料

转载本文请联系原作者获取授权,同时请注明本文来自吕波科学网博客。

收藏

分享

分享到:

python提取关键字所在句子_科学网-Python提取句子-吕波的博文相关推荐

  1. python提取句子_科学网—Python提取句子 - 吕波的博文

    将一段话中的句子分离出来不是一件容易的事.因为句子的开头和结尾并不是很规则,而且句子内部会出现句号.这使得通过单一的正则表达式分离句子是不可能的.有时你能成功,但大多数时候你会出错.这里我们用nltk ...

  2. python可视化水平双向箭头_科学网—Python matplotlib quiver—画箭头、风场、量场图 - 张伟的博文...

    用像素点坐标画图 箭头关键的一个参数是长度,长度可以通过参数scale来设置,如果你多次使用quiver(),只要保证参数scale一致,那么箭头长度就会与风速 的值成正比,可按照下面我贴出的代码那样 ...

  3. python shell背景颜色改变_科学网—Python Shell Background Color - 李旭的博文

    ArcGIS在安装时就已经默认在本机安装了Python.可是,Python Shell的界面看起来太亮了,对眼睛不太好啊,如图1. 图1 在网上搜索一番,之前也有和我同样问题的帖子,不过,时间有点久了 ...

  4. python爬pdf的曲线_科学网—Python爬PDF - 胡鹏程的博文

    最近用Python爬了两本书,分享下代码,仅作为交流和分享. #下载# import requests #先导入库 import re #正则表达式 import os #创建路径 import ra ...

  5. python写一个笔记软件_科学网—python学习笔记(1)——创建应用 - 高雪峰的博文...

    创建应用的步骤打开命令行 进入manage.py的同级目录 命令行输入:python manage.py startapp blog 添加应用名到sittings.py中的Installed_apps ...

  6. python语法糖的本质_科学网—Python语法糖之:列表解析、集合解析和字典解析 - 陈同的博文...

    Python的列表解析 (list comprehensions)是在Python 2.0以来一直都有的功能,特别简洁.实用.而字典解析虽然曾经在Python 2.3版本中引入过,但后来因为与dict ...

  7. python做社会网络分析系统_科学网—python 社会网络分析工具之igraph - 郗强的博文...

    1.networkx 2.igraph 3.SNAP 2.igraph igraph是免费的复杂网络(graphs)处理包,可以处理百万级节点的网络(取决于机器内存).igraph提供了R和C语言程序 ...

  8. python服务器怎么获取时间_科学网—python 笔记及示例(三)从时间服务器读取时间 - 钱磊的博文...

    时间同步是一个观测站必须考虑的问题.实际的时间同步可以通过GPS进行,不过考虑一下用时间服务器同步也是很有意思的. 附件中的例子最初是 Paul Rubin写的(http://www.nightson ...

  9. python 数据去重_科学网—python学习——根据条件提取数据,并去重 - 李立的博文...

    [Python字符串提取] 摘要:根据要求进行字符串的提取,并去重 导入分析所需的库import pandas as pd 构造数据集 as1 = pd.DataFrame({'a':[1,2,3,4 ...

最新文章

  1. php 验证码 扩展,使用 Captcha 扩展包 为 Laravel 5 应用生成验证码
  2. python自动化干什么-高效工作,拒绝加班,看Python自动化功能到底有多强大
  3. java学习笔记14--多线程编程基础1
  4. while和for循环
  5. np.radians_带有Python示例的math.radians()方法
  6. LeetCode 1497. 检查数组对是否可以被 k 整除
  7. 任意线段集生成多边形_self-attention缺失文本生成||Text Infilling
  8. 疯狂的html css,疯狂Html+CSS+JS 中JS总结
  9. mount的api使用笔记
  10. 积分兑换平台(这是一种剥削么?强烈求拍砖)
  11. java在上海就业_叩丁狼教育上海Java一期就业报道
  12. INSERT 语句与 FOREIGN KEY 约束FK_comment_news冲突。该冲突发生于数据库newssystem,表dbo.news, column 'id'。 语句已终止。
  13. 小功能⭐️U3D异步加载功能
  14. 游戏编程模式之组件模式
  15. Python pip 安装与使用
  16. 传奇如何一台服务器配置多个版本微端更新
  17. 口腔微生物输入量的差异决定了与健康状况相关的两种微生物群肺炎类型
  18. 美团网创始人王兴专访:我现在的事业十分和谐
  19. 2021年中国百强区总体发展概况分析:深圳南山区、广州天河区、深圳福田区等城区高质量发展水平领跑全国[图]
  20. influxdb官网文档翻译

热门文章

  1. 复制浏览器控制台打印的数据
  2. Bootstrap2【上手教程】
  3. 分治算法中的数学——求解递归式(代入法)
  4. [组队学习]查找1------打卡
  5. 微信小程序px和rpx之间的转换
  6. java毕业设计 Vue 房屋出租出售管理系统(含源码+论文)
  7. springboot项目功能之qq登录的实现
  8. node 定时任务管理ctask-simple的使用
  9. 模拟银行自动终端系统
  10. 基于ZigBee的工业废气监测系统