HIT-SCIR / pyltp

pyltp: the python extension for LTP
1.53k stars 352 forks source link

AttributeError: 'pyltp.Postagger' object has no attribute 'load' #229

Closed appleyuchi closed 4 years ago

appleyuchi commented 4 years ago

在提问之前,请确认以下几点:

问题类型

出错场景

AttributeError: 'pyltp.Postagger' object has no attribute 'load'

代码片段

import os import jieba from pyltp import Postagger, Parser

sent = '2018年7月26日,华为创始人任正非向5G极化码(Polar码)之父埃尔达尔教授举行颁奖仪式,表彰其对于通信领域做出的贡献。'

jieba.add_word('Polar码') jieba.add_word('5G极化码') jieba.add_word('埃尔达尔') jieba.add_word('之父') words = list(jieba.cut(sent))

print(words)

词性标注

pos_model_path = os.path.join(os.path.dirname(file), 'data/pos.model') postagger = Postagger() postagger.load(pos_model_path) postags = postagger.postag(words)

依存句法分析

par_model_path = os.path.join(os.path.dirname(file), 'data/parser.model') parser = Parser() parser.load(par_model_path) arcs = parser.parse(words, postags)

rely_id = [arc.head for arc in arcs] # 提取依存父节点id relation = [arc.relation for arc in arcs] # 提取依存关系 heads = ['Root' if id == 0 else words[id-1] for id in rely_id] # 匹配依存父节点词语

for i in range(len(words)): print(relation[i] + '(' + words[i] + ', ' + heads[i] + ')')

如何复现这一错误

运行环境

Ubuntu20.04 Python3.6.10

期望结果

其他

Please ensure your issue adheres to the following guidelines:

What is affected by this bug?

When does this occur?

Where on the code does it happen?

How do we replicate the issue?

Your environment information

Expected behavior (i.e. solution)

Other Comments

AlongWY commented 4 years ago

在新版本里面,修改了模型初始化方式,直接将参数传入 Postagger 即可,示例代码如下:

# --------------------- 词性标注 ------------------------
postagger = Postagger(os.path.join(MODELDIR, "pos.model"))
postags = postagger.postag(["中国","进出口","银行","与","中国银行","加强","合作"])
print("\t".join(postags))