玩点好玩的Python:使用马尔可夫模型自动生成文章

前言

不想说啥了…看代码

首先导入库

import nltkimport random

主体代码

file = open('Text/Walden.txt', 'r')
walden = file.read()
walden = walden.split()def makePairs(arr):
    pairs = []    for i in range(len(arr)):        if i < len(arr) - 1:
            temp = (arr[i], arr[i + 1])
            pairs.append(temp)    return pairsdef generate(cfd, word='the', num=500):
    for i in range(num):        # 用正确计数所示的单词组成一个数组
        arr = []        for j in cfd[word]:            for k in range(cfd[word][j]):
                arr.append(j)
        print(word, end=' ')        # 从条件分布中随机选择单词
        word = arr[int((len(arr)) * random.random())]
pairs = makePairs(walden)
cfd = nltk.ConditionalFreqDist(pairs)
generate(cfd)

嗯,就这样

    原文作者:python交流
    原文地址: http://blog.itpub.net/69912078/viewspace-2638799/
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞