def main():
    utils = utilities.Utilities()
    hmm = hiddenMarkovFactory.HiddenMarkovFactory()

    hmmInputFile = sys.argv[1]
    input_t = open(hmmInputFile)
    t = input_t.readline()
    while t:
        hmm.readInput(t)
        t = input_t.readline()

    strBuilder = ''
    firstLine = hmm.reportLineNumberDifference().strip()
    secondLine = hmm.reportInitialProbabilities().strip()
    thirdLine = hmm.reportTransProbabilities().strip()
    fourthLine = hmm.reportEmissProbabilities().strip()

    if firstLine != '':
        print firstLine
    if secondLine != '':
        print secondLine
    if thirdLine != '':
        print thirdLine
    if fourthLine != '':
        print fourthLine
Пример #2
0
    def test_movesToTrans(self):
        # arrange
        hmmInput = """state_num=6
sym_num=11
init_line_num=2
trans_line_num=13
emiss_line_num=11

\init
BOS     1.0 

\\transition""".split("\n")

        hmmFactory = hiddenMarkovFactory.HiddenMarkovFactory()

        # act
        hmmFactory.readInput(hmmInput[0])
        hmmFactory.readInput(hmmInput[1])
        hmmFactory.readInput(hmmInput[2])
        hmmFactory.readInput(hmmInput[3])
        hmmFactory.readInput(hmmInput[4])
        hmmFactory.readInput(hmmInput[5])
        hmmFactory.readInput(hmmInput[6])
        hmmFactory.readInput(hmmInput[7])
        hmmFactory.readInput(hmmInput[8])
        hmmFactory.readInput(hmmInput[9])

        # assert
        self.assertTrue(hmmFactory.currentState == hmmFactory.trans_state,
                        hmmFactory.currentState)
Пример #3
0
    def test_addInitToDictionary(self):
        # arrange
        hmmInput = """state_num=6
sym_num=11
init_line_num=2
trans_line_num=13
emiss_line_num=11

\init
BOS     1.0 """.split("\n")

        hmmFactory = hiddenMarkovFactory.HiddenMarkovFactory()

        # act
        hmmFactory.readInput(hmmInput[0])
        hmmFactory.readInput(hmmInput[1])
        hmmFactory.readInput(hmmInput[2])
        hmmFactory.readInput(hmmInput[3])
        hmmFactory.readInput(hmmInput[4])
        hmmFactory.readInput(hmmInput[5])
        hmmFactory.readInput(hmmInput[6])
        hmmFactory.readInput(hmmInput[7])

        # assert
        self.assertTrue(hmmFactory.current_init_dict["BOS"] == 1.0)
Пример #4
0
    def test_movesToEmissVals1(self):
        # arrange
        hmmInput = """state_num=6
sym_num=11
init_line_num=2
trans_line_num=13
emiss_line_num=11

\init
BOS     0.9 

\\transition
N V 0.4
N D 0.5

\emission
DT  the 0.7
DT  a   0.1
N   a   1.0""".split("\n")

        hmmFactory = hiddenMarkovFactory.HiddenMarkovFactory()

        # act
        hmmFactory.readInput(hmmInput[0])
        hmmFactory.readInput(hmmInput[1])
        hmmFactory.readInput(hmmInput[2])
        hmmFactory.readInput(hmmInput[3])
        hmmFactory.readInput(hmmInput[4])
        hmmFactory.readInput(hmmInput[5])
        hmmFactory.readInput(hmmInput[6])
        hmmFactory.readInput(hmmInput[7])
        hmmFactory.readInput(hmmInput[8])
        hmmFactory.readInput(hmmInput[9])
        hmmFactory.readInput(hmmInput[10])
        hmmFactory.readInput(hmmInput[11])
        hmmFactory.readInput(hmmInput[12])
        hmmFactory.readInput(hmmInput[13])
        hmmFactory.readInput(hmmInput[14])
        hmmFactory.readInput(hmmInput[15])
        hmmFactory.readInput(hmmInput[16])

        # assert
        self.assertTrue(hmmFactory.currentState == hmmFactory.emiss_state,
                        hmmFactory.currentState)
        self.assertTrue(hmmFactory.current_emiss_dict["DT"]["the"] == 0.7)
        self.assertTrue(hmmFactory.current_emiss_dict["DT"]["a"] == 0.1)
        self.assertTrue(hmmFactory.getActualInitLineNum() == 1)
        self.assertTrue(hmmFactory.getActualTransLineNum() == 2)
        self.assertTrue(hmmFactory.getActualEmissLineNum() == 3,
                        str(hmmFactory.getActualEmissLineNum()))
        self.assertTrue(hmmFactory.getActualStateNum() == 1)
        self.assertTrue(hmmFactory.getActualSymNum() == 2)
Пример #5
0
    def test_addFirstSixLinesToDictionary(self):
        # arrange
        hmmInput = """state_num=6
sym_num=11
init_line_num=2
trans_line_num=13
emiss_line_num=11""".split("\n")

        hmmFactory = hiddenMarkovFactory.HiddenMarkovFactory()

        # act
        hmmFactory.readInput(hmmInput[0])
        hmmFactory.readInput(hmmInput[1])
        hmmFactory.readInput(hmmInput[2])
        hmmFactory.readInput(hmmInput[3])
        hmmFactory.readInput(hmmInput[4])

        # assert
        self.assertTrue(hmmFactory.current_state_num == 6,
                        str(hmmFactory.current_state_num))
        self.assertTrue(hmmFactory.current_sym_num == 11)
        self.assertTrue(hmmFactory.current_init_line == 2)
        self.assertTrue(hmmFactory.current_trans_line_num == 13)
        self.assertTrue(hmmFactory.current_emiss_line_num == 11)