词性标注结果对不上呢

我运行的是readme里面的example:

import hanlp

text = "我的希望是希望和平"


tokenizer = hanlp.load('LARGE_ALBERT_BASE')
tagger = hanlp.load(hanlp.pretrained.pos.CTB9_POS_ALBERT_BASE)
ner_recog = hanlp.load(hanlp.pretrained.ner.MSRA_NER_BERT_BASE_ZH)

tokens = tokenizer(text)
tag = tagger(tokens)
ner = ner_recog(list(text))

tok_tag = [(a, b) for a, b in zip(tokens, tag)]

print(tok_tag)

输出的结果是:

[('我', 'PN'), ('的', 'DEG'), ('希望', 'NN'), ('是', 'NN'), ('希望', 'VC'), ('和平', 'NN')]

貌似输入是token的list,但是解析出来却是按照单个字进行标注并且解析的?

1 Like
>>> import hanlp
>>> tagger = hanlp.load(hanlp.pretrained.pos.CTB9_POS_ALBERT_BASE)
>>> tagger(['HanLP', '是', '面向', '生产' , '环境', '的', '自然语言处理', '工具包', '。'])
['NR', 'NN', 'VC', 'VV', 'P', 'NN', 'NN', 'NN', 'NN']
>>> 

感觉是一个词存在多种可选的tag时都被输出了,然后按数组长度发生了截断

>>> tagger([['HanLP', '是', '面向', '生产' , '环境', '的', '自然语言处理', '工具包', '。'], ['我', '的', '希望', '是', '希望', '和平']])
[['NR', 'NN', 'VC', 'VV', 'P', 'NN', 'NN', 'NN', 'NN'], ['DEC', 'NN', 'JJ', 'NN', 'NN', 'NN']]
>>> 

若用pipeline的话,后续的段落也会被干扰

感谢反馈,的确mask有问题,已经修复: