哈工大LTP语言分析:分词、词性标注、句法分析等

2021年09月15日 阅读数:1
这篇文章主要向大家介绍哈工大LTP语言分析:分词、词性标注、句法分析等,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

1. LTP介绍和安装

LTP语言云官网  在线演示 | 语言云(语言技术平台云 LTP-Cloud)html

 

安装LTP的python接口包python

$ sudo pip install pyltp

 

模型文件下载api

LTP 3.3 文档 百度云post

 

2. 使用LTP的python接口进行语言分析

#!/usr/bin/env python
# coding=utf-8

import sys
reload(sys)
sys.setdefaultencoding('utf8')
import os
from pyltp import Segmentor, Postagger, Parser

class LtpLanguageAnalysis(object):
    def __init__(self, model_dir="/home/xxx/ltp-3.4.0/ltp_data/"):
        self.segmentor = Segmentor()
        self.segmentor.load(os.path.join(model_dir, "cws.model"))
        self.postagger = Postagger()
        self.postagger.load(os.path.join(model_dir, "pos.model"))
        self.parser = Parser()
        self.parser.load(os.path.join(model_dir, "parser.model"))

    def analyze(self, text):
        # 分词
        words = self.segmentor.segment(text)
        print '\t'.join(words)

        # 词性标注
        postags = self.postagger.postag(words)
        print '\t'.join(postags)

        # 句法分析
        arcs = self.parser.parse(words, postags)
        print "\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs)

    def release_model(self):
        # 释放模型
        self.segmentor.release()
        self.postagger.release()
        self.parser.release()


if __name__ == '__main__':
    ltp = LtpLanguageAnalysis()
    ltp.analyze("元芳你怎么看")
    ltp.release_model()

 

输出结果:url

元芳	你	怎么	看
nh	r	r	v
4:SBV	4:SBV	4:ADV	0:HED

 

 经过LTP的在线演示demo能够看到对应的图结构以下:spa

 

(参考:pyltp 0.2.0 文档 ).net