Academic Integrity: tutoring, explanations, and feedback — we don’t complete graded work or submit on a student’s behalf.

Problem 2. (Random Text Generator ) Write a client program text_generator.py tha

ID: 3713308 • Letter: P

Question

Problem 2. (Random Text Generator ) Write a client program text_generator.py that takes two command-line integers k and T, reads the input text from standard input (for efficiency reasons, use sys.stdin.read() to read the text) and builds a Markov model of order k from the input text; then, starting with the k-gram consisting of the first k characters of the input text, prints out T characters generated by simulating a trajectory through the corresponding Markov chain, followed by a new line. You may assume that the text has length at least k, and also that T ? k. $

python3 text_generator . py 2 50 < data / input17 . txt gaggcgaggcgagagagaaaagaaaggcgaaggagagaggagaggaggcg

Explanation / Answer

To write Python program for Random Text genarator by using Markov Chain Model.

----------------------------------------------------------------------------------------------------------------------------------------------------------

# A simple Source code of Generator.py

# Import text generator.py as gp

# import defaultdict()

# read text sys.stdin.read()

class DefaultDict( )

    Constructor: (@default_value)->

        @c = { }

    get: (k)->

        if not @c[k]?

            @c[k] = @default_value()

        @c[k]

    set: (k,T)->

        @c[k]=T

    items: ->

      ([k,T] for k,T of @c)

class Counter extends DefaultDict

    constructor: ->

        @c = { }

        @default_value = -> 0

    int: (k, T, count=1)->

        @c[k] = @get(k) + count.

Class MarkovChainModel:

def __init__(self, text, k, T):

def order(self): # Order K of Markov chain model

def sys.stdin.read(text): # Read the text

def freq(self, kgram) # Number of occurance of kgram in text

def freq2(self, kgram, c) # Number of times that charcters c kgram.

def rand(self, kgram) # random character following given kgram.

def gen(self, kgram, T) # generating a string of length T charcaters.

def repalceUnknow(corrupted, K, text):

# create a Markov chain model of order k from given text

# Assume that text has length at least k.

# prints simulating trajectory Markov chain T characters.

        sys.stdin.read(text)

self.k = k              

        self.tran = defaultdict(float)

        self.alph = list(set(list(text)))

        self.kgrams = defaultdict(int)

        n = len(text)

        text += text[:k]

        for i in range(n):

            self.tran[text[i:i+k],text[i+k]] += 1.

            self.kgrams[text[i:i+k]] += 1.

def order(self): # order k of Markov chain model

return self.k

def freq(self, kgram):   # number of occurrences of kgram in text

assert len(kgram) == self.k # (check if kgram is of length k)

return self.kgrams[kgram]

def freq2(self, kgram, c): # number of times that character c follows kgram

assert len(kgram) == self.k # (check if kgram is of length k)

return self.tran[kgram,c]

def rand(self, kgram, T): # random character following given kgram

        assert len(kgram) == self.k # (check if kgram is of length k)

        Z = sum([self.tran[kgram, alph] for alph in self.alph])

        return gp.random.choice(self.alph, 1, p=gp.array([self.tran[kgram, alph] for alph in self.alph])/Z)

    def gen(self, kgram, T): # generate a String of length T characters

        assert len(kgram) == self.k # by simulating a trajectory through the corresponding

        str = '' " # Markov chain model. The newly first k characters.

        for _ in range(T): # generated String should be the argument kgram.

             #print kgram, c # check if kgram is of length k.

             c = self.rand(kgram)[0] # Assume that T is at least k.

             kgram = kgram[1:] + c    

             str += c

return str # Return value of srting.

---------------------------------------------------------------------------------------------------------------------------------------------------------

OUTPUT:

Z = MarkovChainModel ('gagggagaggccgaaggagagaggagaggaggcggagaaa', 2)

Hire Me For All Your Tutoring Needs
Integrity-first tutoring: clear explanations, guidance, and feedback.
Drop an Email at
drjack9650@gmail.com
Chat Now And Get Quote