HIT-SCIR / pyltp

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

TypeError: __init__(): incompatible constructor arguments #230

Closed appleyuchi closed 4 years ago

appleyuchi commented 4 years ago

代码片段

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))#分词后的列表

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

# 词性标注 postagger = Postagger(os.path.join("data", "pos.model")) postags = postagger.postag(words) print("\t".join(postags))

# 依存句法分析 par_model_path = os.path.join(os.path.join("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] + ')')

## 如何复现这一错误

直接运行

运行环境

python3.6.10 Ubuntu20.04

您好!

报错信息为:

Traceback (most recent call last): File "", line 1, in TypeError: init(): incompatible constructor arguments. The following argument types are supported:

  1. pyltp.Parser(arg0: str)

Invoked with:

求问依存句法分析下面的应该怎么修改? 谢谢您!

AlongWY commented 4 years ago

和之前分词是一样的 你可以看一下完整的 example