这是我的代码:
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()
如果您有任何疑问,请告诉我。我已经尝试了很多东西。他们做得不太好。
感谢您的帮助