1

こんにちは、私はPythonが初めてで、句読点を削除して文字列内の単語数をカウントするプログラムを作成する必要があります。だから私はこれを持っています:

import sys
import string
def removepun(txt):
    for punct in string.punctuation:
        txt = txt.replace(punct,"")
        print txt
        mywords = {}
        for i in range(len(txt)):
            item = txt[i]
            count = txt.count(item)
            mywords[item] = count
    return sorted(mywords.items(), key = lambda item: item[1], reverse=True)

問題は、私が望んでいた単語ではなく、文字を返し、それらを数えることです。この件で私を助けてもらえますか?

4

2 に答える 2

1

これはどう?

>>> import string
>>> from collections import Counter
>>> s = 'One, two; three! four: five. six@#$,.!'
>>> occurrence = Counter(s.translate(None, string.punctuation).split())
>>> print occurrence
Counter({'six': 1, 'three': 1, 'two': 1, 'four': 1, 'five': 1, 'One': 1})
于 2013-03-07T09:22:38.873 に答える
0

句読点を取り除いた後

numberOfWords = len(txt.split(" "))

単語間に 1 つのスペースを想定

編集:

a={}
for w in txt.split(" "):
   if w in a:
     a[w] += 1
   else:
     a[w] = 1

使い方

  1. a は dict に設定されています
  2. txt の単語が繰り返されます
  3. dict a[w] のエントリがすでにある場合は、それに追加します
  4. エントリがない場合は、エントリを設定し、1 に初期化します

出力はHaidroの優れた回答と同じで、単語のキーと各単語のカウントの値を持つ辞書です

于 2013-03-07T09:00:15.973 に答える