赞
踩
在前面的学习中,我们介绍了如何把文本内容分解成n-gram模型,或者说是n个单词长度的词组。从最基本的功能上说,这个集合可以用来确定这段文字中最常见的单词和短语。另外,还可以提取原文中那些最常用的短语周围的句子,对原文进行看似合理的概括。
下面我们使用美国第九任总统威廉.亨利.哈里森的就职演说来作为数据归纳的文字样本。http://pythonscraping.com/files/inaugurationSpeech.txt.我们简单修改一下前面使用的n-gram模型,就可以获取2-gram序列频率数据,本篇采用另外一个写法:
- from urllib.request import urlopen
- from bs4 import BeautifulSoup
- import re
- import string
- import operator
-
- def cleanInput(input):
- input=re.sub('\n+'," ",input)
- input=re.sub('\[[0-9]*\]',"",input)
- input=re.sub(' +'," ",input)
- input=bytes(input,"UTF-8")
- input=input.decode("ascii","ignore")
- cleanInput=[]
- input=input.split(' ')
- for item in input:
- item=item.strip(string.punctuation)
- if(len(item)>1) or (item.lower()=='a' or item.lower()=='i'):
- cleanInput.append(item)
- return cleanInput
-
- def ngrams(input,n):
- input=cleanInput(input)
- output={}
- for i in range(len(input)-n+1):
- ngramTemp=" ".join(input[i:i+n])
- if ngramTemp not in output:
- output[ngramTemp]=0
- output[ngramTemp]+=1
- return output
-
- content=str(urlopen("http:/

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。