《Python自然语言处理》第一章 习题解答 练习17
问题描述:
使用text9.index()查找词sunset的索引值。你需要将这个词作为一个参数插入到圆括号之间。通过尝试和出错的过程中,找到完整的句子中包含这个词的切片。
解题思路:
用两个集合,一个存放sunset的位置,一个存放标点符号的位置,然后将sunset插入到标点符号之间。
代码:
1 import nltk 2 from nltk.book import * 3 4 5 def solution(keyword, text): 6 # keyword = 'sunset' 7 pun = [i for i, j in enumerate(text) if j == '.' or j == '?' or j == '!'] 8 sunset = [i for i, j in enumerate(text) if j == keyword] 9 ans = [] 10 flag = 0 11 for i in range(len(sunset)): 12 j = flag 13 while j < len(pun): 14 if sunset[i] < pun[j] and pun[j - 1] < sunset[i]: 15 ans.append([pun[j - 1] + 1, pun[j] + 1]) 16 flag = j + 1 17 break 18 j += 1 19 # print ans 20 for i in range(len(ans)): 21 print 'start from %d to end in %d' % (ans[i][0], ans[i][1]) 22 print ' '.join(text[ans[i][0]: ans[i][1]]) 23 24 if __name__ == "__main__": 25 solution() 26 raw_input()
浙公网安备 33010602011771号