我使用这生成文本:店输出文本,而不是列出
for i in xrange(100):
sys.stdout.write(alphabet[bisect.bisect(f_list, random.random()) - 1])
我得到的输出将是这样的:
fnhtlr hhub del tn eleo s d nerowepeldhoantah yf tr e saetenwgkoyears
oenooe urbmhonnrniwc iasseb
,我想知道如何存储输出作为TEXT,不是一个列表,所以我可以使用fd.inc(单词)就可以了。我基本上试图用我的随机输出来绘制Zipf定律。
,如果我用这个:
text1 = [alphabet[bisect.bisect(f_list, random.random())] for i in xrange(300)]
我的输出存储成一个列表和FD不进行这项工作,因为它认为每个字符是一个单独的词。
for word in text1:
fd.inc(word)
print fd
<FreqDist: ' ': 1776, 'e': 1008, 'a': 752, 't': 750, 'n': 604, 'i': 586,
'o': 556, 'h': 542, 's': 528, 'r': 478, 'l': 388, 'd': 312, 'u': 242,
'm': 202, 'w': 192, 'g': 172, 'b': 152, 'p': 152, 'f': 150, 'c': 148, 'y': 120,
'k': 90, 'v': 66, 'q': 12, 'z': 10, 'x': 8, 'j': 4>
我希望由空格分隔的每个字母序列被认为是一个词,即输出被视为文本。
谢谢你的帮助!
当你说“文”我相信你的意思是“字符串”: ) – 2011-12-30 09:59:30
什么是'fd.inc'?对于这个问题,'alphabet'和'f_list'是什么? – 2011-12-30 10:07:22
抱歉让我更加确切:字母表是string.lowercase +'',f_list是我在Moby Dick中发现的字母和空白的累积频率。然后我生成一个随机数,它与f_list匹配,这反过来又给了我一个“随机”字母。这是我如何得到我的“随机”文本,从字母和空白的频率在moby鸡巴。 f_list = [0,0.068,0.083,0.103等] – Julia 2011-12-30 10:13:19