大数据,机器学习,人工智能机器学习和人工智能入门自然语言处理—学习

标注训练——crfsuite(附代码)

2018-12-25  本文已影响2人  木木森林和植树匠

一、背景

最近在做一个简历语料的训练,对简历中的关键信息进行标注(标注出应聘者的技能、专业等内容),已经有了大量的已经标注好的语料,之前是用crf++进行训练,后来迁移到crfsuite上,但是我在网上找不到太多的关于crfsuite教程,有些安装配置还特别麻烦,在找了其他人的代码以及看教程的基础上,终于训练出了一版,因此这里提供详细的教程,供大家参考

二、安装

安装非常简单,假设你已经配好 python 环境,并配好相关的安装工具 pip,easy_instal..直接在python中导入pycrfsuite、sklearn-crfsuite包

1)pip install python-crfsuite

2)pip install sklearn-crfsuite

三、数据准备

1)训练集数据:我使用的是IOB格式标注体系(采用了四个符号:B、I、E、O),使用txt文件(excel也可以),文件格式不是特别重要。我的txt文件里面是这个格式,不同的句子之间用一个空行隔开。(备注:我这里的ZY表示‘专业’、XL表示‘学历’),词与标注之间用tab键隔开。

标注好的数据格式

2)数据读入后,将数据放于一个列表(list),列表的样式为:

四、训练

1)特征定义

为每一个词(字)定义一些特征,可以理解为我们想要考察字的哪些特征,比如它是否为大小写、数字、以及它前后的字有哪些。

2)获取每个词、词的标签以及特征

3)训练

调用上面2)的函数,将训练集数据分成两个列表:X_train和Y_train,里面分别存放特征和标签(对训练集也作同样的处理)

设置训练模型参数并开始训练,这里的model.train(crfsuite_model)里的crfsuite_model你应当之前定义好,它是一个模型文件,“crfsuite_model = (os.path.join(model_path, 'cv.crfsuite'))  ”,即你训练出来的模型会存放在文件cv.crfsuite中。

五、测试

打开模型文件,对测试集数据进行预测

六、评估

最后你可能需要去计算accuracy、precision、recall、f1-score。但这里要注意的是,这里还少了几行代码,前面的y_true和y_pred的形式是列表的列表,这样计算会报错,你需要把y_true里的元素都放一个列表里,不要有列表的嵌套的形式。

上一篇 下一篇

猜你喜欢

热点阅读