我正在制作一个命名实体识别器,我正在努力使用Python将数据转换成正确的格式。我拥有的是一个特定的字符串和文本中带有归属标记的命名实体列表。例如:
text = “Hidden Figures is a 2016 American biographical drama film directed by Theodore Melfi and written by Melfi and Allison Schroeder.”
这个字符串也可以是“[[Hidden Figures]]是一部2016年[[Theodore Melfi]]导演、[[Melfi]]和[[Allison Schroeder]]编剧的[[American]]传记剧电影。”如果这样做更简单的话。
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(这是非命名实体的标记)。如何使文本中的命名实体获得正确的标记?你知道吗
这可能会起作用,用其他东西代替打印,需要对regex进行改进,但这是一个好的开始。你知道吗
输入:
输出:
相关问题 更多 >
编程相关推荐