Я хочу добавить текст в новый список, пока список не встретит определенные строки - PullRequest
0 голосов
/ 26 апреля 2018

Я предварительно обрабатываю текст сценария дебатов Трампа-Хиллари, чтобы создать 3 списка, которые будут включать высказывание каждого из 3 человек.Весь сценарий состоит из 1046 списков

, часть текста выглядит следующим образом

for i in range(len(loaded_txt)):
    print("load_text[i]",load_text[i])

loaded_txt [i] TRUMP: Нет, это полностью вам поможет.И одна вещь, которую мы должны сделать: отменить и заменить катастрофу, известную как Obamacare.Это разрушает нашу страну.Это разрушает наш бизнес, наш малый бизнес и наш большой бизнес.Мы должны отменить и заменить Obamacare.

loaded_txt [i]

loaded_txt [i] Вы посмотрите на те цифры, которые нам обойдутся в '17 году, этокатастрофа.Если мы не отменим и не заменим - сейчас, вероятно, он умрет от собственного веса.Но Obamacare должен идти.Это - премии растут на 60 процентов, 70 процентов, 80 процентов.В следующем году они вырастут более чем на 100%.

loaded_txt [i]

loaded_txt [i] И я очень рад, что начислены премии - по крайней мере, людиПосмотрите, что происходит, потому что она хочет сохранить Obamacare, и она хочет сделать это еще хуже, и это не может быть еще хуже.Плохое здравоохранение по самой дорогой цене.Мы должны отменить и заменить Obamacare.

loaded_txt [i]

loaded_txt [i] ВАЛЛАС: И, госсекретарь Клинтон, тот же вопрос, потому что в этот момент Социальное обеспечение и Medicare собираютсязакончатся, целевые фонды будут исчерпаны деньги.Будете ли вы, как президент, развлекать - рассмотрите ли вы великую сделку, сделку, которая включает как повышение налогов, так и сокращение льгот, чтобы попытаться сохранить обе программы?


Я пытался добавить список в TRUMP_script_list = [], если в списке есть «TRUMP:», как это

TRUMP_script_list=[]

for i in range(len(loaded_txt)):
    if "TRUMP:" in loaded_txt[i]:
        TRUMP_script_list.append(loaded_txt[i])

Но проблема в списке без имени.Но текст без имени должен быть сообщением Трампа, если он находится под текстом с именем Трампа, список UNTIL соответствует текстам, включая имена, а не имена Трампа (Уоллеса или Клинтона)содержат другие имена (Уоллес, Клинтон).Но не удалось реализовать.

Как мне реализовать этот алгоритм или любую другую хорошую идею?

1 Ответ

0 голосов
/ 26 апреля 2018

определить функцию для получения заголовка:

def get_title(text, titles, previous_title):
    for title in titles:
        if title in text:
            return title
    return previous_title

определить справочный словарь:

name_script_list = {'TRUMP:':TRUMP_script_list, 'HILLARY:':HILLARY_script_list, 'WALLACE:':WALLACE_script_list}
titles = set(name_script_list.keys())
title = ''

перебрать список в цикле for:

for text in loaded_txt:
    title = get_title(text, titles, title)
    name_script_list[title].append(text)

По сути, идея в том, что get_title () получает серию заголовков, которые нужно попробовать, а также то, что было последним заголовком. Если появляется какой-либо из заголовков, он возвращает его. В противном случае возвращается прежний заголовок

Я инициализировал начальный заголовок как ''. Это будет работать, если в первой строке текста есть заголовок. Если нет, он выдаст ошибку. Исправление для этого зависит от того, как вы хотите, чтобы это реализовано. Вы просто не хотите рассматривать такой случай (указывает на ошибку в загруженном_тексте или списке возможных заголовков)? Вы хотите установить имя конкретного человека в качестве начального заголовка по умолчанию? Вы хотите пропустить строки до первоначального заголовка? Есть несколько подходов, и я не уверен, что вы бы предпочли

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