spacy: заданная строка в документе, как найти начальный и конечный индексы строки в документе - PullRequest
0 голосов
/ 04 ноября 2019
import spacy
nlp = spacy.load('en')
doc = nlp('An example sentence in the city of london')
str1 = 'in the city'
str2 = 'example sentence'

Я хочу найти начальный и конечный индексы всех str (из списка) в документе. Как это сделать с помощью Spacy?

то, что я сделал до сих пор: комплекс для цикла, соответствующего каждому символу, который явно не масштабируется хорошо.

1 Ответ

1 голос
/ 05 ноября 2019

Если у вас есть экземпляр документа Spacy, «строка в документе» является атрибутом документа (см. Соответствующую документацию здесь ). Тогда вы можете использовать регулярные выражения:

import re
doc = nlp('An example sentence in the city of london')
listOfStrings = [ 'in the city' , 'example sentence' ]

for s in listOfStrings:
    res = re.search(s,doc.text)
    if res:
        print(s , res.start(), res.end())

# in the city 20 31
# example sentence 3 19

...