HIT-SCIR / pyltp

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

语义角色标注模型在centos中加载失败 #242

Closed Sniper-LZX closed 2 years ago

Sniper-LZX commented 2 years ago

老师您好,请问这我该如何解决这个问题,请告知

程序:

coding:utf-8

import os from pyltp import Segmentor, Postagger, Parser, NamedEntityRecognizer, SementicRoleLabeller

if name == 'main': LTP_DIR = "../ltp_data"

句子分词

segmentor = Segmentor(os.path.join(LTP_DIR, "cws.model"))
print("句子分词")
# 词性标注
postagger = Postagger(os.path.join(LTP_DIR, "pos.model"))
print("词性标注")
# 依存句法分析
parser = Parser(os.path.join(LTP_DIR, "parser.model"))
print("依存句法分析")
# 命名实体识别
recognizer = NamedEntityRecognizer(os.path.join(LTP_DIR, "ner.model"))
print("命名实体识别")
# 语义角色标注
labeller = SementicRoleLabeller(os.path.join(LTP_DIR, 'pisrl.model'))
print("语义角色标注")

结果:

[root@2hou7in98o TriplesExtract]# python a.py 句子分词 词性标注 依存句法分析 命名实体识别 Illegal instruction [root@2hou7in98o TriplesExtract]#

Sniper-LZX commented 2 years ago

并未使用pisrl_win.model

AlongWY commented 2 years ago

在 centos 7 + Python 3.10 + pyltp 0.4.0 未复现该问题

Sniper-LZX commented 2 years ago

感谢老师的回答 我所使用的服务器为 CentOS Linux release 7.9.2009 (Core) python更改为python3.10.5 gcc version 4.8.5 20150623 (Red Hat 4.8.5-36) (GCC) 安装的pyltp为0.4.0 使用您所提供的样例代码example 以下是所出现的结果:

[root@2hou7in98o TriplesExtract]# python3 a.py 他 叫 汤姆 去 拿 外衣 。 他 叫 汤姆 去 拿 外衣 。 他 叫 汤姆 去 拿 外衣 。 | With Vocab 他 叫 汤姆 去 拿 外衣 。 | Force Vocab r v nh v v n wp 2:SBV 0:HED 2:DBL 5:ADV 2:VOB 5:VOB 2:WP O O S-Nh O O O O Illegal instruction

是否因为设备问题导致的加载失败? 感谢您的再次回答。

AlongWY commented 2 years ago

感觉像是设备问题?推测可能是 pip 中的 pyltp 编译器比较新,可能用了比较新的指令集,可以尝试一下自行编译?

Sniper-LZX commented 2 years ago

感谢您的解答