Данные собеседования в Python: подсчитать определенное количество случаев, разделенных динамиком - PullRequest
1 голос
/ 04 апреля 2020

Это вопрос социолога. Я думаю, что нашел первый идеальный вариант использования (для меня), чтобы использовать Python, но я еще не там. Я хотел бы проанализировать сотни формализованных стенограмм интервью, на самом деле, основой являются протоколы парламентских дебатов. Это также может быть случайное интервью. Я хотел бы сосчитать определенные слова - «приветствия», которые получает каждая партия по заказу сторон, - но, как новичок в Py, я изо всех сил пытаюсь найти правильную формулу для определения условий. Проще говоря, меня интересует следующий вопрос исследования: Кто кого подбадривает? Есть несколько «если», о которых я хотел бы позаботиться, чтобы получить желаемый результат.

Необработанные данные являются сложными, но хорошо упорядоченными.

Каждое обсуждение назначается докладчиком, который официально представлен: "Слово идет ... Х". Тогда есть текст говорящего, есть также пустые строки, разделяющие текст. Когда оратор закончил, следующий вводится с той же фразой. Во время выступления члены определенных партий «подбадривают» говорящего, что указывается в данных bei «(Аплодисменты ... ИМЯ СТОРОНЫ)». Эти записи могут go более чем на 1 или 2 строки. И я хотел бы посчитать эти «ура».

Вот пример необработанных данных (упрощенно):

The floor goes to member of the parliament Muller by the
Left Party.

Bla bla
bla 
(Cheers Left Party, Green Party, Blue
Party )

Bla

(Cheers Nazi Party) 
Bye Bla

The floor goes to member of the parliament Tsing by the Green Party.

Bla bla
bla 
(Cheers Left Party, Green Party)

Как передать Python l oop через текст, который следует после определенной строки в определенной строке (динамик) произошло? Кроме того, как подсчитать количество совпадений в строке, пропуская, таким образом, пустые / нерелевантные символы (считая «ура»)? Используя базовый код подсчета слов c, я смог подсчитать все приветствия в файле, но это просто начало.

count = 0
fhand = open('3_parliament.txt') 
for line in fhand:
    line = line.rstrip()
    if not line.startswith('(Cheers '): continue
    words = line.split()
    count = count + 1
    print(words[1]) 

print("There were", count, "lines in the file with >(Cheers< as the first word")

Я нашел дополнительный пример кода, в котором были определены "абзацы", но это не работает здесь из-за пустых строк и сложного характера текста в целом. textwrapping, казалось, производил подобные проблемы. Мне также сложно посчитать количество совпадений в строке («Приветствия ... Вечеринка X». У вас есть какие-нибудь советы или подсказки?

Я использую последнюю версию Python 3.8 на Win 10 через атом.

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