逐行找一个词麻木

2024-10-03 06:23:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我在做一个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是两个独立的身份:

m="motrin" 26:7 26:7, reason="pain"
m="motrin" 26:7 26:7, reason="headache"

显然,在这种情况下,我的函数失败了,因为它只看到一次motrin。你知道吗

关于如何将行号偏移量转换为字符号偏移量有什么建议吗?你知道吗

谢谢你!你知道吗


Tags: 项目nlp系统情况字符initial事实file