Проблема с тегом семантической маркировки ролей
Я пытаюсь извлечь причинно-следственные связи на уровне предложения. пока мой код работает, но почему-то возвращает неправильные аргументы.
Например, SRL demo для предложения «На наши результаты могут существенно неблагоприятно повлиять результаты судебного разбирательства, судебного разбирательства и других юридических или нормативных вопросов».
аргументом причины является «результаты судебного разбирательства, судебного разбирательства и других юридических или нормативных вопросов», и это соответствует A1 (также известному как Arg1).
#requirements:
from allennlp.predictors import Predictor
predictor = pretrained.load_predictor(model_id="structured-prediction-srl-bert")
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
мой код для получения arg1:
def extract_arg1(sentence):
result = []
try:
try:
output = predictor.predict(sentence)
except Exception as e:
print(e)
tokenized_sentence = tokenizer(sentence, max_length=500,
truncation=True,
padding=False,
add_special_tokens=False)
tokens = tokenized_sentence.tokens()
output = predictor.predict_tokenized(sentence)
for verb in output['verbs']:
desc = verb['description']
arg1_start = desc.find('ARG1: ')
if arg1_start > -1:
arg1_end = arg1_start + len('ARG1: ')
arg1 = desc[arg1_end: desc.find(']')]
result.append((verb['verb'], arg1))
return result
except Exception as e:
print(e)
return -1
#loop over all sentences
from tqdm.notebook import tqdm
tqdm.pandas()
df['Arg1'] = df.sentence.progress_apply(extract_arg1)
однако этот процесс возвращает: [(затронутые, наши результаты)], но мне нужно [(затронутые, результаты судебного разбирательства, судебного разбирательства и других юридических или нормативных вопросов)]