0

私はPythonの初心者であり、プロジェクトでは、単語の頻度が既に含まれている単語リストコーパスを使用する必要があり、中頻度の単語を取得する必要があります。この特定のコーパスには、各列のヘッダーが含まれていません。私がやろうとしているのは、頻度の高い単語と頻度の低い単語を取得して、それらを取り除くことです。このコードを試してみましたが、失敗しました。

list1 = open('C:\Python27\bengali_wordlist_full.txt', 'r').read()

list2=[]

 >>> counts = Counter(list1)
 >>> print(counts)
 Counter({'\xe0': 2258118, '\xa6': 1788720, '\xa7': 542685, '\n': 292624, '\t': 292624, '\xbe': 243763, '1': 186672, '\xb0': 182384, '\x87': 165988, '\x8d': 164978, '\xbf': 133210, '\xa8': 110359, '\x95': 90861, '\xac': 80290, '\x9f': 75845, '\xa4': 75037, '\xb8': 74818, '\xb2': 72230, '\xae': 70510, '\x81': 63316, '\xaa': 57900, '2': 52053, '\xaf': 48545, '\x9c': 40084, '\x8b': 39166, '\x97': 34319, '\x80': 33692, '\xb9': 28896, '\xb6': 28469, '3': 27054, '-': 26215, '\xad': 21478, '\x9a': 20881, '\xa1': 18973, '\x93': 18762, '4': 18452, '\xbc': 17200, '\x82': 16232, '\x86': 16053, '\xab': 15814, '\xb7': 15650, '5': 13851, '\x85': 13428, '\x8f': 12714, '\x9b': 12221, '\xa3': 11851, '\x96': 11344, '6': 11068, '\x89': 10253, '7': 9279, '\xa5': 9057, '\x83': 8021, '8': 7901, '9': 7046, '\x99': 6980, '0': 6696, '\xd9': 6541, 'e': 6415, 'a': 5440, 'i': 5051, 't': 4295, 'o': 4284, 'r': 4281, 'n': 4192, 's': 4158, '\x98': 4105, '\xd8': 3949, '\xa0': 3916, '\x9e': 3608, '\xa9': 3492, '\xe2': 3092, 'l': 2996, '.': 2947, '\x88': 2875, '\x8c': 2764, 'c': 2736, '\x8e': 2622, '\x9d': 2356, 'd': 2292, 'm': 2256, 'u': 1941, 'p': 1886, '/': 1804, 'h': 1700, 'g': 1596, 'b': 1242, 'y': 1097, 'w': 1055, 'f': 947, '\x84': 868, '\xa2': 850, "'": 713, 'v': 708, '\x90': 690, 'k': 688, '\x8a': 672, ':': 608, '\x92': 517, '\xb1': 483, 'x': 304, 'j': 295, '_': 226, 'z': 207, '\xb3': 193, '\xc3': 166, 'q': 136, '+': 135, '\xb5': 100, '\xc2': 96, '\x94': 86, '@': 81, '\xb4': 76, '\xc5': 63, '\xba': 40, '\xdb': 26, '\xce': 13, '\xcf': 11, '&': 9, '\xda': 8, '\x91': 6, '\xc6': 6, '\xbd': 3, '\xbb': 2, '\xef': 1})

このコードは、降順で頻度を示します。しかし、それらすべてを私に与えるわけではありません。そして、自分が望んでいた方法でそれらを使用する方法がわかりません。この作品はうまくいきませんでした。

>>> for word in list1:
...     if word in list2:
...         list2.index(word)[1] += 1
...     else:
...         list2.append([word,0])
... 

次に、Indo wordnet から類義語を取得するために、Web スクレイプを実行する必要があります。どうすればそれができるのかわかりません。これはバイリンガル プロジェクトであり、私はまだ解読システムを理解していません。したがって、ユニコード。

誰でも助けてもらえますか?

4

1 に答える 1

0

list1リストではなく、文字列です。これを試して:

list1 = open('C:\Python27\bengali_wordlist_full.txt').read().split()

あなた.split()のコードにない Counter は、個別の単語ではなく、そのファイル内のすべての文字をカウントします。

>>> Counter('string string')
Counter({'n': 2, 'i': 2, 't': 2, 'g': 2, 'r': 2, 's': 2, ' ': 1})
>>> Counter('string string'.split())
Counter({'string': 2})
于 2014-04-09T10:25:10.037 に答える