任务简介

关系抽取属于知识库构建的一个部分,目前常见的做法是通过模板规则方法和机器学习方法(分类算法)。 —— 参考文献下载

本文借助分类算法SVM进行。

语料说明

  • 来源 :新浪财经—— 点击查看
  • 标记规则:说明文档—— 点击下载;标记源程序下载—— 点击下载;标记应用程序下载—— 点击下载
  • 概况 :6000篇原始文档,2485篇标记文档;标记文档中合法文档为2442篇,非合法文件为43篇;标记格式为类型A和B的句子数分别为43932和2710;标记格式类型A中合法句子数为32858,非合法句子数为11074;数据及详细分析文件—— 点击下载
  • 训练数据和测试数据 :训练数据句子数为23595,测试句子数为7865;

    感谢:朱洋峰(原始数据+外部词典),标记小组(标记数据)。

LibSVM说明

本文借助libsvm工具实现SVM分类模型的设计。

  • libsvm下载—— 点击下载
  • libsvm使用文档—— 点击下载

    感谢:台湾大学林智仁等人(Lin Chih-Jen el.)开发的libsvm工具。

程序设计

开发环境: Eclipse(Luna Release 4.4.0) + JDK 1.7;
普通Java项目:使用时选择file>Import>General>Existing Projects into Workspace导入即可;
编码:UTF-8;

标注器源程序说明–点击下载

  • 结构说明
  • 外部资源文件说明

模型训练阶段源程序说明–点击下载

  • 结构说明
  • 外部资源文件说明
    详见KeyValue.java

模型应用源程序说明–点击下载

  • 结构说明
  • 外部资源文件说明
    详见KeyValue.java

实验结果

  • 研究特征说明(基于参考文献)
    实体内:实体长度,实体类型,实体内容,实体的语义依存类型
    实体间:实体类型组合,实体间距离,实体结构依存组合
    实体外:实体距核心谓词的距离,实体前后1、2个词的词性

  • 实验思路
    特征选择:探究每个单独特征、每类特征(内,间,外)、依存特征(语义依存,结构依存,距核心谓词的距离)
    参数训练:借助libsvm工具结合训练数据进行参数训练

  • 实验结果

  • 实验分析
    1.分类的成功率基本上和训练数据的数据量成正比
    2.一般情况下,一个及格的分类所需数据量约为1000
    3.Best Feature Group:无实体前后1,2个词的词性的其它特征
    4.关系“Describe”和“Cpoint”的训练数据(前者600多条,后者800多条)相较于其它类型过少,导致这两类结果不是太好。

  • 后续改进方向
    1.扩充类型“Describe”和“Cpoint”的训练数据
    2.修改分类体系

意见与建议

限于自身能力,最终的结果可能并非完美。实验过程中考虑的方面可能也不够全面,设计的程序也可能不是最优。如有问题,还望通过以下方式联系!

感谢吴老师提供的此次实习机会,感谢公司中同事们的帮助!