HIT LTP的使用及利用句法关系简单抽取示例

中文的分词工具相对来说多点,比较有名的是计算所的ICTCLAS,哈工大的LTP,斯坦福的Parser等。但是命名实体识别、句法分析等的工具却不多,我所知的有哈工大的LTP、Stanford Parser。由于Stanford Parser最先是针对英文的处理工具,在中文上效果相对来说比LTP差些。下面我介绍一些个人对LTP的简单认识及初步使用。

不同于Stanford Parser的java版本,LTP的原始程序是用C++开发的(也提供了python版)。提供的接口使得能输入字符串文本或文件名,文本可以是单句,也可以是段落或文章(但需要先调用分句模块)。然后是分词、词性标注、句法分析,还包括其他功能如命名实体识别、词义消歧、语义角色标注。LTP底层以XML表示文本,以DOM处理文本。看其说明的好处是首先可以保留处理结果而不需要以后重新运行(牺牲空间换取时间),另外xml文件存储的处理结果可以用LTP提供的工具通过浏览器以图形化界面查看,具有直观效果。写的这些其实算是多此一举,详细内容可以参考下载的LTP中的"LTP使用文档v*.0.pdf"。

注意点:

如何扩展分词模块的词表?
在ltp_data/irlas_data/extend_dict.dat中的相应词性下添加新词即可。(它需要我们添加的新词给出词性,所以词性的正确与否将影响结果。)

LTP路径配置

test_vs2008文件夹下的ltp_all_modules.conf中设置。(我用的一个版本的初始设置有错,需要修正)

LTP依存关系

据我个人观察,句子中一般只有一个中心词,父亲节点编号-1,依存关系HED,一般词性为v。但是句子中可能存在多个主谓宾关系,一个主谓宾关系的小句子中的中心词为大句子的宾或主。Stanford Parser中则似乎最多只有一个主谓宾,其他动词则成为修饰。

抽取句子主谓宾(最外围)

void extract_action(vector<const char *> vecWord, vector<int> vecDep,vector<string> vecRel)
{
    int i,j,hed = -1;
    for(i = 0;i < vecDep.size();i ++)
        if(vecDep[i] == -1)
        

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值