Рубрики
Без рубрики

Анализ первичных дебатов QuickStart

РЕДАКТИРОВАТЬ: После того, как обе ночи дебатов пришли к выводу, что я сделал более тщательную запись. Я бы призвал вас … Tagged с обсуждением, Python, начинающих.

РЕДАКТИРОВАТЬ: После того, как обе ночи дебатов пришли к выводу, что я сделал более тщательную запись. Я бы призвал вас проверить это.

Визуализация основных дебатов

Чарльз Ландау ・ 1 августа ’19 ・ 1 мин. читать

Если вы смотрите дебаты сегодня вечером и подумали: «Как я могу проанализировать данные о транскрипте из этого?» Вот какой -то стартовый код, чтобы просто и легко анализировать стенограмму.

import pandas as pd
import sklearn as sk
import requests
import bs4

# http request
r = requests.get('https://www.washingtonpost.com/politics/'
    '2019/07/31/transcript-first-night-second-democratic-debate')
r.status_code

# Parse html
soup = bs4.BeautifulSoup(r.content)
graphs = soup.find_all('p')
utterances = [x.get_text() for x in graphs if 'data-elm-loc' in x.attrs.keys()]

# Parse utterances
utterances = utterances [2:]
seq = 0
data = []
for i in utterances:
    graph = i.split()
    if graph[0][-1] == ':':
        text = ' '.join(graph[1:])
        num_words = len(graph) - 1
        name = graph[0][:-1]
        seq += 1
    elif len(graph) > 1 and graph[1] == '(?):':
        # Cases like 'WARREN (?):'
        text = ' '.join(graph[2:])
        num_words = len(graph) - 2
        name = graph[0]
        seq += 1
    else:
        text = ' '.join(graph)

    data.append({"name": name,
      "graph": text,
      "seq": seq,
      "num_words": num_words})

df = pd.DataFrame(data)

# "Unknown", O'Rourke parsing errors
df = df[df.name != "(UNKNOWN)"]
df['name'] = df['name'].apply(lambda x: ''.join([char for char in x if char.isalpha()]))

# Example...
df.groupby('name').sum()['num_words'].plot(kind='bar')

(Изображение взято в середине дебате, это не окончательные числа)

(Очищенные, числа после дебата)

Вы можете быстро начать с этого кода и больше в интерактивной ноутбуке на Kaggle:

Оригинал: “https://dev.to/charlesdlandau/primary-debate-analysis-quickstart-19k1”