#!F://python
# page coding=utf-8
#状态转移矩阵:状态之间的转移概率 B(混淆矩阵):状态为y的情况下,输出为x的概率 Pi:初始状态为s的状态
# 本代码用来训练中文分词HMM模型,得到A矩阵(状态转移矩阵)、B矩阵(混淆矩阵)、Pi向量(初始概率向量)并且用pickle 将他们的utf-8码写到了文件当中去
import pickle
import codecs
A_dic = {} # 状态转移矩阵
B_dic = {} # 混淆矩阵
Pi_dic = {} # 状态初始概率向量
state_list = ['B', 'M', 'E', 'S']
state_M = 4
word_N = 0
Pi_dic_size = 0.0
A_row_count_dic = {} # 记录A[key]所在行的所有列的总和,也就是在求解A_dic每行的每一个值候(A[key1][key2]),分母就是Count_dic[key]
B_dic_element_size = {} # 这个词典中记录的是,混淆矩阵中的对应着同一个输出字符的隐藏状态的数量
PROB_SATRT = "prob_start.py" # 初始概率向量写在这里
INPUT_DATA = "RenMinData.txt" # 用于训练的语料
PROB_EMIT = "prob_emit.py" # 混淆矩阵
PROB_TRANS = "prob_trans.py" # 状态转移矩阵
def init():
global Pi_dic
global B_dic
global A_dic
global A_row_count_dic
for state in state_list:
A_dic[state] = {}
for state1 in state_list:
A_
训练中文分词HMM模型,得到A(状态转移矩阵)、B(混淆矩阵)、Pi(初始状态概率)
最新推荐文章于 2021-09-29 09:26:27 发布