计算频繁的字符串+ python3.7

时间:2018-12-13 07:51:03

标签: python-3.x

我想问你一个问题,首先是这里的代码:

from urllib import request
from collections import Counter
from nltk import word_tokenize

URL = 'https://www.gutenberg.org/files/46/46-0.txt'

RESPONSE = request.urlopen(URL)
RAW = RESPONSE.read().decode('utf8')

print('\n')
type(RAW)
print('\n')
len(RAW)

TOKENS = word_tokenize(RAW)

print(type(TOKENS))
X = print(len(TOKENS))
print(TOKENS[:X])

print('\n')

c = Counter(RAW)
print(c.most_common(30))

这是我得到的第一个输出。对此我感到满意。

['\ufeffThe', 'Project', 'Gutenberg', 'EBook', 'of', 'A', 'Christmas', 'Carol', ',', 'by', 'Charles',...]

以下是输出的第二部分,我对此并不满意:

[(' strong text', 28438), ('e', 16556), ('t', 11960), ('o', 10940), ('a', 10092), ('n', 8868), ('i', 8791),...]

这是我的问题:如您所见,我正在计算文本中最频繁出现的字符串,但问题是我想计算单词列表的整个元素:第二个输出的最后一部分应该看起来像像这样:

[('Dickens', 28438), ('Project', 16556), ('Gutenberg', 11960),...]

,而不是您在输出的第二部分中看到的那样。我想在文本中显示30个最常用的单词,而不是列表元素中的部分元素。

您知道我如何解决该问题吗?感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

尝试更改此内容

c = Counter(TOKENS)

在此附上完整的更改代码

from urllib import request
from collections import Counter
from nltk import word_tokenize

URL = 'https://www.gutenberg.org/files/46/46-0.txt'

RESPONSE = request.urlopen(URL)
RAW = RESPONSE.read().decode('utf8')

print('\n')
type(RAW)
print('\n')
len(RAW)

TOKENS = word_tokenize(RAW)

print(type(TOKENS))
X = print(len(TOKENS))
print(TOKENS[:X])

print('\n')

c = Counter(TOKENS)
print(c.most_common(500))