我正在做一个nlp项目。我将系统结果与带数据集的带注释的地面事实进行了比较。系统的结果给出基于字符号的偏移ID。但是,地面实况是通过行号,而令牌号是基于行中的位置。例如,请考虑以下基本事实:
m="lasix" 26:7 26:7
在这里,26是指主体的第26行,而7是该行中标记的编号。我试图通过在下面创建一个字符索引生成器将此偏移号转换为字符索引。
def all_occurences(file, str):
initial = 0
file = file.replace('\n', ' ')
while True:
initial = file.find(str, initial)
if initial == -1: return
yield initial
initial += len(str)
有时可以。但是,在地面真相注释中,药物名称只能被提及一次,但根据原因可以被认为是两个实体。
例如:
corpus = "motrin for pain and headache."
在这种情况下,motrin是2个独立的身份:
m="motrin" 26:7 26:7, reason="pain"
m="motrin" 26:7 26:7, reason="headache"
很明显,在这种情况下,我的函数失败了,因为它一次只能看到motrin。
关于如何将行号偏移量转换为字符号偏移量的任何建议?
谢谢!