问题描述:

  使用text9.index()查找词sunset的索引值。你需要将这个词作为一个参数插入到圆括号之间。通过尝试和出错的过程中找到完整的句子中包含这个词的切片。

解题思路:

  用两个集合,一个存放sunset的位置,一个存放标点符号的位置,然后将sunset插入到标点符号之间。

代码:

 import nltk
from nltk.book import * def solution(keyword, text):
# keyword = 'sunset'
pun = [i for i, j in enumerate(text) if j == '.' or j == '?' or j == '!']
sunset = [i for i, j in enumerate(text) if j == keyword]
ans = []
flag = 0
for i in range(len(sunset)):
j = flag
while j < len(pun):
if sunset[i] < pun[j] and pun[j - 1] < sunset[i]:
ans.append([pun[j - 1] + 1, pun[j] + 1])
flag = j + 1
break
j += 1
# print ans
for i in range(len(ans)):
print 'start from %d to end in %d' % (ans[i][0], ans[i][1])
print ' '.join(text[ans[i][0]: ans[i][1]]) if __name__ == "__main__":
solution()
raw_input()

《Python自然语言处理》第一章-练习17的更多相关文章

  1. python全栈第一章

    第一章 Python基础变量定义规则:1.变量名只能是字母数字或者下划线的任意组合2.变量名的第一个字符不能是数字3.关键字不能申明为变量名定义方式:1.驼峰体AgeOfSzp2.下划线隔开Age_o ...

  2. 《零压力学Python》 之 第一章知识点归纳

    第一章(初识Python)知识点归纳 Python是从ABC语言衍生而来的 ABC语言是Guido参与设计的一种教学语言,为非专业编程人员所开发的. Python是荷兰程序员 Guido Van Ro ...

  3. 路飞学城-Python爬虫集训-第一章

    自学Python的时候看了不少老男孩的视频,一直欠老男孩一个会员,现在99元爬虫集训果断参与. 非常喜欢Alex和武Sir的课,技术能力超强,当然讲着讲着就开起车来也说明他俩开车的技术也超级强! 以上 ...

  4. python学习心得第一章

    初始python 1什么是程序 计算机程序是一组执行某种动作的的指令.和那些电路.芯片.显卡.硬盘等不同,它不是计算机本身可以触摸的部分,而是隐藏在背后运行在硬件上面的东西.程序就是一系列告诉没有知觉 ...

  5. Python基础教程-第一章-变量、函数、字符串

    1.1变量 变量基本上就是代表(或者引用)某个值的名字,举例来说,如果希望用x代表3,只需要执行下面的语句即可: >>>x = 3 这样的操作称为赋值(assignment),值3赋 ...

  6. Python开发【第一章】:Python简介和入门

    Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承. ...

  7. Python 学习系列----第一章:基础知识

    1.1 常量-----不能改变它的值 1.2 数 在Python 中数可以分为整数.浮点数和复数. PS:在Python中不用区分'long int'类型.默认的整数类型可以任意长.(译者注:长度应该 ...

  8. 路飞学城Python爬虫课第一章笔记

    前言 原创文章,转载引用务必注明链接.水平有限,如有疏漏,欢迎指正. 之前看阮一峰的博客文章,介绍到路飞学城爬虫课程限免,看了眼内容还不错,就兴冲冲报了名,99块钱满足以下条件会返还并送书送视频. 缴 ...

  9. Python开发【第一章】:简介和入门

    Python简介 Python的创始人为Guido van Rossum.1989年圣诞节期间,在阿姆斯特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,做为ABC 语言的一种继承. ...

随机推荐

  1. 如何获取变量的地址?(C#)

    c#变量分为值类型和引用类型,值类型空间分配在栈上,引用类型空间分配的堆上(引用值是在栈上):那么,如何获取变量的地址? using System; using System.Collections. ...

  2. Android: Fragment (Trying to instantiate a class that is not a Fragment)

    Fragments API: https://developer.android.com/guide/components/fragments.html 第一次使用Fragment遇到一个问题就是: ...

  3. install g++ on windows

    install c++/g++ on windows     install c++/g++ on windows link 原文 1. 算是提示吧: Pick the drive and a fol ...

  4. 从客户端中检测到有潜在危险的 Request.Form或Requst.String的值。

    在ASP中客户端请求服务时会出现"从客户端中检测到有潜在危险的 Request.Form或Requst.QueryString的值.",原因是在web.config配置文件中存在这 ...

  5. U-Boot 内核 (一)

    1.首先安装Vmware,安装Ubuntu 15.04 (安装时记住用户名和密码) 2.终端命令Ctrl+Alt+T 3.进行准备工作 安装工具 sudo apt-get update sudo ap ...

  6. spring切面编程AOP 范例一

    参照网上的spring AOP编程实例进行配置,但是碰到了几个坑.这篇文章重点讲解一下我踩过的两个坑: 1.使用@Service自动装配的时候,基础扫描包配置要正确: 2.xml中切面配置中的exec ...

  7. CSS - DOM 经常使用方法

    offset() 方法返回或设置匹配元素相对于文档的偏移(位置). 包括两个属性值:top,left. position() 方法返回匹配元素相对于父元素的位置(偏移). 包括两个属性值:top,le ...

  8. 去除IOS浏览器下面的工具栏

    在head标签里添加下面的元素 即可 <meta id="viewport" name="viewport" content="width=de ...

  9. 运行错误:应用程序无法启动因为并行配置不正确。the application has failed to start because its side-by-side configuration is incorrect 解决方法

    问题描述: 当电脑同时安装VS2008和VS2008 SP1时,编译出来的Visual C++程序的manifest 文件会默认引用VS2008的MFC版本和CRT版本.如下: <depende ...

  10. c#XML操作类的方法总结

    using System.Xml;using System.Data; namespace DotNet.Utilities{    /// <summary>    /// Xml的操作 ...