实验语料:人民日报数据、词典由训练语料生成
puk_training.txt:训练语料
puk_training_small.txt:训练语料(小)
pku_test.txt : 测试语料
pku_test_gold.txt:参考答案
crf++工具链接:https://pan.baidu.com/s/1H7ZaifX0lvmfIpG74tLXOA
提取码:2beq
条件随机场(CRF)是给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型。
以一组词性标注为例,给定输入X={我,喜欢,雷峰塔},那么输出为Y={名词,动词,名词}的概率应该为最大。输入序列X又称为观测序列,输出序列Y又称为状态序列。这个状态序列构成马尔可夫随机场,所以根据观测序列,得出状态序列的概率就包括,前一个状态转化为后一状态的概率和状态变量到观测变量的概率。
训练:
1、使用crf++工具,python将训练数据转换成crf++能处理的格式。训练数据是已经做了分词,文本类似于这样:
标记后,文本类似于这样:
#将训练语料标注成B M E S存储
def character_tagging(input_file,output_file):
input_data = open(input_file,'r',encoding='UTF-8-sig')
output_data = open(output_file,'w',encoding='UTF-8-sig')
for line in input_data.readlines():
word_list = line.strip().split()
for word in word_list:
if len(word)==1:
output_data.write(word+'\tS\n')
else:
output_data.write(word[0]+'\tB\n')
for