词频+可视化+ python

时间:2019-01-20 12:45:35

标签: python

这是我的代码:

from urllib import request
from collections import Counter
from nltk import word_tokenize
import matplotlib.pyplot as plt
from yellowbrick.text import DispersionPlot
from wordcloud import WordCloud
import numpy as np

URL = 'http://www.gutenberg.org/cache/epub/24681/pg24681.txt'

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

for char in '-.,\n;:?=)(/&%$§"!)12345678':
    RAW = RAW.replace(char, ' ')

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(100))

我的第一个问题:

您能告诉我一种如何获得scatter plot的方法,仅显示文本中单词的出现频率。与n-gram frequency distribution plot相同。它应该只可视化单词频率。可视化本身的外观并不重要。该图不应保存在任何地方。执行代码后,图应立即出现。作为错误,它向我展示了总是与这部分代码相关联:

 C = Counter(TOKENS)
 print(C.most_common(100))

还有第二个问题:

如果我这样创建直方图,停用词将不起作用,为什么?表示输出首先显示“ the”,“ of”,“ a”等。代码如下:

vocab_labels, vocab_values = zip(*Counter(C).items())

sorted_values = sorted(vocab_values)[::-1]
sorted_labels = [x for (y,x) in sorted(zip(vocab_values,vocab_labels))][::-1]
indexes = np.arange(len(sorted_labels[:10]))
width = 1

plt.bar(indexes, sorted_values[:10]) 
plt.xticks(indexes + width * 0.1, sorted_labels[:10])
plt.show()

如果您有任何疑问,请告诉我。我已经尝试了很多东西。他们做得不太好。

感谢您的帮助

0 个答案:

没有答案