训练代码主要生成发射概率和转移概率以及在特定标签下的观测值概率
#-*-coding:utf8-*-
PROB_START = "data\prob_start.py" # 初始状态概率
PROB_EMIT = "data\prob_emit.py" # 发射概率
PROB_TRANS = "data\prob_trans.py" # 转移概率
start_fp = open(PROB_START, 'w', encoding='utf8')
emit_fp = open(PROB_EMIT, 'w', encoding='utf8')
trans_fp = open(PROB_TRANS, 'w', encoding='utf8')
def getList(input_str): # 输入词语,输出状态
"""
输入一个词语,然后把词语转化成B,M,E,S的形式
:param input_str:
:return:
"""
outpout_str = []
if len(input_str) == 1:
outpout_str.append('S')
elif len(input_str) == 2:
outpout_str = ['B', 'E']
else:
M_num = len(input_str) - 2
M_list = ['M'] * M_num
outpout_str.append('B')
outp