返回网站中最常见的单词,使得单词数> 5

时间:2013-07-28 15:54:22

标签: python counter

我是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 ......等。

2 个答案:

答案 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)