蟒蛇流行云未能正常工作
问题描述:
我构建了流行云但它无法正常工作。 txt文件是;蟒蛇流行云未能正常工作
1 Top Gear
3 Scrubs
3 The Office (US)
5 Heroes
5 How I Met Your Mother
5 Legend of the Seeker
5 Scrubs
.....
在我的流行云中,名称被写入他们的频率时间。例如,搜索者的传说被写入5次,并且它们的大小增加。每个单词应该写一次,大小必须根据流行号码(5)。但每一个字都应该写一次,其大小必须根据其受欢迎程度而定。我该如何解决它?
,也是我的程序应该提供条件:
条款以相同的频率通常显示在相同的颜色例如高尔夫和空手道。通常以不同的颜色显示不同的频率,例如篮球,板球和曲棍球。在每个云的底部输出用于在云中显示值的颜色的频率/计数。
我的代码在这里。
#!/usr/bin/python
import string
def main():
# get the list of tags and their frequency from input file
taglist = getTagListSortedByFrequency('tv.txt')
# find max and min frequency
ranges = getRanges(taglist)
# write out results to output, tags are written out alphabetically
# with size indicating the relative frequency of their occurence
writeCloud(taglist, ranges, 'tv.html')
def getTagListSortedByFrequency(inputfile):
inputf = open(inputfile, 'r')
taglist = []
while (True):
line = inputf.readline()[:-1]
if (line == ''):
break
(count, tag) = line.split(None, 1)
taglist.append((tag, int(count)))
inputf.close()
# sort tagdict by count
taglist.sort(lambda x, y: cmp(x[1], y[1]))
return taglist
def getRanges(taglist):
mincount = taglist[0][1]
maxcount = taglist[len(taglist) - 1][1]
distrib = (maxcount - mincount)/4;
index = mincount
ranges = []
while (index <= maxcount):
range = (index, index + distrib-1)
index = index + distrib
ranges.append(range)
return ranges
def writeCloud(taglist, ranges, outputfile):
outputf = open(outputfile, 'w')
outputf.write("<style type=\"text/css\">\n")
outputf.write(".smallestTag {font-size: xx-small;}\n")
outputf.write(".smallTag {font-size: small;}\n")
outputf.write(".mediumTag {font-size: medium;}\n")
outputf.write(".largeTag {font-size: large;}\n")
outputf.write(".largestTag {font-size: xx-large;}\n")
outputf.write("</style>\n")
rangeStyle = ["smallestTag", "smallTag", "mediumTag", "largeTag", "largestTag"]
# resort the tags alphabetically
taglist.sort(lambda x, y: cmp(x[0], y[0]))
for tag in taglist:
rangeIndex = 0
for range in ranges:
url = "http://www.google.com/search?q=" + tag[0].replace(' ', '+') + "+site%3Asujitpal.blogspot.com"
if (tag[1] >= range[0] and tag[1] <= range[1]):
outputf.write("<span class=\"" + rangeStyle[rangeIndex] + "\"><a href=\"" + url + "\">" + tag[0] + "</a></span> ")
break
rangeIndex = rangeIndex + 1
outputf.close()
if __name__ == "__main__":
main()
如果你的问题是这样紧急,为什么不花时间正确格式化,以便它可读?那么也许有人可能会帮助你。 – 2010-10-23 13:33:28
你也没有说过它做错了什么。 – 2010-10-23 13:47:23
他的代码来自http://sujitpal.blogspot.com/2007/04/building-tag-cloud-with-python.html,如果有人关心它是如何工作的。 – Mark 2010-10-23 13:51:17