Я уже думал о некоторых решениях, чтобы попытаться решить проблему, но ни одно из них не кажется мне подходящим. Я объясню:
Давайте представим, что у нас есть следующий список строк (последовательность тегов PoS из части речевого тегирования):
['PROPN', 'AUX ',' ADV ',' VERB ',' SCONJ ',' PROPN ',' AUX ',' NOUN ',' CCONJ ',' PROPN ',' AUX ',' NOUN ',' PUNCT ']
Моя цель - найти следующий шаблон в списке:
PROPN - AUX - (НИЧЕГО МЕЖДУ) - PUNCT
путем возврата этих двух возможные результаты:
[0,1,2,3,4,5,6,7,8,9,10,11,12] и [9,10 , 11,12]
Я знаю, что одним из возможных способов было бы объединить все строки в списке и использовать регулярное выражение в python, но этот метод будет иметь проблему:
Соответствующие индексы связаны только с индексами символов этой строки, и после этого будет недостаточно (на мой взгляд) конвертировать эти индексы в индексы позиций слов в Оригинальный список. Важно поддерживать целостность токенизации, которая выполняется в начальном списке.
Буду признателен, если кто-нибудь предложит мне решение этой проблемы.
Заранее спасибо.