0

私はpythonが初めてです。Web サイトで単語が使用された回数を調べる簡単なプログラムがあります。

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 つの最も一般的な単語を単語 1、単語 2、単語 3 などに並べ替えるにはどうすればよいでしょうか。

4

2 に答える 2

2

含まれる単語が少なくとも 5 単語カウントになるようにスクリプトを更新するにはどうすればよいですか。

次のようにカウンターをフィルタリングできます。filter(lambda x: x[1] > 5, word_counts.iteritems())

filter()関数と iterable を取り、関数を iterable の各要素に適用し、関数が を返した場合にのみその項目を出力に含めますTrueiteritems()ディクショナリに対してキーと値のペアを生成するジェネレータを返します。

最も一般的な上位 5 つの単語を、word1、word2、word3 などに並べ替えるにはどうすればよいですか?

most_common(n)カウンター機能あり。http://docs.python.org/2/library/collections.htmlを参照してください

于 2013-07-28T16:01:11.010 に答える