我是python的新手。我有一个简单的程序来查找某个单词在网站中的使用次数。
opener = urllib2.build_opener()
opener.addheaders = [('User-agent', 'Mozilla/5.0')]
url = 'https://en.wikipedia.org/wiki/Wolfgang_Amadeus_Mozart'
ourUrl = opener.open(url).read()
soup = BeautifulSoup(ourUrl)
dem = soup.findAll('p') #find paragraphs
word_counts = Counter()
stopwords = frozenset(('A', 'AN', 'THE'))
for i in dem: # loop for each para
words = re.findall(r'\w+', i.text)
cap_words = [word.upper() for word in words if not word.upper() in stopwords]
word_counts.update(cap_words)
print word_counts
事情是,这个脚本提供了很多只使用一次的单词。如何更新脚本以使包含的单词至少包含5个字数。
另外,如何排列前5个最常用的单词,比如word1,word2,word3 ......等。
答案 0 :(得分:2)
如何更新脚本以便包含的单词至少为5 字数。
您可以按如下方式过滤计数器:filter(lambda x: x[1] > 5, word_counts.iteritems())
filter()
接受一个函数和一个iterable,将函数应用于iterable的每个元素,并且如果函数返回True
,则仅在输出中包含该项。 iteritems()
返回一个生成器,该生成器通过字典生成键值对。
我如何安排前5个最常用的单词,比如word1,word2, word3 ....等。
有一个most_common(n)
计数器功能。见http://docs.python.org/2/library/collections.html
答案 1 :(得分:0)
尝试:
print word_counts.most_common(5)