哈工大LTP使用

# coding=utf-8
from pyltp import SentenceSplitter
from pyltp import Segmentor
from pyltp import Postagger
from pyltp import NamedEntityRecognizer
from pyltp import Parser
from nltk import DependencyGraph

path = 'C:\\Users\\28612\\Desktop\\SentimentRecommendation\\tool\\LTP\\ltp_data_v3.4.0\\'


def draw(words, postags, arcs):
    par_result = ''
    for i in range(len(words)):
        if arcs[i].head == 0:
            arcs[i].relation = "ROOT"
        par_result += "\t" + words[i] + "(" + arcs[i].relation + ")" + "\t" + postags[i] + "\t" + str(
            arcs[i].head) + "\t" + \
                      arcs[i].relation + "\n"
    conlltree = DependencyGraph(par_result)  # 转换为依存句法图
    tree = conlltree.tree()  # 构建树结构
    tree.draw()  # 显示输出的树


# 分句
sents = SentenceSplitter.split('元芳你怎么看?我就趴窗口上看呗!')

paragraph1 = '速度非常快。'
# 分词
sengentor = Segmentor()
sengentor.load(path + 'cws.model')
words = sengentor.segment(paragraph1)
sengentor.release()

# 词性标注
postagger = Postagger()
postagger.load(path + 'pos.model')
postags = postagger.postag(words)
postagger.release()

# 命名实体识别
recognizer = NamedEntityRecognizer()
recognizer.load(path + 'ner.model')
netags = recognizer.recognize(words, postags)
recognizer.release()

# 句法分析
parser = Parser()
parser.load(path + 'parser.model')
arcs = parser.parse(words, postags)
parser.release()

print(list(words))
print(list(postags))
print("\t".join("%d:%s" % (arc.head, arc.relation) for arc in arcs))
draw(words, postags, arcs)

words = list(words)
postags = list(postags)
words.insert(0, 'ROOT')
postags.insert(0, 'a')
arcs = [(arc.head, arc.relation) for arc in arcs]
print(words)
print(postags)
print(arcs)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值