在previous question,我问社区如何计算一个句子中每个连续两个单词的频率,我得到了一个很好的答案! 现在我试图从使用软件包pytagcloud的结果中创建一个文字云。如何在没有拥挤的图像的情况下使用pytagcloud构建一个干净的词云 - Python
我确实有一个问题,那就是制作的图片拥挤,而且文字一起吻合。任何想法,如果有一个函数来分隔单词,并使他们可读或如果有任何其他方式来做到这一点在Python中。
谢谢!
我的代码是波纹管。这是我用于测试的文本的link 我试图使用较少数量的文字组合,但这并没有改变图片中文字的人群。
我也添加了一些像“布局”和“大小”和“fontname ='龙虾'和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)
这是输出结果我得到的一个例子:HERE
最佳的结果将是类似的图像之一HERE
嗨vinaut !!!非常感谢你的伟大答案!我试图复制结果,但是我失败了,你的云看起来比我的好1000倍!你可以请你发布你的代码,以便我可以看到我做错了什么?再次,非常感谢你! – mongotop
不用担心,用用于生成图像的代码编辑答案。 – vinaut
非常感谢vinaut! PS - 你的笔记本电脑有一些魔力! :) http://imgur.com/CmoOB7y这是最好的,我可以使用maxsize = 50 25个单词,size =(1300,1100)。我不知道为什么它不会像你的矩形一样使用这些单词,即使矩形=真。 – mongotop