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

作者: 木木森林和植树匠 | 来源:发表于2018-12-25 20:56 被阅读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里的元素都放一个列表里,不要有列表的嵌套的形式。

    相关文章

      网友评论

        本文标题:标注训练——crfsuite(附代码)

        本文链接:https://www.haomeiwen.com/subject/gdyqlqtx.html