Próbuję uzyskać zdania z ciągu znaków, który zawiera dany podciąg przy użyciu Pythona.Odnajdywanie otaczającego zdania znaku/słowa w ciągu znaków
Mam dostęp do napisu (streszczenie akademickie) i listę najważniejszych z indeksami początkowymi i końcowymi. Na przykład:
{
abstract: "...long abstract here..."
highlights: [
{
concept: 'a word',
start: 1,
end: 10
}
{
concept: 'cancer',
start: 123,
end: 135
}
]
}
Mam pętli na każdym podświetleniem, lokalizowanie to początek indeksu w sposób abstrakcyjny (koniec naprawdę nie ma znaczenia, jak po prostu trzeba uzyskać lokalizację w zdaniu), a potem jakoś trzeba identyfikuj zdanie, w którym występuje ten indeks.
Potrafię tokenizować streszczenie w zdania przy użyciu nltk.tonenize.sent_tokenize
, ale w ten sposób renderuję lokalizację indeksu bezużyteczną.
Jak mam rozwiązać ten problem? Przypuszczam, że regexes są opcją, ale tokenizer nltk wydaje się być tak fajnym sposobem robienia tego, że byłoby to wstydu nie skorzystać z niego .. Lub jakoś zresetować indeks początkowy przez znalezienie liczby znaków od poprzedniego pełnego zatrzymania/wykrzyknik/znak zapytania?
to wygląda JSON. – squiguy
Tak, manipuluję danymi z punktu końcowego API. – Elise
Może to być kosztowne, ale można przejść przez zdania i przeliczyć indeksy zdań z długości, a następnie wyszukać ten indeks. – user1937198