У меня есть набор текстов из живых телевизионных сегментов, и я пытаюсь найти способ удалить ссылки на предварительно записанные сегменты или рекламные ролики с помощью регулярных выражений. Рассмотрим следующий пример сценария симптомов c типа текста, с которым я работаю:
myconvo = "speaker1: hello
speaker2: hello (clears throat), let me show you something Ted Cruz said last week
(begin audio clip)
Ted Cruz (R-TX): My dad did not shoot JFK, why do people keep saying that?
(end audio clip)
speaker1: now isn't that interesting"
Корпус был создан из разных источников с разными стандартами (то есть одни используют скобки, другие используют скобки это один пример). Тем не менее, вышеизложенное является широким представлением. Чтобы решить эту проблему, я написал следующее:
cleanString = re.sub(r"\n[\(\[].+[\)\]]\n*[\.a-zA-Z\s\d,'’:;!?@£$\"“”-]*\n*[\(\[].+[\)\]]", '', myconvo)
Для ясности этот сценарий написан для выполнения следующих действий:
1. Поиск новой строки с последующим открывающими / закрывающими скобками / круглыми скобками с текстом между ними (где текст обозначает начало сегмента \n[\(\[.+][\)\]]
2. Ищите любое количество новых строк, за которыми следует текст, соответствующий удаляемый сегмент \n*[\.a-zA-Z\s\d,'’:;!?@£$\"“”-]*
3. Ищите новую строку, за которой следуют скобки / скобки, содержащие конец удаляемого сегмента
4. Заменить пробелом
Это работает, поскольку удаляемый текст не содержит круглых скобок, однако он полностью портится с выводом (если это и число) других у меня будет).
Мне интересно, есть ли способ, которым я могу указать текст, который будет применяться только в начале строки, но я не уверен, как go об этом. Также укажу, что это мои ели Я не могу найти ничего подобного, поэтому, если у кого-то есть лучший обходной путь, я очень приветствую вклад.
РЕДАКТИРОВАТЬ: Для ясности, я хотел бы получить в итоге:
myconvo = "speaker1: hello
speaker2: hello (clears throat), let me show you something Ted Cruz said last week
speaker1: now isn't that interesting"