Я делаю распознаватель именованных сущностей и пытаюсь перевести данные в правильный формат, используя Python. У меня есть определенная строка и список именованных сущностей в этом тексте с принадлежащими тегами. Например:
text = “Hidden Figures is a 2016 American biographical drama film directed by Theodore Melfi and written by Melfi and Allison Schroeder.”
Эта строка также может быть «[[Скрытые фигуры]] - это [[американский]] биографический драматический фильм 2016 года, режиссер [[Теодор Мелфи]] и написанный [[Мелфи]] и [[Эллисон Шредер]]. «Если это облегчает.
listOfNEsAndTags = [‘Hidden Figures PRO’, 'American LOC’, 'Theodore Melfi PER’, 'Melfi PER’, 'Allison Schroeder PER’]
В качестве вывода я хочу получить:
Hidden PRO
Figures PRO
is O
a O
2016 O
American LOC
biographical O
drama O
film O
directed O
by O
Theodore PER
Melfi PER
and O
written O
by O
Melfi PER
and O
Allison PER
Schroeder PER
. O
Пока я получил только следующую функцию:
def wordPerLine(text, neplustags):
text = re.sub(r"([?!,.]+)", r" \1 ", text)
wpl = text.split()
output = []
for line in wpl:
output.append(line + ” O")
return output
, который дает каждой строке тег O по умолчанию (который является тегом для неназванных объектов). Как я могу сделать так, чтобы именованные объекты в тексте получили правильный тег?