Найти слово по номеру строки - PullRequest
1 голос
/ 12 марта 2019

Я делаю проект NLP. Я сравниваю результаты моей системы с аннотированной наземной истиной, сопровождаемой набором данных. Результаты системы дают идентификатор смещения, основанный на номере символа. Тем не менее, основная правда - это номер строки и номер токена в зависимости от того, где он находится в строке. Например, рассмотрим эту основную истину:

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."

В этом случае, мотрины - это две отдельные личности:

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

Ясно, что в этом случае моя функция не работает, потому что она видит motrin один раз.

Любые предложения о том, как преобразовать смещение номера строки в смещение номера символа?

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...