在上一个问题中,我向社区询问了如何计算一个句子中每个连续两个单词的频率,我得到了很好的答案!现在我正在尝试使用包pytagcloud从结果中构建一个词云。
我确实遇到的问题是,制作的图片很拥挤,而且文字都在接吻。任何想法是否有分隔单词并使它们可读的功能,或者是否有任何替代方法可以在 python 中做到这一点。
谢谢!
我的代码如下。这是我用于测试的文本链接我尝试使用较少数量的单词组合,但这并没有改变图片中文本的拥挤度。
我还添加了一些功能,例如玩“布局”和“大小”和“fontname ='Lobster'和fontzoom = 1”,但它们都没有给出最佳结果,这是一个干净的词云图片,单词不拥挤。
import operator
import urllib2
from roundup.backends.indexer_common import STOPWORDS
import requests, collections, bs4
Data = "TEXT FROM The link above- TEXT file"
two_words = [' '.join(ws) for ws in zip(Data, Data[1:])]
wordscount = {w:f for w, f in Counter(two_words).most_common() if f > 12}
sorted_wordscount = sorted(wordscount.iteritems(), key=operator.itemgetter(1))
print sorted_wordscount;
from pytagcloud import create_tag_image, create_html_data, make_tags, LAYOUT_HORIZONTAL, LAYOUTS, LAYOUT_MIX, LAYOUT_VERTICAL, LAYOUT_MOST_HORIZONTAL, LAYOUT_MOST_VERTICAL
from pytagcloud.colors import COLOR_SCHEMES
from pytagcloud.lang.counter import get_tag_counts
create_tag_image(make_tags(sorted_wordscount), 'filename.png', size=(1300,1150), background=(0, 0, 0, 255), layout=LAYOUT_MIX, fontname='Molengo', rectangular=True)