首页 > 编程语言 > 详细

《Python自然语言处理》第一章-练习17

时间:2017-04-10 18:13:37      阅读:221      评论:0      收藏:0      [点我收藏+]

问题描述:

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

解题思路:

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

代码:

 1 import nltk
 2 from nltk.book import *
 3 
 4 def solution():
 5     pun = [i for i,j in enumerate(text9) if j==. or j==? or j==!]
 6     sunset = [i for i,j in enumerate(text9) if j==sunset]
 7     ans = []
 8     flag = 0
 9     for i in range(len(sunset)):
10         j = flag
11         while j < len(pun):
12             if sunset[i] < pun[j] and pun[j-1] < sunset[i]:
13                 ans.append([pun[j-1]+1,pun[j]+1])
14                 flag = j + 1
15                 break
16             j += 1
17     print ans        
18     for i in range(len(ans)):
19         print  .join( text9[ ans[i][0] : ans[i][1]] )
20 
21 
22 def ref():
23     for var in [i for i,j in enumerate(text9) if j==sunset]:
24         ori_var=var
25         pun=[!,?,.]
26         start=0
27         stop=0
28         while start==0 or stop==0:
29             if text9[var] in pun and stop==0:
30                 stop=var+1
31                 var=ori_var
32             elif text9[var] not in pun and stop==0:
33                 var+=1
34             elif text9[var] not in pun and stop!=0 and start==0:
35                 var-=1
36             elif text9[var] in pun and stop!=0:
37                 start=var+1
38         print start from %d to end in %d%(start,stop)
39         print  .join(text9[start:stop])
40 
41 
42 if __name__ == "__main__":
43     solution()
44     raw_input()

 

《Python自然语言处理》第一章-练习17

原文:http://www.cnblogs.com/yezuoxian/p/6690191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!