The code for this project can be found here.


Imports

import os
import requests
import json
import numpy as np
import pandas as pd
import zstandard as zstd
import tensorflow as tf
import seaborn as sns
import tensorflow.keras.backend as K
import matplotlib.pyplot as plt

from sklearn.model_selection import train_test_split
from sklearn.metrics import confusion_matrix
from sklearn.preprocessing import StandardScaler
from tensorflow.keras.preprocessing.text import Tokenizer
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.layers import Dense, Input, GlobalMaxPooling1D, Conv1D, MaxPooling1D, Embedding, LSTM, Dropout
from tensorflow.keras.models import Model, load_model
from tensorflow.keras.initializers import Constant

# Display Options
pd.options.display.float_format = '{:,.2f}'.format

#Variables
MAX_SEQUENCE_LENGTH = 700
MAX_NUM_WORDS = 10000
EMBEDDING_DIM = 100

The main libraries used for this project are Tensorflow and the high level API Keras which enable fast prototyping for projects and research. Tensorflow has integrated Keras into its library and can now be accessed directly from Tensorflow. We also import Pandas, Numpy, and Scikit-Learn to assist in our data wrangling


Data Wrangling

There are several ways to grab comment data from Reddit but I found the fastest and most comprehensive way was to use pushift. which has already done a bulk of the work for us. Each file contains comments made on Reddit for a particular time period. Since each file contains millions of comments we are only going to download the most recent file.

# https://www.reddit.com/r/pushshift/comments/ajmcc0/information_and_code_examples_on_how_to_use_the/

fields = ['body', 'created_utc', 'id', 'is_submitter', 'link_id', 'score', 'subreddit_id', 'subreddit'] 

with open("RC_2019-02.zst", 'rb') as fh:
    dctx = zstd.ZstdDecompressor()
    with dctx.stream_reader(fh) as reader:
        previous_line = ""
        count = 1
        while True:
            chunk = reader.read(2**24)
            if not chunk:
                break
                
            string_data = chunk.decode('utf-8')
            lines = string_data.split("\n")
            comments = []
            
            for i, line in enumerate(lines[:-1]):
                if i == 0:
                    line = previous_line + line
                object = json.loads(line)
                    
                if object['body'] in ['[deleted]', '[removed]'] or \
                    object['parent_id'].startswith('t1') or \ 
                    object['subreddit'].lower() not in ['politics']:
                    
                    pass
                else:
                    object = dict((k, object[k]) for k in fields if k in object)
                    
                    comments.append(object)
                    
            df = pd.DataFrame(comments)
            
            df.to_csv(f'raw-data//{count}_comments.csv', index=False)
            count += 1         
              
            previous_line = lines[-1]

The zst file is too big to read into memory all at once. The above code loops through the file from pushift and stores chunks of comments into individual csv files. In order to further reduce the size we also limit the comments to the politics subreddit. The politics subreddit has a consistent narrative therefore it might not be as eratic as other subreddits when it comes to comment score.

url = 'https://api.pushshift.io/reddit/search/submission/?ids='

for file in os.listdir(r'raw-data/'):
    link_id = []
    link_created_utc = []

    df = pd.read_csv(f'raw-data/{file}')
    link_ids = df['link_id'].str.split('_', expand=True)[1].unique().tolist()
    split_link_ids = np.array_split(link_ids, 5)

    try:

        for ids in split_link_ids:

            r = requests.get(f'{url}{",".join(ids)}')

            package_json = r.json()

            data = package_json['data']

            for field in data:
                link_id.append('t3_' + field['id'])
                link_created_utc.append(field['created_utc'])

        data = list(zip(link_id, link_created_utc))

        link_df = pd.DataFrame(data, columns=['link_id', 'link_created_utc'])

        new_df = df.merge(link_df, on='link_id', how='inner')

        new_df.to_csv(f'comb-data/{file}', index=False)

    except:
        print('failed')
        pass

The comment data is missing the submission timestamp for which the comment belongs too. Time elapsed since submission is a critical factor in determining comment score so we need this information. Fortunately, the same site that provided the comment data also has an API we can leverage to fill in our missing data.

The above script opens up each csv file that was created earlier and passes the post id (link_id) to the API in which returns the post timestamp. We then save the csv file with our new field..

filepaths = [f'comb-data/{file}' for file in os.listdir(r'comb-data/')]
df = pd.concat(map(pd.read_csv, filepaths))
df = df.reset_index(drop=True)
df.to_csv('reddit_data.csv', index=False)

Finally we take the individual csv files and merge them into a single csv file. We should try and reduce as much complexity as we can. You could feed the individual csv files to Keras model but if you don't have to then don't do it.


Data Exploration

# drive.mount('/content/gdrive')
# df = pd.read_csv(r'gdrive/My Drive/Projects/reddit-score-pred/reddit_data.csv')

# embeddings_index = {}
# with open('gdrive/My Drive/Projects/reddit-score-pred/glove.6B.100d.txt', encoding="utf8") as f:
#     for line in f:
#         word, coefs = line.split(maxsplit=1)
#         coefs = np.fromstring(coefs, 'f', sep=' ')
#         embeddings_index[word] = coefs
df = pd.read_csv('reddit_data.csv')
df = df[df.subreddit == 'politics']
df.head()
body created_utc id is_submitter link_id score subreddit subreddit_id link_created_utc
3 I'll be honest I'm not a fan of this. \n\nI re... 1549297521 efqd1ln False t3_an1zxq -10 politics t5_2cneq 1549289373
4 Trump curse incoming!!! 1549297533 efqd26p False t3_an1zxq 1 politics t5_2cneq 1549289373
5 How is he going to get cold Chinese food at th... 1549297561 efqd3l0 False t3_an1zxq 2 politics t5_2cneq 1549289373
6 The one backbencher for the Pats likes Obama. ... 1549297594 efqd57i False t3_an1zxq -12 politics t5_2cneq 1549289373
7 What's Obama up to these days? 1549297606 efqd5ri False t3_an1zxq 1 politics t5_2cneq 1549289373
df.body = df.body.astype(str)
print('Comment Metrics')
print(f'Mean: {df.body.map(len).mean():.0f}')
print(f'Min: {df.body.map(len).min():.0f}')
print(f'Max: {df.body.map(len).max():.0f}')
print(f'Std: {df.body.map(len).std():.0f}')
Comment Metrics
Mean: 195
Min: 1
Max: 10123
Std: 304
df.score.describe()
count   506,386.00
mean         19.50
std         213.89
min        -491.00
25%           1.00
50%           2.00
75%           7.00
max      21,364.00
Name: score, dtype: float64

Our dataset contains over 500,000 comments. When looking at the distribution of the scores it appears we may have some issues as it appears we don't have a normal distribution. Below we'll plot some charts of the distribution and various normalization techniques.

plt.figure(figsize=(15, 5))
sns.distplot(df.score);
scaler = StandardScaler()
scores = scaler.fit_transform(df.score.values.reshape(-1,1))

plt.figure(figsize=(15, 5))
sns.distplot(scores);
C:\Users\Mike\.conda\envs\reddit-score-pred\lib\site-packages\sklearn\utils\validation.py:595: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.
  warnings.warn(msg, DataConversionWarning)
C:\Users\Mike\.conda\envs\reddit-score-pred\lib\site-packages\sklearn\utils\validation.py:595: DataConversionWarning: Data with input dtype int64 was converted to float64 by StandardScaler.
  warnings.warn(msg, DataConversionWarning)
from sklearn.preprocessing import power_transform
scores = power_transform(df.score.values.reshape(-1,1), method='yeo-johnson')

plt.figure(figsize=(15, 5))
sns.distplot(scores);
from sklearn.preprocessing import quantile_transform
scores = quantile_transform(df.score.values.reshape(-1,1), n_quantiles=99, random_state=0)
plt.figure(figsize=(15, 5))
sns.distplot(scores);
from sklearn.preprocessing import robust_scale
scores = robust_scale(df.score.values.reshape(-1,1))

plt.figure(figsize=(15, 5))
sns.distplot(scores);
df.score.quantile(np.linspace(.04, 1, 24, 0))
0.04   -6.00
0.08   -1.00
0.12    0.00
0.16    1.00
0.20    1.00
0.24    1.00
0.28    1.00
0.32    1.00
0.36    1.00
0.40    1.00
0.44    2.00
0.48    2.00
0.52    2.00
0.56    3.00
0.60    3.00
0.64    4.00
0.68    5.00
0.72    6.00
0.76    7.00
0.80    9.00
0.84   12.00
0.88   16.00
0.92   24.00
0.96   48.00
Name: score, dtype: float64

After exploring the distribution it appears that we may have some issues if we try to predict the score using regression. A better option would be to bin the data into categorical groups and use a classification model to predict groups of data.

pd.cut(
    df.score, [-10000, 0, 1, 10, 50, 10000],
    labels=['Downvoted', 'No Votes', '2-10 Votes', '11-50 Votes', '50+ Votes']).value_counts()
2-10 Votes     203917
No Votes       151028
11-50 Votes     69650
Downvoted       62430
50+ Votes       19321
Name: score, dtype: int64
df['score_category'] = pd.cut(
    df.score, [-100000, 0, 1, 10, 50, 100000],
    labels=['Downvoted', 'No Votes', '2-10 Votes', '11-50 Votes', '50+ Votes'])
df.score_category.cat.categories
Index(['Downvoted', 'No Votes', '2-10 Votes', '11-50 Votes', '50+ Votes'], dtype='object')
pd.concat([df.score_category, df.score_category.cat.codes], axis=1).head(10)
score_category 0
3 Downvoted 0
4 No Votes 1
5 2-10 Votes 2
6 Downvoted 0
7 No Votes 1
8 2-10 Votes 2
9 11-50 Votes 3
10 No Votes 1
11 Downvoted 0
12 2-10 Votes 2

We utilize the pandas cut method to group our data into 5 groups ('Downvoted', 'No Votes', '2-10 Votes', '11-50 Votes', '50+ Votes'). You can access a numerical representation of the category by callin the .cat.codes method.


Data Preperation

df['time_lapsed'] = df['created_utc'] - df['link_created_utc'] 

The only feature engineering I did for this project is to create a field to record the time lapsed between the submission timestamp and comment timestamp. However, it isn't a bad idea to spend time here and feature engineer more fields such as minute, hour, day of week, month, etc.

embeddings_index = {}
with open('glove.6B.100d.txt', encoding="utf8") as f:
    for line in f:
        word, coefs = line.split(maxsplit=1)
        coefs = np.fromstring(coefs, 'f', sep=' ')
        embeddings_index[word] = coefs
        
        
tokenizer = Tokenizer(num_words=MAX_NUM_WORDS)
tokenizer.fit_on_texts(df.body)

sequences = tokenizer.texts_to_sequences(df.body)
word_index = tokenizer.word_index
comments = pad_sequences(sequences, maxlen=MAX_SEQUENCE_LENGTH)

# Prepare Embedding Matrix
num_words = min(MAX_NUM_WORDS, len(word_index)) + 1
embedding_matrix = np.zeros((num_words, EMBEDDING_DIM))

for word, i in word_index.items():
    if i > MAX_NUM_WORDS:
        continue
    embedding_vector = embeddings_index.get(word)
    if embedding_vector is not None:
        # words not found in embedding index will be all-zeros.
        embedding_matrix[i] = embedding_vector


print(f'Found {len(word_index):,} unique tokens.')
Found 142,859 unique tokens.

To prep our comments for our Deep Learning model we will be tokenizing (indexing) each unique word found in all our comments. We then use a technique called Embedding to assign a vector of numbers to each unique token. The embedding values we are using are pretrained values and you can read more about them in this keras blog post.

pd.Series(word_index).head(10)
the      1
to       2
a        3
and      4
of       5
this     6
is       7
in       8
i        9
for     10
dtype: int64
comments
array([[   0,    0,    0, ...,  477, 1488,  130],
       [   0,    0,    0, ...,    0,   27, 4701],
       [   0,    0,    0, ...,   21,  508,  168],
       ...,
       [   0,    0,    0, ...,  757,   79, 1019],
       [   0,    0,    0, ...,    3, 2087, 1116],
       [   0,    0,    0, ...,    8, 1171,   11]])
embedding_matrix[word_index['trump']]
array([-0.15730999, -0.75502998,  0.36844999, -0.18957999, -0.16896001,
       -0.23157001, -0.22657999, -0.30186   ,  0.24372   ,  0.61896002,
        0.58995003,  0.047638  , -0.055164  , -0.70210999,  0.22084001,
       -0.69231999,  0.49419001,  1.42850006, -0.25362   ,  0.20031001,
       -0.26192001,  0.05315   , -0.048418  , -0.44982001,  0.54644001,
       -0.014645  , -0.015531  , -0.61197001, -0.91964   , -0.75279999,
        0.64842999,  1.0934    ,  0.052682  ,  0.33344999,  0.10532   ,
        0.59517002,  0.023104  , -0.37105   ,  0.29749   , -0.23683   ,
        0.079566  , -0.10326   ,  0.35885   , -0.28935   , -0.19881   ,
        0.22908001, -0.061435  ,  0.56127   , -0.017115  , -0.32868001,
       -0.78416997, -0.49375001,  0.34944001,  0.16278   , -0.061168  ,
       -1.31060004,  0.39151999,  0.124     , -0.20873   , -0.18472999,
       -0.56184   ,  0.55693001,  0.012114  , -0.54544997, -0.31409001,
        0.1       ,  0.31542999,  0.74756998, -0.47734001, -0.18332   ,
       -0.65622997,  0.40768   , -0.30697   , -0.47246999, -0.7421    ,
       -0.44977999, -0.078122  , -0.52673   , -0.70633   ,  1.32710004,
        0.26298001, -0.91000003,  0.91632003, -0.51643002,  0.20284   ,
       -0.25402001, -1.25660002,  0.20271   ,  0.92105001, -0.57573998,
       -0.15105   , -0.24831   ,  0.36673   , -0.53987002,  0.18534   ,
        0.25713   ,  0.38793999, -0.54136997,  0.67817003, -0.17251   ])

Above we can see each word token, the tokens in an array representing our comment, and the embedding for the word "trump".

features = df.drop(['score', 'score_category', 'body', 'id', 'link_id', 'subreddit', 'subreddit_id'], axis=1)
category = df['score_category'].cat.codes

# Scaling Features for Model
scaler = StandardScaler()
features = scaler.fit_transform(features)
C:\Users\Mike\.conda\envs\reddit-score-pred\lib\site-packages\sklearn\preprocessing\data.py:645: DataConversionWarning: Data with input dtype bool, int64 were all converted to float64 by StandardScaler.
  return self.partial_fit(X, y)
C:\Users\Mike\.conda\envs\reddit-score-pred\lib\site-packages\sklearn\base.py:464: DataConversionWarning: Data with input dtype bool, int64 were all converted to float64 by StandardScaler.
  return self.fit(X, **fit_params).transform(X)

We create a features column by dropping the fields we won't be using. We also create a separate array for the "score categories" which is what we are trying to predict. Finally, we scale our features using the scikit-learn "StandardScaler" method. Scaling our data makes it a lot easier for our model to optimize our loss function. There is also a third array "comments" not shown above that is an additional feature array that we will be feeding to the model.

comments_train, comments_val, feature_train, feature_val, category_train, category_val = train_test_split(
    comments, features, category, test_size=0.33, random_state=42)

Finally we split our data into a Training set and Validation set using scikit-learn "train_test_split" function. We will be creating a multi-input and single output Keras model so we have two sets of feature data (comments and features).


Model Creation

# note that we set trainable = False so as to keep the embeddings fixed
embedding_layer = Embedding(
    num_words,
    EMBEDDING_DIM,
    embeddings_initializer=Constant(embedding_matrix),
    input_length=MAX_SEQUENCE_LENGTH,
    trainable=False)

The first thing we do is setup our embedding layer. You can find out more about the layer above in this Keras Blog.

comments_input = Input(shape=(MAX_SEQUENCE_LENGTH, ), dtype='int32')
embedded_sequences = embedding_layer(comments_input)

x = Conv1D(128, 5, activation='relu')(embedded_sequences)
x = MaxPooling1D(5)(x)
x = Conv1D(128, 5, activation='relu')(x)
x = MaxPooling1D(5)(x)
x = Conv1D(128, 5, activation='relu')(x)
x = GlobalMaxPooling1D()(x)
x = Dropout(.3)(x)
# comments_prediction = Dense(5, activation='softmax')(x)
comments_output = Dense(128, activation='relu')(x)

feature_input = Input(shape=(4, ))
x = tf.keras.layers.concatenate([comments_output, feature_input])

# We stack a deep densely-connected network on top
x = Dense(250, activation='relu')(x)
x = Dropout(.3)(x)
x = Dense(125, activation='relu')(x)
x = Dropout(.3)(x)

# And finally we add the main logistic regression layer
final_prediction = Dense(5, activation='softmax')(x)

For the core of our Keras Model we will be utilizing the Functional API. It's based on the Multi Input and Multi Output example found on the Keras documentation. The first input feature will be our comments and our second input feature will be the other feature columns

model = Model([comments_input, feature_input], [final_prediction])

model.compile(
    loss='sparse_categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

model.fit([comments_train, feature_train],
          [category_train],
          batch_size=128,
          epochs=100,
          validation_data=([comments_val, feature_val], [category_val]))

The last step is to Initialize our model with the layers we created and define the loss function and gradient descent optimizer. We can also pass other metrics such as "accuracy" that Keras will track for us. Finally, we fit the model using the training and validation we created earlier. Above I have set the epochs to 100 which tells our model to loop through our training dataset 100 times, each time optimizing the weights and bias to reduce our loss.

pd.DataFrame(model.history.history)[['loss','val_loss']].plot(figsize=(15, 5))
<matplotlib.axes._subplots.AxesSubplot at 0x7ff3e41a0358>

We then graph the results of our loss. Above you can see that our train loss flattens around 35 epochs and then jumps around. Our validation loss is best at only 2 or 3 epochs. The validation loss gets worse the more we overfit our model to our training data.

model.save('reddit_score.h5')  # creates a HDF5 file 'my_model.h5'
del model  # deletes the existing model

# returns a compiled model
model = load_model('reddit_score.h5')

If we want to at this point we can choose to save our model using the "save" method. We can also load the saved model just as easily.

model = Model([comments_input, feature_input], [final_prediction])

model.compile(loss='sparse_categorical_crossentropy', optimizer='rmsprop', metrics=['accuracy'])

model.fit([comments_train, feature_train],
          [category_train],
          batch_size=128,
          epochs=3,
          validation_data=([comments_val, feature_val], [category_val]))
Train on 339278 samples, validate on 167108 samples
Epoch 1/3
339278/339278 [==============================] - 1172s 3ms/sample - loss: 1.2279 - accuracy: 0.4943 - val_loss: 1.1993 - val_accuracy: 0.4988
Epoch 2/3
339278/339278 [==============================] - 1143s 3ms/sample - loss: 1.2009 - accuracy: 0.5007 - val_loss: 1.1884 - val_accuracy: 0.5014
Epoch 3/3
339278/339278 [==============================] - 1173s 3ms/sample - loss: 1.1957 - accuracy: 0.5020 - val_loss: 1.1991 - val_accuracy: 0.4993
<tensorflow.python.keras.callbacks.History at 0x2249e8c5d68>
model.history.history
{'loss': [1.2278857953891122, 1.2008990119142613, 1.1957352068886913],
 'accuracy': [0.4942643, 0.5007133, 0.50197774],
 'val_loss': [1.1993256573285909, 1.1884006263822988, 1.1991039581740772],
 'val_accuracy': [0.49880317, 0.50144815, 0.4993238]}
pd.DataFrame(model.history.history)[['loss','val_loss']].plot(figsize=(15, 5))
<matplotlib.axes._subplots.AxesSubplot at 0x22490643cc0>

Since our model appears to do best at around 3 epochs I chose to reset the model and re-fit it with just 3 epochs.


Model Evaluation

predictions = model.predict([comments_val, feature_val])
prediction_ = np.argmax(predictions, axis = 1)

To further evaluate the model we need to make a set of predictions. Since I didn't create a holdout set of data I went ahead and made predictions on our validation data. The predict method returns an array of probabilities of each "score category". In order to choose the score with the highest probability, we leverage numpy's argmax method to grab the index of the highest probability.

confusion_matrix(category_val, prediction_)
array([[ 1082,  7290, 12311,     0,     0],
       [  412, 28688, 20640,     4,     1],
       [  621, 12996, 53664,     3,     1],
       [  246,  1031, 21744,     5,     4],
       [   51,   115,  6191,     6,     2]], dtype=int64)

To visualize our accuracy we use the scikit-learn confusion matrix. However, it's not very descriptive by itself.

def print_confusion_matrix(confusion_matrix, class_names, figsize = (10,7), fontsize=14):
    """    
    Arguments
    ---------
    confusion_matrix: numpy.ndarray
        The numpy.ndarray object returned from a call to sklearn.metrics.confusion_matrix. 
        Similarly constructed ndarrays can also be used.
    class_names: list
        An ordered list of class names, in the order they index the given confusion matrix.
    figsize: tuple
        A 2-long tuple, the first value determining the horizontal size of the ouputted figure,
        the second determining the vertical size. Defaults to (10,7).
    fontsize: int
        Font size for axes labels. Defaults to 14.
        
    Returns
    -------
    matplotlib.figure.Figure
        The resulting confusion matrix figure
    """
    df_cm = pd.DataFrame(
        confusion_matrix, index=class_names, columns=class_names, 
    )
    fig = plt.figure(figsize=figsize)
    try:
        heatmap = sns.heatmap(df_cm, annot=True, fmt="d")
    except ValueError:
        raise ValueError("Confusion matrix values must be integers.")
    heatmap.yaxis.set_ticklabels(heatmap.yaxis.get_ticklabels(), rotation=0, ha='right', fontsize=fontsize)
    heatmap.xaxis.set_ticklabels(heatmap.xaxis.get_ticklabels(), rotation=45, ha='right', fontsize=fontsize)
    plt.ylabel('True label')
    plt.xlabel('Predicted label')
    return fig
print_confusion_matrix(confusion_matrix(category_val, prediction_), df.score_category.values.unique().tolist());

The above script enhances our confusion matrix by leveraging seaborn. It provides a much clearer picture of are results. The code can be found here.

results = pd.concat([category_val, df.body], axis=1, join='inner').reset_index(drop=True)
results = pd.concat([results, pd.Series(prediction_)], axis=1)
results.columns = ['Actual', 'Comment', 'Prediction']
results.head()
Actual Comment Prediction
0 2 Does Trump think El Paso is a Republican frien... 1
1 0 The thumbnail is a great representation of Tuc... 1
2 2 So the Emperor went in procession under the ri... 1
3 2 I made a meme: https://youtu.be/D899XSiFt1s 1
4 4 &gt; No president ever worked harder than me (... 0
results[(results.Actual == 4) & (results.Prediction == 0) ].Comment.values
array(['&gt; No president ever worked harder than me (cleaning up the mess I inherited)!\n\n1. What [mess](https://i.imgur.com/aiIOGEh.png)?\n\n2. You created the "crisis" at the border, concerning a group of people that commit less violent crime than the general American public during a time when illegal immigration has been at historic lows for years now. \n\n3. The SCOTUS appointments fell into your lap. \n\n4. The ACA now has popular support from the American people. \n\n5. Most Americans do not want your stupid wall. \n\n6. You have given another huge tax break to wealth individuals and corporations, forcing the rest of us to continue to pay for their avarice. \n\n7. You have alienated our historic partnerships while coddling atrocious dictators. You have bent a knee to a nation (Russia) that has a smaller economy than Texas, California or New York... by ***themselves***. \n\n8. You have spent more time on the golf course and in front of a TV than any modern President. \n\n9. Your party was shellacked in the midterms, due to ***you***. \n\n10. You have the thinnest skin of any human being I have ever known. You hate facts if they are facts you do not like. ',
       'Lmfao.\n\nClassic GOP tactics \n\nFuck everything up and lose the elections and then relentlessly blame everything on the people trying to fix your fucking irresponsible disasters\n\n\nIf the people in these states keep falling for this shit i cant have any sympathy for their woes any longer. \n\n\nIm just fed the fuck up.\n\n\nVote these pigs out or shut the fuck up because youre hurting yourselves by voting for the GOP',
       '[There is a good argument to be made that reducing wealth inequality will make us all richer, even the rich.]  (https://www.washingtonpost.com/news/wonk/wp/2018/02/06/how-rising-inequality-hurts-everyone-even-the-rich/?utm_term=.22e77b44f275) They should stop worrying about this so much, it will be good for everyone. ',
       'Uh...a lot of Republicans (largely your Evangelicals) don’t see bigotry against LGBTQ folks as bigotry. They think it’s the *right* thing to do. It’s like asking them to confront their right leg. ',
       'Remember last year when everyone came out to mute AOC when she said the word "occupation" regarding Israel.\n\nWe\'re seeing the full effect of the AIPAC.',
       "James buchanon was 2nd worst and andrew johnson are the worst according to the survey.\n\nFor those who wanted to know.\n\n\nThe only thing keep Trump out of that spot are two categories: luck, and willingness to take risks lol\n\nEdit: based on the replies, I am sure glad I'm not the only one who had no idea who Andrew Johnson was, and confused him with Jackson. But no, they are different people.",
       '&gt;In the article published Tuesday morning, Wohl disclosed what he claimed were his plans to create “enormous left-wing properties” including Facebook and Twitter accounts before the 2020 presidential election in order “to steer the left-wing votes in the primaries to what we feel are weaker candidates compared with Trump.” \n\nEvery day that this chode is not behind bars is an affront to justice.',
       '&gt;"I know most of the Democratic primary candidates are all talking about Medicare for all. I think instead we should do Medicare at 55," Brown said during a question and answer session at the Chamber of Commerce in Clear Lake, Iowa. Brown said that reducing the age or letting people over 55 buy into the existing Medicare system early would have a better chance of getting through Congress.\n\nNOPE.\n\nThis "Medicare at 55" business is a bit too 90s for my tastes. \n\nThat leaves a gap from 26 (when people are kicked off their parents insurance) until 55 which is straight up dumb. It\'s just a needless 30 year gap, and in that time the choices people will make in regards to their health will greatly impact how much medical care they\'re going to need as they get elderly. A whole lot of family planning happening in that gap too. \n\nPreventative medicine is one of many reasons Medicare for all makes sense. 30 year olds shouldn\'t have to stress about doctor bills. Not a 36 year old, a 41 year old, or a 53 year old. Nobody should have to stress about doctor bills. People who are sick have enough to worry about.\n\nAnd for fuck\'s sake no one in America should go *bankrupt* from medical bills. Ever.\n\nSen. Brown should rethink his position. Or get the hell out of the way.',
       "Tell 'em AOC! They try to fear monger with the S-word boogeyman, but progressive policies are almost all very popular:  \n\n\n70% Medicare For All \n\n[https://thehill.com/policy/healthcare/403248-poll-seventy-percent-of-americans-support-medicare-for-all](https://thehill.com/policy/healthcare/403248-poll-seventy-percent-of-americans-support-medicare-for-all)\n\n&amp;#x200B;\n\n63% $15 Minimum Wage \n\n[https://www.nelp.org/wp-content/uploads/Minimum-Wage-Basics-Polling.pdf](https://www.nelp.org/wp-content/uploads/Minimum-Wage-Basics-Polling.pdf)\n\n&amp;#x200B;\n\n60% Tuition Free College \n\n[https://www.reuters.com/investigates/special-report/usa-election-progressives/](https://www.reuters.com/investigates/special-report/usa-election-progressives/)\n\n&amp;#x200B;\n\n81% Green New Deal \n\n[https://www.huffingtonpost.com/entry/green-new-deal-poll\\_us\\_5c169f2ae4b05d7e5d8332a5](https://www.huffingtonpost.com/entry/green-new-deal-poll_us_5c169f2ae4b05d7e5d8332a5)\n\n\t\n\n59% A 70% Top Marginal Tax Rate\n\n[https://thehill.com/hilltv/what-americas-thinking/425422-a-majority-of-americans-support-raising-the-top-tax-rate-to-70](https://thehill.com/hilltv/what-americas-thinking/425422-a-majority-of-americans-support-raising-the-top-tax-rate-to-70) \n\n&amp;#x200B;\n\n72% Expanding Social Security\n\n[https://socialsecurityworks.org/2016/10/26/new-polling-americans-are-united-in-support-of-expanding-social-security/](https://socialsecurityworks.org/2016/10/26/new-polling-americans-are-united-in-support-of-expanding-social-security/)\n\n&amp;#x200B;\n\n62% Legalizing Cannabis \n\n[http://www.pewresearch.org/fact-tank/2018/10/08/americans-support-marijuana-legalization/](http://www.pewresearch.org/fact-tank/2018/10/08/americans-support-marijuana-legalization/)\n\n&amp;#x200B;\n\n65% Reform Racist Incarceration System \n\n[https://www.politico.com/f/?id=00000161-2ccc-da2c-a963-efff82be0001](https://www.politico.com/f/?id=00000161-2ccc-da2c-a963-efff82be0001)\n\n&amp;#x200B;\n\n63% Same Sex Marriage Freedom \n\n[https://news.gallup.com/poll/234866/two-three-americans-support-sex-marriage.aspx](https://news.gallup.com/poll/234866/two-three-americans-support-sex-marriage.aspx)\n\n&amp;#x200B;\n\n69% Keep Roe vs. Wade \n\n[https://thinkprogress.org/pro-choice-america-majority-d8963029ae45/](https://thinkprogress.org/pro-choice-america-majority-d8963029ae45/)\n\n&amp;#x200B;\n\n81% Undocumented Migrant Path to Citizenship [https://www.newsweek.com/more-80-americans-want-undocumented-immigrants-have-chance-become-us-citizens-1316889](https://www.newsweek.com/more-80-americans-want-undocumented-immigrants-have-chance-become-us-citizens-1316889)",
       'So it was probably the WH trying to spin that he was done? \n\nEdit I should say someone the WH pushed at DOJ to speed things up. I’m fairly confident special counsel is almost done, but all this guessing game stuff just reeks of agendas being pushed. ',
       "Sorry. It's ours now. Be glad we still support the red taker states and kindly STFU. ",
       'I feel like Rep. Tim Ryan picked a really terrible time to do an AMA. \n\nedit: We should hit him up on twitter afterwards. Not the smartest move in terms of scheduling, but I at least appreciate the outreach efforts. @RepTimRyan',
       'Tulsi Gabbard comes from a family of conservative activists, most famous for their opposition to gay marriage in Hawaii: https://www.jacobinmag.com/2017/05/tulsi-gabbard-president-sanders-democratic-party\n\nTulsi Gabbard has said her personal views on LGBT equality haven\'t changed as recently as 2015: https://www.ozy.com/rising-stars/tulsi-gabbard-a-young-star-headed-for-the-cabinet/62604\n\nTulsi Gabbard is rated "F" by Progressive Punch for voting with Republicans, despite the strong progressive lean of her district: https://imgur.com/wDhVNKq\n\nTulsi Gabbard was nearly a part of Trump\'s cabinet at Steve bannon\'s suggestion: https://abcnews.go.com/Politics/democratic-rep-tulsi-gabbard-consideration-trump-cabinet/story?id=43696303\n\nhttps://thehill.com/homenews/administration/307106-bannon-set-up-trump-gabbard-meeting\n\nTulsi Gabbard has also been praised multiple times by Steve Bannon, Trump\'s former strategist and prolific white nationalist propagandist: http://www.hawaiinewsnow.com/story/36352314/bannon-name-drops-hawaii-congresswoman-in-national-interview/\n\nTulsi Gabbard declined to join 169 Democrats in condemning Trump for appointing Steve Bannon to his cabinet: https://mauitime.com/news/politics/why-didnt-rep-tulsi-gabbard-join-169-of-her-colleagues-in-denouncing-trump-appointee-stephen-bannon/\n\nTulsi Gabbard isn\'t anti-war. She\'s a self-described hawk against terrorists. Her narrow objections center around efforts to spread democracy: "In short, when it comes to the war against terrorists, I\'m a hawk," Gabbard said. "When it comes to counterproductive wars of regime change, I\'m a dove.": https://www.votetulsi.com/node/27796\n\nTulsi Gabbard copies the rhetoric of Republicans: Gabbard voted against condemning Bashar al-Assad, president of Syria, and was praised by conservative media for publicly challenging President Barack Obama over his refusal to use the term "Islamic extremism" when discussing terrorism: https://www.washingtontimes.com/news/2015/jan/28/tulsi-gabbard-slams-obamas-refusal-to-say-islamic-/\n\nTulsi Gabbard also copies the policy of Republicans, voting with them to block Syrian refugees: https://medium.com/@pplswar/tulsi-gabbard-voted-to-make-it-virtually-impossible-for-syrian-refugees-to-come-to-the-u-s-11463d0a7a5a\n\nTulsi Gabbard has multiple connections to Hindu nationalists: https://www.alternet.org/civil-liberties/curious-islamophobic-politics-dem-congressmember-tulsi-gabbard\n\nTulsi Gabbard frequently repeats Russian talking points and works to legitimize Assad: https://www.theguardian.com/us-news/2017/jan/26/tulsi-gabbard-bashar-al-assad-syria-democrats\n\nTulsi Gabbard used her time during the congressional investigation into Russian interference to engage in blatant whataboutism to attack the US and to deflect for Russia: https://www.youtube.com/watch?v=mkigREtfAT0\n\nTulsi Gabbard was one of only 3 representatives to not condemn Assad for gassing Syrian civilians and the only Democrat: https://www.congress.gov/bill/114th-congress/house-concurrent-resolution/121/text\n\nTulsi Gabbard has introduced legislation pushed by GOP-megadonor, Sheldon Adelson: https://www.reuters.com/article/us-usa-politics-adelson-idUSBREA2P0BJ20140326\n\nTulsi was later awarded a "Champions of Freedom" medal at Adelson\'s annual gala in 2016: https://www.thedailybeast.com/tulsi-gabbard-the-bernie-endorsing-congresswoman-who-trump-fans-can-love',
       "And people wonders why I have a hard time coming out to people. People like this asshole fuels my anxiety \n\nEdit: wow guys. I got off work and didn't expect such a positive response. I wrote this post when I was feeling depressed about life and it changes my day around. ",
       'Actions he tries to take during a State of Emergency are still subject to legal challenge in court.  He\'ll basically have to prove the "emergency" if he doesn\'t want to be stopped by **all the injunctions.**  Landowners on the border still have rights, Eminent Domain still takes a certain amount of time and legal challenge.\n\nEdit: [DOJ has warned Trump that courts are likely to block this.](https://thehill.com/homenews/administration/430122-doj-warns-white-house-that-national-emergency-will-likely-be-blocked?__twitter_impression=true)',
       'This is a good thing. We need someone to challenge Trump. After the shutdown stunt, he certainly have lost quite a few voters. ',
       'This seat was blue up until 2015, Gillibrand and Cuomo both won it. Hopefully the DCCC takes a hard look at NY-01 in the next cycle. ',
       'This is why I just laugh when people say a corporate tax is a double taxation. First of all, all taxation is "double taxation", because taxes accrue on a bunch of stuff. Is a sales tax double taxation? Are property taxes? Heck we tax Social Security as income, and that comes straight from taxes. All taxes just occur at different stages in the economy. But second, and most scary, is that thanks to various loopholes, most capital gains at the individual level aren\'t taxed at all (IIRC, [something like 2/3rds isn\'t taxed](https://www.ctj.org/fact-sheet-why-we-need-the-corporate-income-tax/)), so if corporations weren\'t taxed, and individuals weren\'t taxed, then no taxes would be placed on a lot of wealth generated for shareholders.\n\nEdit: added source.',
       '&gt;One week from today, President Trump must tell Congress whether he believes Saudi Crown Prince Mohammed Bin Salman is responsible for killing Washington Post columnist Jamal Khashoggi. However, this assumes that Trump respects a requirement from Congress.\n\nOdds of Trump meeting the deadline?\n\nEDIT: I guarantee that, in Trump\'s head, the status of Khashoggi\'s murder by MBS is "blown over". Same with Kushner.',
       "What's funny is that while O'Rourke of course is on the correct side of most/all of the major issues, he was hardly known as a flaming liberal (before going viral) being a representative from Texas. In fact:\n\n&gt;GovTrack placed O'Rourke near the ideological center of the Democratic Party; the American Civil Liberties Union gave him an 88 percent rating, while the United States Chamber of Commerce, a more conservative group, gave him a 47 percent rating.\\[131\\] According to FiveThirtyEight, which tracks Congressional voting records, O'Rourke voted in line with Donald Trump 30.1 percent of the time during the 115th Congress.\\[132\\]\n\nIt really goes to show you how utterly vile and effective the Fox News demonization machine is. In a less fucked up world, this guy could have been grudgingly voting for Beto rather than trying to murder him.",
       'Everything is “extreme” when a democrat does it. When its a republican caging babies and banning muslims, its just “policy”. ',
       'Translation: Dems know they’ve won this issue, Trump too stupid to give in.',
       'Its funny to see white nationalists so up in arms about anti-Semitism when its convenient.  \n\nEdit:I know what she said is ***not*** anti-Semitic. It was more of a comment on how that its being used against her that way by a racist minority of individuals and other beholden to political donations.',
       '&gt; When Christie was fired on Nov. 11, Flynn and former White House chief strategist Steve Bannon tossed binders full of potential personnel picks into the trash to celebrate the departure. \n\nhttps://www.politico.com/states/new-jersey/story/2017/12/06/christie-warning-about-flynn-among-reasons-i-was-fired-from-trump-transition-136432',
       'would really help if the American media stoped butchering the word "socialism". What you guys call socialist is so far from the definition ',
       'The time of the centrist neoliberal Democrat is over.  For too long has the left been told to "compromise" in service of allegedly getting things accomplished, when all that\'s been done the last 40 years is advancing the agenda of the Billionaire/banker class, increased US imperialism and interventionism, and destruction of the earth\'s climate.\n\nBernie Sanders\' time has come.  His movement has come.  Even the corporate media and all the super delegates in the world can\'t stop him this time.',
       'Back before it seemed like Trump had any chance of becoming president, my idiot cousin was wearing a MAGA hat. I thought Trump’s candidacy was such a farce, that I had my husband take a pic of me wearing that hat, huge grin on my face, and sent it to a couple friends as a joke... Not so funny now... ',
       "Why can't we pay student loans with pre-tax money?!\n\nMost decent paying jobs require a college degree. To go to college, most people HAVE to take out a student loan, usually through the government. Then, if you actually get a job, you have to pay taxes on the money you're just gonna give right back to the govt with interest. They're boning us from every direction. \n\nThen if you actually make a decent amount of money because you went to college to get s good job, you don't qualify anymore to deduct student loan interest, even though you might be paying 10k a year of your salary just in student loans.\n\nIf the money we paid back towards student loans was deducted from our tax liability it would help so much. ",
       'Steve Schmidt was complaining about liberals bullying Howard Schultz on MSNBC yesterday and all I could think was... "Really?  Your first move to position him as a potential candidate for POTUS is to play him as a victim?"',
       "My fear is that if they're really trying to bury this, that when we do eventually find out, it will just be viewed thru a political lens. Not a legal one. Much like Benghazi where the Democrats know it was BS and the Republicans think it's worse than colluding with Russians to steal an election. The report doesn't mean anything. Indictments are the only thing that the public will believe. And even then… some will never believe.",
       "It's the transparency that scares them...\n\n[McConnell, Rubio, McCain, Graham, Scott Walker all got money from one single Russian.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)\n\nMcConnell took $3.5 million\n\n&gt; [Blavatnik contributed a total of $3.5 million to a PAC associated with Senate Majority Leader Mitch McConnell, R-Ky. Blavatnik contributed $1.5 million to the GOP Senate Leadership Fund PAC in the name of *Access Industries* and another $1 million in the name of *AI-Altep Holdings* during the 2015/2016 election season. And as of September 2017, he had contributed another $1 million this year through *AI–Altep.*](https://mavenroundtable.io/theintellectualist/news/mcconnell-received-3-5m-in-campaign-donations-from-russian-oligarch-linked-firm-93UjehU6aUCtejJRBFezCw/)\n\n***\n[Michael Cohen was the Deputy Finance Chairman of the RNC](https://www.businessinsider.com/trump-lawyer-michael-cohen-rnc-finance-executive-2017-4)\n***\nA confirmed [Russian spy was moving money through the NRA to politicians](https://www.theguardian.com/us-news/2018/dec/10/maria-butina-russian-agent-nra-kremlin-infiltrate-plead-guilty)\n***\n[All Republicans in the senate, a large amount of Republicans in the house and a 4 Dems in the house](https://www.opensecrets.org/orgs/recips.php?id=d000000082&amp;cycle=2016) took money from the NRA\n\n\n\n***\n\n[The NRA and the Trump campaign were illegally coordinating ad buys.](http://fortune.com/2018/12/07/trump-campaign-and-nra-illegally-coordinated-during-presidential-election-watchdog-groups-say/)\n***\n\n[NRA May Have Illegally Coordinated With GOP Senate Campaigns](https://truthout.org/articles/nra-may-have-illegally-coordinated-with-gop-senate-campaigns/)\n***\n\n\nThere is much much more, but it's everywhere.\n\nThe thing is, with all this information out there. All that the Russians needed to get by hacking the GOP was that they knew that the money was coming from Russia (illegally) to the NRA and they have everyone on the hook for knowingly taking that money. What are your odds that the people who can't figure out how to format a PDF were talking about it in emails or other tech?\n\n***\n***\n***\n\nEXAMPLE: \n\n[Graham before December 2016](https://www.youtube.com/watch?v=3SmM_N4Zy_U)\n&gt; [Trump] He is a jackass... and he shouldn't be Commander in Chief\n\n***\n[Graham after December 2016](https://www.politico.com/story/2017/04/lindsey-graham-praises-trump-237361)\n&gt; I am like the happiest dude in America right now,” a beaming Graham said on “Fox &amp; Friends.” “We have got a president and a national security team that I’ve been dreaming of for eight years.\n\n***\n\nWhat happened between? - [Graham: Russians hacked my campaign email account](https://www.cnn.com/2016/12/14/politics/lindsey-graham-hacking-russia-donald-trump/index.html)\n***\n[And somewhere in there he took Russian money.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)",
       "Yes, Russians are spreading propaganda, but let's put the blame where it belongs. Even though ~~Dr.~~ Mr. Andrew Wakefield retracted his findings he takes a bulk of the responsibility and that Jenny McCarthy for using her fame as a crutch to spread that disinformation on a national platform\n\nEdit *it's been brought to my attention that Wakefield still stands by his BS it was the journal that published his results that retracted the paper. ",
       'To quote Doughboy from Boyz n the Hood, most Americans "...don\'t know, don\'t show, or don\'t care."\n\nYou could put the evidence right in front of their eyes and show them the pile of 200,000 civilians corpses murdered, the CIA drug money that funded it, the Washington politicians fingerprints, etc., and they\'re still just shrug and not care.\n',
       "&gt;Replying to Blaze on Twitter, Ocasio-Cortez wrote: “Thanks! Bartending + waitressing (especially in NYC) means you talk to 1000s of people over the years. **Forces you to get great at reading people + hones a razor-sharp BS detector.**\n\nIt's proof that talent is distributed evenly; it's opportunity that's hoarded. AOC broke through the wall and why the establishment cannot figure her out\n",
       "GOP Congressmen using mob lawyer's tactic when one of the mobsters testifies against the mob leader:\n\n&gt;Well he's a criminal, we can't trust him.\n\nNo shit. Everybody is a criminal involved with the mob boss. That's why we have oaths and perjury laws.",
       'Brilliant. I’m totally sold on AOC. I’m not gonna lie. Now, this support can easily be taken away if a few years from now, she’s “all talk and no action” but I just don’t get that vibe from her. She plans on getting shit done. \n\nI said years ago that nothing would really start to change until millennials got old enough to start getting into Congress. I feel validated watching AOC, and her policies, gain popularity in spades. ',
       'So they have been sweeping 1,000+ rape/sexual assault accusations under the rug every year since 2015.  I’m sure before that also.  This has to stop.  They need to completely reform the staffing and policies at these detainment centers.  Also this is just children.  I imagine there are pretty high numbers of adults also sexually assaulted.  How many people have to go through this torture for them to do something about it ?',
       'First?\n\nEdit: Woo! Here’s a meme I made to celebrate the occasion. [Melania Invites](http://imgur.com/E831lfm)',
       'Half of Texas’s new migration from other states comes from Cali, something that has been steadily turning the state bluer by the year. Texas GOP has been wailing about this for 15 years, they see it coming and there isn’t a damn thing they can do about it. \n\nMeanwhile, CA is so fucking blue and with a population of 40 million it could give up enough democratic voting residents to turn Texas, Florida and Ohio blue forever and still have blue votes to spare. ',
       'Another difference is king says this stupid racist shit DAILY and defends it, while northam did some stupid racist shit in college 35 years ago and tries to deny/distance himself from it. And we still want northam out, while gopers wanna keep king. smh.',
       'AOC just slam dunked so hard she broke the backboard ',
       "I found the disinformation about this subject incredibly disheartening.  I'm glad that Politifact got this out there.  \n\nThis new law is basically bringing an antique pre-Roe-v-Wade New York State Law into agreement with federal guidelines on how to deal with dead or dying fetuses. \n\nIf people want to have a debate fine... but for gods sake, debate with facts, not with disinformation, hatemongering, and scare tactics.",
       "I respect Obama, I admire Obama. I'm proud that I voted for him twice.\n\nBut if Obama blindly believed Putin over our own intelligence and the intelligence of our allies I would turn on Obama so fucking hard. I would be straight up calling for Obama impeachment.\n\nAnd you see folks, thats different between normal people and Trump supporters",
       "Bernie’s one of my top choices, but just remember everyone, the priority is getting behind whichever Democrat wins the primary and getting that obese, orange, criminal piece of shit out of office.\n\nThere will be an effort to polarize us between Democratic candidates just like last time, but we need to stay unified no matter what.\n\nEdit: To clarify for some, vote for whoever you want in the primary. But in the general, yes, I am saying to vote blue no matter who, and that's nothin' to be ashamed about when our opposition is the Republican Party. ;) *thumbs up*",
       "Turns out when you put a bunch of people through a rat race that has no cheese at the end, don't be surprised when they stop and want to burn the whole maze down ... signed, a burnt out millennial ",
       'He has always been trying to compete with Obama, it is pretty pathetic. He does surpass Obama in a number of different ways though. He has more bankruptcies, he has cheated on his wife more than Obama, he has lied more, played golf more, hurt the US role in the community, and numerous other ways. So yeah, he is much better at Obama when it comes to those sort of things. ',
       "No it's brilliant! First we get rid of everything energy efficient, then the renewable power wont be enough, and we'll come crawling back to coal!",
       'Saying stupid racist shit *is* free speech. Then non-idiots have the right to drown him out or kick him out of private property. \n\nThreats aren’t free speech\n\nFlashing a gun is brandishing and he should be charged. ',
       'Elijah Cummings is exactly the right man for the role he is playing today. God bless that patriot. ',
       'It\'s a classic "criminal filibuster," where you commit so much crime that the prosecuter cannot live long enough to write the report on you.',
       '&gt; Sanders has repeatedly called climate change “the single greatest threat facing our planet,” and in 2016 campaigned on cutting carbon pollution by 40 percent by 2013, in part through an aggressive carbon tax on pollution.\n\nIn 2016, Sanders was the only candidate to support a carbon tax (though [Gary Johnson had briefly done so](https://thehill.com/policy/energy-environment/292308-libertarian-candidate-backs-carbon-fee), before cowardly [walking it back](https://reason.com/blog/2016/08/26/gary-johnson-no-to-carbon-taxes-and-mand)).\n\nThis time around, several candidates support a carbon tax (including [Delaney and Gillibrand](https://thehill.com/policy/energy-environment/429342-what-key-2020-candidates-are-saying-about-the-green-new-deal)) as [record numbers of Americans are alarmed about climate change](http://climatecommunication.yale.edu/publications/americans-are-increasingly-alarmed-about-global-warming/), the [Environmental Voter Project](https://www.environmentalvoter.org/) works to [increase turnout of environmental voters](https://www.youtube.com/watch?v=yCL1luiOM7U&amp;t=2m53s), and majorities of Americans in [each political party](http://climatecommunication.yale.edu/wp-content/uploads/2018/05/Global-Warming-Policy-Politics-March-2018.pdf) and [every Congressional district](http://climatecommunication.yale.edu/visualizations-data/ycom-us-2018/?est=reducetax&amp;type=value&amp;geo=cd) supports a carbon tax.\n\nThe consensus among [scientists](http://bush.tamu.edu/istpp/scholarship/journals/ClimateScientistsPerspectives_ClimaticChange.pdf) and [economists](http://policyintegrity.org/files/publications/ExpertConsensusReport.pdf) on [carbon taxes](https://en.wikipedia.org/wiki/Carbon_tax) to mitigate climate change is similar to [the consensus among climatologists](http://climate.nasa.gov/scientific-consensus/) that human activity is responsible for global warming.',
       '&gt;\tHer dad and brother may be huge racists but that doesn’t mean that @IvankaTrump can’t use “black history month” as an opportunity to launder her brand.\n\nMy personal favorite.\n\nEdit: I lied.\n\n&gt;\tWhere does Birther theory fit into this picture sweetie[?]',
       'Love to read replies from people who don’t understand that every office gets a set amount of money and that AOC isn’t spending more, just not paying senior staff more than $80,000. ',
       'Fuck that fucking guy. \n\nFake hate crime accusations are like fake rape accusations. They give the accuser a moment in the spotlight, it destroys an innocent person\'s life and it sucks away credibility from actual victims of hate crimes and assaults. \n\nAlso I\'m seeing a lot of hypocracy from this sub over this whole issue, brushing this off as "mental illness" and shit. No, that asshole knew what he was doing. He knew the repercussions of it. He just didnt expect to be caught. Stop defending this crap. ',
       '"How can we believe anything you say? The answer is, \'We can\'t\'"\n\nUm yes you can because Cohen is literally providing proof? How fucking stupid is congresswoman Miller?',
       'Also zero talk about further Russian sanctions for violating the nuke treaty. Just more Iranian missile program nonsense.',
       'If he’s going to lie about it, just make up a number like “eleventy scrabillion dollars!”\n\nEdit: Wow, thank you for the gold, kind stranger!',
       'Two days ago, a sub on Reddit was warning its users that they are under attack by liberals/democrats, and that liberals/democrats aren\'t going to stop until conservatives are "destroyed" - with additional calls to arm themselves.  It garnered over 7,000 upvotes.  The comments further claimed that liberals/democrats want to take guns from conservatives and instead, give them to "illegals."  \n\nI am afraid this is just the tip of the iceberg.',
       "The Republican response to this is sooo fucking stupid politically. Its hilarious to watch. The tax law was at 46% approval at the midterms according to Gallup. That's back when lots of these people thought they were getting that bigger paycheck AND their tax return in tact - actually many were expecting an even bigger return still. So when they find out that's not true, Republicans respond by effectively calling them stupid for actually thinking the tax law was going to be better than this for them. 46% approval at the midterms and dropping rapidly.",
       "And this is why I'm proud to vote straight Democrat tickets. We don't need to increase the pregnancy mortality rate because some organized rape ring thinks that they have a sense of morality. ",
       '[Michael Weiss is breaking it down on twitter.](https://twitter.com/michaeldweiss/status/1100625911248957441) \n\n&gt;Important. Buzzfeed reported that Trump instructed Cohen to lie to Congress. Cohen says Trump didn’t explicitly tell him to lie but that Trump instructed him to do so “in his own way.” This is how the reporting got muddled and why Mueller demurred.\nSo this is why Mueller pushed back on Buzzfeed. It was a matter of Cohen’s interpretation of what Trump was asking; but not a direct order to lie: \nhttps://twitter.com/michaeldweiss/status/1100623794522152960/photo/2',
       "This was incredible. Not only what we the public have learned, but it is so damn refreshing seeing democrats able to actually do their job and serve the people of America, all the while handing verbal beat downs to their republican colleagues... I'm guilty of cherishing those.\n\nBut I have to say the most impressive display for me was Alexandria Ocasio-Cortez. She was so well prepared and executed her line of questioning flawlessly, without any mind for rhetoric. She meant business and commanded the attention of someone who could be a future president.",
       'I feel like compared to the current GOP platform and people who support Thee Donald giving tax dollars to a school makes you a raging socialist. \n\nSo yeah us Libs probably seem pretty left now, but the right has abandoned any notion of a middle ground so it’s natural that the other half the country follows suit ',
       '&gt;Since he took office, Trump has appointed at least eight people who identified themselves as current or former members of [Mar-a-Lago] to senior posts in his administration.\n\nPay to play, folk$.',
       "A lot of the information that is sealed and redacted is related to Russian collusion because of the sheer explosiveness if such information were found by the media.  For example, when Manafort's lawyers forgot to redact that Manafort passed polling information to the Russians (with that polling information, the Russians then knew who and where to target on social media).\n\nI can't say that this specific incident of the judge clearing the courtroom is related to Russian collusion.  But if I were to make an educated guess, I wouldn't be surprised if it is related to Russian collusion either, knowing what Manafort's lawyers redacted before.",
       'It’s very... strange to hear these old millionaire politicians chanting “USA” like this is some sport to them. \n\n',
       'Wow! I’m so glad we gave the rich that massive tax cut! They’re definitely using it to hire workers! /s',
       'Why does media still treat him like a real journalist?\n\nBesides that he hides behind the alex jones entertainment excuse, he literally campaigned for Trump.\n\nNobody should ever know, or report on anything Hannity does. The only way you should hear what he says or thinks is if you tune directly into Fux News. I hate that.\n\nIf someone like Lil Wayne, or Jay-Z, was to take a jab at Trump he\'d be told to stick to entertaining. But they are bigger and better entertainers than Hannity, so shouldn\'t they have  "News" shows too?',
       "Does Reddit, too?\n\nReddit lets Putin's disinfo bots run wild.",
       "A lot of hate in this thread. It's no coincidence that Bernie's 2016 campaign has set the stage for the 2020 DNC Election. Don't give in to the rhetoric. Push back and fight on. Feel the Bern",
       "Get your fucking kids vaccinated. It's irresponsible to people who cannot get them and rely on herd immunity",
       'She broke it down so simple that anyone with a few brain cells can understand.\n\nI doubt anyone could get lost in what she was getting at. Plain english is so effective. Perhaps other lawmakers should try to be this honest and down to earth?',
       'Anyone crying "B-b-b-b-but Obama did it!" needs to take a good hard look at themselves. National emergencies aren\'t inherently bad. This, however, is an obese con stroking his own ego and nothing more, even by his own admission.\n\nIf you\'re gonna troll, get a better argument.',
       "Do a search on politics or news and everything's been deleted except this single post. They kill anything that does not fit their leftist narrative and holy smokes anything that shits on the right gets tens of thousands of upvotes. ",
       "I will never forget watching a bunch of old white politicians - the true Good Ole Boys Club - laughing and joking around after Dr. Ford's hearing.\n\nThey never intended to help her. It was all about helping him. The fuckwads.",
       'I just don’t get trump’s motivation. He’s in his 70s and in shitty shape. What does he have?  A few more years on this mortal coil?  He’s trading the possibility to become a dictator for those few years for the certainty of being in the history books as a monster. Who makes that calculation and decides to go with it?',
       'Elizabeth Warren lied about being Native American to get into Harvard.',
       'I listen to too much conservative talk radio.  In one 5 minute span, Rush Limbaugh today talked about two issues.\n\nThe first was a statement by FBI General Counsel James Baker, whose comments in a closed-door testimony were recently released to the public.  Speaking about Hillary\'s private server, Baker said "[he] initially thought Clinton’s behavior was ‘alarming’ and ‘appalling\'” but late in the process was talked out of pursuing charges.\n\nThe second was about FBI Director Andrew McCabe, who considered trying to get the Cabinet to consider the 25th Amendment but was talked out of pursuing the matter.\n\nAccording to Limbaugh, the first FBI member to get talked out of pursuing further action against a political figure is proof that Hillary should have gone to jail.  The second FBI to get talked out of pursuing further action is proof of a silent coup which should see its originator arrested and in solitary confinement.\n\nLimbaugh:\n&gt;So, A, that doesn’t apply. B, “no reasonable prosecutor” would prosecute? Well, it turns out that a reasonable prosecutor in the FBI did want to prosecute her and had to be talked out of it by McCabe and Comey.\n\nAlso Limbaugh:\n\n&gt;Apparently, McCabe was out of control. I think Andrew McCabe is a very bad man. I mean, just speaking as a straight-up-and-down observation, he is a very bad man. Not only was this guy plotting a bureaucrat coup after Comey was fired — and that coup was to protect Comey’s conspirators. He was trying to overthrow the presidential election.\n\nWhat is the difference here?  Not charging the Democrat is proof of a conspiracy by Democrats to cheat the election.  Not charging the Republican is proof of a conspiracy by Democrats to cheat the election.\n\nNo, he didn\'t see the irony *or* the hypocrisy.',
       "AOC wants those tax returns.  Lol.  She's gonna get them too.",
       '“The only thing these people did wrong was believe the EPA when they said the air is safe. They were lied to by our government. Then they were promised this compensation, and now the rug is being pulled out from underneath them,” said attorney Michael Barasch, who represents many 9/11 illness victims.',
       "Why should she move, she didn't ask to be raped? Isn't it better to prevent additional rapes by moving her rapist into a prison cell?",
       'Hopefully this time when mcsalley loses she won’t become a senator ',
       'Seriously people? Supporting a sitting president which 45%-50% of the country does, is the same as supporting the KKK?\n\nYou upvote and accept this story, while downvoting and removing the Jussie Smollett hate crime hoax?\n\nedit: Okay people, support and approve are two different things. Seems like some people enjoy saying "omg his approval is not 45% it\'s actually only 43.5%" ... it\'s a minor detail.',
       'A tweet for everything\n\nhttps://mobile.twitter.com/realDonaldTrump/status/535441553079431168\n\n&gt; Repubs must not allow Pres Obama to subvert the Constitution of the US for his own benefit &amp; because he is unable to negotiate w/ Congress',
       'Why the **FUCK** does CNN give that shit stain air time?\n\nPA resident here, FUCK YOU SANTORUM, FUCK YOU TOOMEY',
       'Plaskett is killing it. Wonderful follow up to that clown Chip. Shows what party cares about this country and what party cares about itself. ',
       "Just like they subpoenaed Trump's taxes. This government has taught us subpoenas mean shit when they're served to the privileged :(",
       'He stated *"I want to see the American people win. I want to see America win. I don\'t care if you\'re a Democrat, independent, libertarian, Republican. Bring me your ideas,” Shultz said. “And I will be an independent person who will embrace those ideas. Because I am not, in any way, in bed with a party.”*\n\nThat\'s....that\'s not how it works. It is your job to present your ideas and policies to us. And then it\'s our job to decide whether those ideas merit our vote for you. \n\nThis strange milquetoast statement by this basic billionaire just shows how vapid he really is. He has no ideas. He has no visions. He only has platitudes, platitudes as deep as "Live, Laugh, Love". And if the media is not going to ignore him they need to point out his pathetic responses. ',
       "It isn't just Trump.\n\n[McConnell, Rubio, McCain, Graham, Scott Walker all got money from one single Russian.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)\n\nMcConnell took $3.5 million\n\n&gt; [Blavatnik contributed a total of $3.5 million to a PAC associated with Senate Majority Leader Mitch McConnell, R-Ky. Blavatnik contributed $1.5 million to the GOP Senate Leadership Fund PAC in the name of *Access Industries* and another $1 million in the name of *AI-Altep Holdings* during the 2015/2016 election season. And as of September 2017, he had contributed another $1 million this year through *AI–Altep.*](https://mavenroundtable.io/theintellectualist/news/mcconnell-received-3-5m-in-campaign-donations-from-russian-oligarch-linked-firm-93UjehU6aUCtejJRBFezCw/)\n\n***\n[Michael Cohen was the Deputy Finance Chairman of the RNC](https://www.businessinsider.com/trump-lawyer-michael-cohen-rnc-finance-executive-2017-4)\n***\nA confirmed [Russian spy was moving money through the NRA to politicians](https://www.theguardian.com/us-news/2018/dec/10/maria-butina-russian-agent-nra-kremlin-infiltrate-plead-guilty)\n***\n[All Republicans in the senate, a large amount of Republicans in the house and a 4 Dems in the house](https://www.opensecrets.org/orgs/recips.php?id=d000000082&amp;cycle=2016) took money from the NRA\n\n\n\n***\n\n[The NRA and the Trump campaign were illegally coordinating ad buys.](http://fortune.com/2018/12/07/trump-campaign-and-nra-illegally-coordinated-during-presidential-election-watchdog-groups-say/)\n***\n\n[NRA May Have Illegally Coordinated With GOP Senate Campaigns](https://truthout.org/articles/nra-may-have-illegally-coordinated-with-gop-senate-campaigns/)\n***\n\n\nThere is much much more, but it's everywhere.\n\nThe thing is, with all this information out there. All that the Russians needed to get by hacking the GOP was that they knew that the money was coming from Russia (illegally) to the NRA and they have everyone on the hook for knowingly taking that money. What are your odds that the people who can't figure out how to format a PDF were talking about it in emails or other tech?\n\n***\n***\n***\n\nEXAMPLE: \n\n[Graham before December 2016](https://www.youtube.com/watch?v=3SmM_N4Zy_U)\n&gt; [Trump] He is a jackass... and he shouldn't be Commander in Chief\n\n***\n[Graham after December 2016](https://www.politico.com/story/2017/04/lindsey-graham-praises-trump-237361)\n&gt; I am like the happiest dude in America right now,” a beaming Graham said on “Fox &amp; Friends.” “We have got a president and a national security team that I’ve been dreaming of for eight years.\n\n***\n\nWhat happened between? - [Graham: Russians hacked my campaign email account](https://www.cnn.com/2016/12/14/politics/lindsey-graham-hacking-russia-donald-trump/index.html)\n***\n[And somewhere in there he took Russian money.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)",
       'Relevant piece from *Lawfare* last month: ["What if the Obstruction Was the Collusion? On the New York Times’s Latest Bombshell"](https://www.lawfareblog.com/what-if-obstruction-was-collusion-new-york-timess-latest-bombshell)\n\nBy dangling pardons, Trump isn\'t just obstructing justice to cover up his own crimes, he is doing it to protect Russia and Vladimir Putin. Undermining all investigations into Russia\'s activities, including his own campaign\'s collusion with them, are part and parcel of his broad subordination to Russia, right alongside his efforts to reduce and slow walk sanctions.',
       "* She's young\n\n* She's intelligent \n\n* She's outspoken and easy to understand \n\n* Her ideas are hugely popular and resonate with the majority of Americans \n\n* She's progressive\n\n* She's not white \n\n* She takes no shit\n\n* She gets modern technology and makes the regressive old farts feel obsolete\n\nShe checks all the boxes of things the GOP hates. It's no wonder they're obsessed with her.",
       'I know it’s beneath them and wouldn’t end well, but I really want every single Democrat in unison to yell “you lie!“ every time Trump lies. Treat the fucker like they treated Obama. You know he would flip out.',
       "See that thing that's holding Obama up so high?  That's called a spine.  I miss having a president with one of those.",
       "Tax the shit out of these plutocrats in marginal.  I'm done.  I will never support low taxation for rich people, ever again.\n\nOh, and 100% estate tax too.  End generational Plutocracy.\n",
       "Remember when Obama asked the FBI about ongoing investigations and who they would appoint to oversee certain cases?   No?  Because he was hands off, kept out of all investigations including all the ones against Hillary, rarely even commented about it.  That is the way it is supposed to be, you find the best people to run the agency, then you let them do their jobs, you don't interfere.",
       "So frustrating.\n\nThe president's lawyer is arrested.\n\nThe president's lawyer turns on the president.\n\nThe president's lawyer implicates the president in multiple crimes.\n\nEVERY president supporter is convinced the president's lawyer is nothing but a giant lawyer.\n\nSo frustrating.",
       "Evidence of a political master at work. This is why many of us said Pelosi deserved the gavel again. \n\nFor those of you that don't get this, let's spell it out. \n\n1) There's nothing she can really do to prevent it. In fact, she knows that her posturing on this makes it *more likely* Trump will do it again. This is baiting him to do it. *Why?* She knows the last shutdown was a big win for Dems and disaster for Trump, she *doesn't mind* another shutdown. A shutdown is very good for the Dems politically. You have to understand this point to understand why she can say this. Pelosi wins either way.\n\n2) If Trump pulls another shutdown: Pelosi and Dems laugh and enjoy the continuing implosion of Trump. If he doesn't shutdown again, Pelosi looks dominant and rubs in her superior positioning and political skill. Trump is the consummate bully, he only understands power and dominance--Pelosi has his number. \n\n",
       'I heard this while I was getting ready this morning and the host really went after her hypocrisy beyond this issue as well. It was great. ',
       "As the descendent of a Confederate soldier, I'd like to point out that that flag represents the heritage of racists and losers. Losers who can't get over a loss that occured over 100 years ago and seek to oppress the votes of people just like their loser predecessors. Mitch and that flag belong in one place: a museum where they can be ignored by bored 6th graders.\n\nObligatory Gilded Edit:  Who would have thought a random angry post would've blown up so much.  Thanks stranger for the gold!",
       "Ted Cruz may be the least pleasant human being alive who isn't an actual serial killer/sexual predator type ",
       'It’s really interesting how mainstream positions such as a $15 minimum wage and Medicare for all have already become. I like Bernie but I’ll support any Democrat who gets the nomination.',
       'Can’t wait until Democrats do the same thing for healthcare and gun control. ',
       'Here is another analogy. In the 80s OPEC decided to limit oil production. Oil producing countries such as Saudi Arabia thought that less oil would increase the price of oil. I know because I worked for an oil company and the company experts said oil would reach $400.00 a barrel. For a time oil did go way up in price but then an interesting thing happened. People bought more fuel efficient cars, non OPEC countries found more oil, people found alternate forms of energy. Eventually the world became more fuel efficient and oil prices decreased much to the irritation of OPEC.\n\nHow does this relate to China buying soybeans and other products from the US?  Well, farmers think the Chinese will come groveling back to Trump and say so sorry we will pay top dollar for US products. However what we see happening is that China is turning to alternatives. They are buying products from other countries. They are changing what products they need to buy, they are also investing in other countries so they don’t need us. In a way I don’t blame them.\nThe US does have some legitimate complaints about China such as intellectual rights, open markets and so on. However you don’t remove an inflamed appendix with a sledgehammer but rather a scalpel, In the same way we need a president who can wield a scalpel toward China trade and trade with other countries and Trump is not that president. ',
       'Good, now when a dem gets elected, they can declare a national emergency on vaccinations (force immunization), opiods, guns, national debt (raise taxes)...',
       'I thought the far left was an angry mob. Why would anyone want to threaten an angry mob leader? These are trump supporters though so I guess stupidity is in character.',
       'Cohen: "When Mr Trump turned around early in the campaign and said he could shoot someone on 5th Ave... he\'s not joking. He\'s telling you the truth."\n\nEdit:\n\nWhy this matters: [Trump has threatened Cohen\'s family.](https://www.vox.com/2019/1/23/18194719/trump-michael-cohen-father-in-law-threat) ',
       "“Once again, however, Trump’s firehose of news disintegrates into white noise (pun intended) while relatively minor Democratic scandals are amplified -- because there are so few by comparison and therefore each thing is easier to remember individually.”\n\nThis is exactly the issue on top of “the Republicans and even Trump himself pile onto the Virginia Democrats as if Fox News and the GOP hadn't gaslighted the world by shrugging off Trump’s trespasses as “locker room talk” or some other form of non-threatening gaffe.”",
       'Wouldn\'t be a problem, except that a. he\'s president\\*, b. he wants the role of the guy with the little mustache, c. he\'s convinced \\[*with coordinated help from resourceful, dishonest parties*\\] 40 million other people that his fantasy is also grounded in reality. Um...\n\nIt\'s OUR job to do sanity checks for people who can\'t or refuse to; extra effort is required regarding those who consciously aim to "infect" others with their bullshit for the purposes of manipulation and advantage.\n\n*Advertising often approaches or exceeds this. Maybe it\'s just what we\'re used to, or have become, as a consequence of being such a consumption driven society?That* ***beautiful lie*** *of the perfect sandwich or drug or toy or seed or fuel. We know better, right? Kids do not. Untrained, lazy, and incompetent are effectively kids. Add expensive, competent \\[sometimes illegal\\] \'campaigns\' to this and you have a social* ***weapon***. *Just because Germany was defeated in 1945, the "war" isn\'t over for people who rejected or failed to get the news (where typically, responsible authorities would step in &lt;****you****, Mitch McConnell, GOP in congress; y\'all really fucked up this time. maybe ignorance is bliss?&gt;).*',
       '[poppinkreamjewels](https://np.reddit.com/r/politics/comments/9r3vym/cnn_to_trump_you_incited_this/e8e0l9d/)\n\n***\n\n**President Trump has incited violence against his political opponents innumerable times.^[[1]](https://www.youtube.com/watch?v=WIs2L2nUL-0)**\n\nHalf a dozen of the President\'s so called "enemies" were targeted and explosive devices were sent to their offices or residences.^[[2]](https://www.foxnews.com/politics/suspicious-package-found-at-clintons-home-police-say)\n\n* Former CIA Director^[[3]](https://www.cnn.com/2018/08/16/politics/donald-trump-brennan-security-clearance/index.html) John Brennan^[[4]](https://www.nbcnews.com/politics/white-house/trump-says-rigged-witch-hunt-prompted-him-revoke-brennan-s-n901626) sent to CNN - President Trump has called the media "The enemy of the people"^[[5]](https://www.npr.org/2018/08/04/635461307/opinion-calling-the-press-the-enemy-of-the-people-is-a-menacing-move)\n\n\n* President Bill Clinton^[[6]](https://www.nytimes.com/2016/10/01/us/politics/donald-trump-interview-bill-hillary-clinton.html) and Hillary Clinton^[[7]](https://www.nbcnews.com/politics/politics-news/trump-accuses-hillary-clinton-colluding-russia-crowd-chants-lock-her-n918836) going so far as to suggest deadly violence^[[8]](https://www.nytimes.com/2016/08/10/us/politics/donald-trump-hillary-clinton.html)\n\n\n* George Soros^[[9]](https://www.washingtonpost.com/blogs/post-partisan/wp/2018/10/10/why-trump-and-the-republicans-keep-talking-about-george-soros/?utm_term=.e1a89320752b)\n\n\n* President Obama^[[10]](https://www.nytimes.com/2018/02/21/us/politics/trump-attacks-obama-and-his-own-attorney-general-over-russia-inquiry.html)\n\n\n* Former Attorney General Eric Holder^[[11]](https://www.axios.com/eric-holder-donald-trump-be-careful-2020-election-20242a69-8cb0-4e5c-9ea5-f356ff2869a4.html)\n\n\n* Congresswoman Maxine Waters^[[12]](https://www.theguardian.com/us-news/2018/jul/07/maxine-waters-trump-progressives-california-congress)\n\n\n**The President\'s attacks against political opponents, the free press and praise for dictators**\n\nThe rhetoric and actions taken by the President - from continuing to berate the fourth estate by referring to the media as "fake news"^[[13]](https://www.washingtonpost.com/news/the-fix/wp/2018/05/22/trump-admitted-he-attacks-press-to-shield-himself-from-negative-coverage-60-minutes-reporter-says/?utm_term=.5f603dabb50e) to calling his political opponents traitors^[[14]](https://www.theatlantic.com/politics/archive/2018/02/one-dares-call-it-treason/552395/) while he attacks the judicial branch of government without remorse,^[[15]](https://www.washingtonpost.com/news/the-fix/wp/2017/04/26/all-the-times-trump-personally-attacked-judges-and-why-his-tirades-are-worse-than-wrong/?utm_term=.a7a49c427ef6) are just a few examples of his egregious attacks on democratic institutions and norms.\n\nPresident Trump has referred to the minority party as un-American for not applauding his speech.^[[16]](https://www.usatoday.com/story/news/politics/2018/02/05/trump-blasts-treasonous-democrats-not-applauding-his-state-union-address/301962002/) President Trump joked about wanting to consolidate his power like his dictator colleague in China, President Xi.^[[17]](http://www.dw.com/en/us-president-donald-trump-praises-chinas-xi-jinping-for-consolidating-grip-on-power/a-42817441) President Trump has repeatedly praised dictators including Putin, Duterte, Erdogan, and el-Sisi.^[[18]](https://www.theatlantic.com/international/archive/2018/03/trump-xi-jinping-dictators/554810/) \n\n&gt;Trump’s fondness for authoritarians may have more to do with how power is wielded than those who exercise it. It just so happens that Western governments have, for the past seven decades, mostly adhered to a system of the rule of law, which empowers institutions rather than individuals. Trump’s apparent preference is for a system in which one individual, presumably him, wields that power.\n\n&gt;Indeed, his fondness for strongmen and dictators isn’t limited to Xi Jinping or any other individual in power now. He has praised Iraq’s Saddam Hussein (while also criticizing him as “a bad guy”) for killing terrorists. “He did that so good,” Trump said in July 2016. “They didn’t read them the rights. They didn’t talk. They were terrorists. Over.”\n\n&gt;Trump also said in 2016 that Libya would be better off “if [Moammar] Gaddafi were in charge right now.” He once tweeted a quote from Benito Mussolini, the Italian fascist leader, and later defended the tweet, saying: “Mussolini was Mussolini ... It’s a very good quote. It’s a very interesting quote... what difference does it make whether it’s Mussolini or somebody else?”\n\n&gt;Trump even said China’s brutal crackdown on protesters in Tiananmen Square in 1989 “shows you the power of strength,” contrasting the Communist Party’s action with the United States, which he said “is right now perceived as weak.” Trump made those comments in 1990. When asked about the remarks during the presidential debate in 2016, Trump defended himself and appeared to take the Chinese Communist Party’s view of the events at Tiananmen. He dismissed the deadly military response as a “riot.”\n\n&gt;\n\nFollowing Saudi Arabia\'s grotesque assassination of Saudi journalist Jamal Khashoggi in Turkey^[[19]](https://np.reddit.com/r/worldnews/comments/9pszpp/australia_pulls_out_of_saudi_summit_over/e84cdp9/) President Trump encouraged assaulting reporters and journalists at a rally in Montana last week.^[[20]](https://www.washingtonpost.com/blogs/erik-wemple/wp/2018/10/19/president-trump-greenlights-assaults-on-reporters/?noredirect=on&amp;utm_term=.f11a6eb8f78b)\n\n***\n\n1) [YouTube - All the Times Trump Has Called for Violence at His Rallies](https://www.youtube.com/watch?v=WIs2L2nUL-0)\n\n2) [Fox News - Explosive devices mailed to Obama, Hillary Clinton, others prompt security scare](https://www.foxnews.com/politics/suspicious-package-found-at-clintons-home-police-say)\n\n3) [CNN - Trump blasts former CIA Director John Brennan as \'loudmouth, partisan, political hack\'](https://www.cnn.com/2018/08/16/politics/donald-trump-brennan-security-clearance/index.html)\n\n4) [NBC - Trump ties \'rigged witch hunt\' to decision to revoke Brennan\'s security clearance](https://www.nbcnews.com/politics/white-house/trump-says-rigged-witch-hunt-prompted-him-revoke-brennan-s-n901626)\n\n5) [NPR - Opinion: Calling The Press The Enemy Of The People Is A Menacing Move](https://www.npr.org/2018/08/04/635461307/opinion-calling-the-press-the-enemy-of-the-people-is-a-menacing-move)\n\n6) [New York Times - Donald Trump Opens New Line of Attack on Hillary Clinton: Her Marriage](https://www.nytimes.com/2016/10/01/us/politics/donald-trump-interview-bill-hillary-clinton.html)\n\n7) [NBC - Trump accuses Hillary Clinton of colluding with Russia as crowd chants \'lock her up\'](https://www.nbcnews.com/politics/politics-news/trump-accuses-hillary-clinton-colluding-russia-crowd-chants-lock-her-n918836)\n\n8) [New York Times - Donald Trump Suggests ‘Second Amendment People’ Could Act Against Hillary Clinton](https://www.nytimes.com/2016/08/10/us/politics/donald-trump-hillary-clinton.html)\n\n9) [Washington Post - Why Trump and the Republicans keep talking about George Soros](https://www.washingtonpost.com/blogs/post-partisan/wp/2018/10/10/why-trump-and-the-republicans-keep-talking-about-george-soros/?utm_term=.e1a89320752b)\n\n10) [New York Times - Trump Attacks Obama, and His Own Attorney General, Over Russia Inquiry](https://www.nytimes.com/2018/02/21/us/politics/trump-attacks-obama-and-his-own-attorney-general-over-russia-inquiry.html)\n\n11) [Axios - Trump says Eric Holder "better be careful what he\'s wishing for"](https://www.axios.com/eric-holder-donald-trump-be-careful-2020-election-20242a69-8cb0-4e5c-9ea5-f356ff2869a4.html)\n\n12) [The Guardian - \'You better shoot straight\': how Maxine Waters became Trump\'s public enemy No 1](https://www.theguardian.com/us-news/2018/jul/07/maxine-waters-trump-progressives-california-congress)\n\n13) [Washington Post - Trump admitted he attacks press to shield himself from negative coverage, Lesley Stahl says](https://www.washingtonpost.com/news/the-fix/wp/2018/05/22/trump-admitted-he-attacks-press-to-shield-himself-from-negative-coverage-60-minutes-reporter-says/?utm_term=.5f603dabb50e)\n\n14) [The Atlantic - He Dares Call It Treason](https://www.theatlantic.com/politics/archive/2018/02/one-dares-call-it-treason/552395/)\n\n15) [Washington Post - All the times Trump personally attacked judges — and why his tirades are ‘worse than wrong’](https://www.washingtonpost.com/news/the-fix/wp/2017/04/26/all-the-times-trump-personally-attacked-judges-and-why-his-tirades-are-worse-than-wrong/?utm_term=.a7a49c427ef6)\n\n16) [USA Today - Trump blasts \'treasonous\' Democrats for not applauding at his State of the Union address](https://www.usatoday.com/story/news/politics/2018/02/05/trump-blasts-treasonous-democrats-not-applauding-his-state-union-address/301962002/)\n\n17) [Deutsche Welle - US President Donald Trump praises China\'s Xi Jinping for consolidating grip on power](http://www.dw.com/en/us-president-donald-trump-praises-chinas-xi-jinping-for-consolidating-grip-on-power/a-42817441) \n\n18) [The Atlantic - Nine Notorious Dictators, Nine Shout-Outs From Donald Trump](https://www.theatlantic.com/international/archive/2018/03/trump-xi-jinping-dictators/554810/)\n\n19) [PK - Saudi Arabia\'s assassination of a journalist and the world\'s response](https://np.reddit.com/r/worldnews/comments/9pszpp/australia_pulls_out_of_saudi_summit_over/e84cdp9/) \n\n20) [Washington Post - President Trump greenlights assaults on reporters](https://www.washingtonpost.com/blogs/erik-wemple/wp/2018/10/19/president-trump-greenlights-assaults-on-reporters/?noredirect=on&amp;utm_term=.f11a6eb8f78b)\n',
       "[McConnell, Rubio, McCain, Graham, Scott Walker all got money from one single Russian.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)\n\nMcConnell took $3.5 million\n\n&gt; [Blavatnik contributed a total of $3.5 million to a PAC associated with Senate Majority Leader Mitch McConnell, R-Ky. Blavatnik contributed $1.5 million to the GOP Senate Leadership Fund PAC in the name of *Access Industries* and another $1 million in the name of *AI-Altep Holdings* during the 2015/2016 election season. And as of September 2017, he had contributed another $1 million this year through *AI–Altep.*](https://mavenroundtable.io/theintellectualist/news/mcconnell-received-3-5m-in-campaign-donations-from-russian-oligarch-linked-firm-93UjehU6aUCtejJRBFezCw/)\n\n***\n[Michael Cohen was the Deputy Finance Chairman of the RNC](https://www.businessinsider.com/trump-lawyer-michael-cohen-rnc-finance-executive-2017-4)\n***\nA confirmed [Russian spy was moving money through the NRA to politicians](https://www.theguardian.com/us-news/2018/dec/10/maria-butina-russian-agent-nra-kremlin-infiltrate-plead-guilty)\n***\n[All Republicans in the senate, a large amount of Republicans in the house and a 4 Dems in the house](https://www.opensecrets.org/orgs/recips.php?id=d000000082&amp;cycle=2016) took money from the NRA\n\n\n\n***\n\n[The NRA and the Trump campaign were illegally coordinating ad buys.](http://fortune.com/2018/12/07/trump-campaign-and-nra-illegally-coordinated-during-presidential-election-watchdog-groups-say/)\n***\n\n[NRA May Have Illegally Coordinated With GOP Senate Campaigns](https://truthout.org/articles/nra-may-have-illegally-coordinated-with-gop-senate-campaigns/)\n***\n\n\nThere is much much more, but it's everywhere.\n\nThe thing is, with all this information out there. All that the Russians needed to get by hacking the GOP was that they knew that the money was coming from Russia (illegally) to the NRA and they have everyone on the hook for knowingly taking that money. What are your odds that the people who can't figure out how to format a PDF were talking about it in emails or other tech?\n\n***\n***\n***\n\nEXAMPLE: \n\n[Graham before December 2016](https://www.youtube.com/watch?v=3SmM_N4Zy_U)\n&gt; [Trump] He is a jackass... and he shouldn't be Commander in Chief\n\n***\n[Graham after December 2016](https://www.politico.com/story/2017/04/lindsey-graham-praises-trump-237361)\n&gt; I am like the happiest dude in America right now,” a beaming Graham said on “Fox &amp; Friends.” “We have got a president and a national security team that I’ve been dreaming of for eight years.\n\n***\n\nWhat happened between? - [Graham: Russians hacked my campaign email account](https://www.cnn.com/2016/12/14/politics/lindsey-graham-hacking-russia-donald-trump/index.html)\n***\n[And somewhere in there he took Russian money.](https://www.dallasnews.com/opinion/commentary/2018/05/08/putins-proxies-helped-funnel-millions-gop-campaigns)",
       'AOC is all style, no substance. \n\nHer Green New Deal had ridiculous policies and was unbelievably expensive. She wants to eliminate nuclear energy use, despite it being the bedrock of any renewable energy plan. Estimates have put the Green New Deal at costing 13 TRILLION dollars. \n\nShe claimed people in NY were working 100 hours a week and not able to feed their families. Working 100 hours a week at minimum wage, as you get overtime pay over 40 hours, nets you 1,755 a week, or $91,260 a year. The median wage in the USA is $62,175 a year. \n\nHer 70% tax doesn’t affect the people who it’s aimed at. No one who earns over $10,000,000 can have it taxed as income. It’s capital gains, which she hasn’t made mention to at all. ',
       "&gt; The reports show that DeVos is invested heavily in adoption agency corporations that have been receiving and adopting out the migrant children that are being separated from their parents at the border\n\npretty much trumpian motivation for appointments right there. don't even try to argue there's no pay to play.",
       "Donald Trump Jr. retweeted this, demonstrating a lack of reading comprehension and highlighting the lack of judgment Cohen testified to:\n\n\n&gt;Incredible to see all the hubris drained from Cohen. I've been personally screamed at by Cohen on the phone before and know how much bravado he once had. This is a man with nothing left, with no reason to lie or obfuscate at all. Humbling, in its way.\n\nhttps://twitter.com/vermontgmg/status/1100787323640397824",
       'This fucking idiot literally spends 60% of his time watching television.\n\nImagine how your brain and thinking would look if you watched between 6-10 hours of foxnews a day. Thats what this inbecile does.\n\nIf you tally up the lunch time, and assume 30% of his travel/event time is campaign rallies, this means hes spending 75% of his time literally either at lunch, at a campaign rally, or watching tv.',
       "Let's be honest, it's a complete joke that Elizabeth Warren claims to be Native American when she literally has one Native American ancestor going back between 6-10 generations ago. I literally have the same thing in my family, yet no one here is lying to themselves and saying their Native.\n\n",
       '&gt;It was revealed on Thursday that those phone calls actually involved NASCAR CEO Brian France and real estate developer/long-time Trump ally Howard Lorber, leading the president to declare that the meeting with Russians for “dirt” on Hillary Clinton was “innocent” after all.\n\nOf *course* NASCAR gets brought into this white-trash circus side show. Jesus, lol.',
       'Hot take, whenever Repubs accuse the patriot left of anything, you can probably bet your bottom dollar that they are projecting their corruption. ',
       'I mean I live in Arizona, everything seems fine to me. If you talk to anyone I know here in Arizona, we would all agree we have no idea why border security is so high on the list for some Americans. I fucking love Mexico personally, and there really don’t seem to be many problems that’s Iv personally seen living here. So idk 🤷🏻\u200d♂️ I guess some people are just inherently scared of their told to be scared of lmao.\n\nEdit: wow guys thanks, I knew I wasn’t the only one who felt this way! \n\n',
       'My boss and I have gotten nothing done today. I’ll hear him laugh or say “DAMN” from his office whenever shit hits the fan.',
       "We really can't consider it a news story every time someone says Trump is racist.  Ain't nobody got time for that.",
       'Because the alternative policy is do nothing, let the sea levels rise, further ecological collapse. \n\nAnd have walls, drones, borders and an authoritarian police state to kill or enslave the refugees. When someone calls the Green New Deal unrealistic, and doesn’t have any better options. That’s what they’re implicitly arguing is a desirable outcome.',
       'We stopped being a Democratic Republic when the Supreme Court awarded George W Bush the Presidency in 2000.  ',
       'The same people who thought Obama was lazy support this guy. How does that make sense? ',
       'So let me get this straight. I’m supposed to be mad at the democrats for trying to put legislation forward to better working class Americans and the planet? This coming from the party that had full control of government for two years and couldn’t push their agenda if it hit them in the fucking head. Appeal Obama care.  Nope. Build a wall. Nope. Ban Muslims and other brown people. Nope.\n\nLet’s not walk into the republican trap. Let’s go on the offensive. We produced a bill. Just because it doesn’t pass doesn’t mean it’s a failure. Failure is not trying. Therefore the republicans are the failures, up and until they can produce a comprehensive alternative that gets passed. \n\nThey can’t. So let’s make that the narrative. \n\n',
       '&gt; The Associated Press, however, reported that it will include only about $1.5 billion of the $5.7 billion that President Donald Trump has demanded for a wall. \n\nLol 1.5 is less than Dems originally offered before the first shutdown  (1.6)',
       '&gt;Investigators found that from 1999 to 2005, Mr. Epstein, a former hedge fund manager with powerful friends, including **President Trump and former President Bill Clinton,** lured girls **as young as 14 or 15 years old** into his mansions in Palm Beach, New York and the Virgin Islands. \n\n&gt;He paid them cash to engage in nude massages, masturbation and oral sex. In some instances, he asked girls to recruit other girls into his sex ring, the accusers told police.\n\n&gt;Federal prosecutors had initially drafted a 53-page indictment against Mr. Epstein, but under the deal negotiated in 2008, he pleaded guilty to lesser state charges of soliciting a minor for prostitution and served 13 months at the Palm Beach County Stockade. \n\n**While there, Mr. Epstein was allowed to leave custody and work out of his office six days a week.**\n\nTLDR: Raping, trafficking, and pimping out hundreds of CHILDREN for over 6 years got him -13 months- in prison WHERE HE WAS RELEASED 6 DAYS A WEEK TO WORK AT HIS OFFICE.',
       "Susan Collins lied her ass off. She gave her lying 45 minute speech about how Kavanaugh promised to protect Roe v Wade and a woman's right to choose and at the first opportunity, he proved he lied. He proved Collins lied.  \n\nShe lied to Maine voters and now she's toast in 2020.  ",
       "The Republicans kept accusing them of being liberal fake news, so now they're welcoming in Republicans to spew out fake news.\n\nRemember when CNN was legit unbiased? How their whole deal was just 24 hour news coverage? How did things get so bad",
       'So he absolutely believes they did but can’t say because multiple members are Of the Trump admin are Saudis bitch... just like the Bush admin.\n\nHomeland Sec/FBI/CIA are still covering shit up about the Florida links to the family who housed a highjacker in Florida who went to flight school.',
       'LOL wtf is this.\n\n&amp;#x200B;\n\nWhat is up with Republican old white dudes just crying all the time in front of Congress? Jesus christ.',
       '"MAGA hats are the new white hood"\n\nWelp, here\'s a Democrat in actual white hood',
       'What kind of a person assumes a call to choose "love over hate" is a direct attack on them?',
       'Yea he but once they know Democrats want it, Republican support will magically evaporate. We should let republicans think they thought of it. Call it the “George Soros/Clinton defundment act.”',
       "I remember when the Clinton's left the White House. Bush's transition team claimed Hillary took furniture and left the place a mess. Wait till Trump leaves. It's going to be the biggest dine and dash in history. He's going to leave everything jammed up, unpaid, and owed. ",
       '&gt;Washington Posts @RoigFranzia says Bezos\' team thinks it\'s possible that the text leaks were politically motivated and that a "government entity" accessed the Bezos texts \n\nhttps://twitter.com/ndrew_lawrence/status/1093715333079318530\n\nSo who is the government entity. Is it an intelligence agency? Saudi? US? Russian?',
       'I am really hopeful that this sub doesn\'t eat itself alive like it did in 2015/2016.\n\n*Especially* now that we know just how extensive bad faith accounts are - foreign and domestic.\n\nIt is perfectly healthy to have discourse. It\'s okay to talk about the opinions of the DNC, candidates\' negatives and positives, etc.. But that discourse needs to be respectful, constructive, and at least with a sense of **unity** in mind at the end of the day. No one should be shoving support down peoples\' throats.\n\nBe vigilant for these divisive accounts and comments. It\'s going to be a hell of a field, and I\'m excited to see these candidates lay out their campaigns.\n\nEdit: To anyone that wasn\'t on this sub in 2016, \n\n[This is what I mean.](https://old.reddit.com/r/politics/comments/4393km/no_reporters_allowed_at_hillarys_wall_st_speeches/) 20,000 upvotes for a dailycaller article, FFS.  \n\n[Oh wow, 26k for another dailycaller article](https://old.reddit.com/r/politics/comments/4durh2/clinton_campaign_uses_noise_machine_to_block/)  \n\n[20k for Fox news](https://old.reddit.com/r/politics/comments/4hwwhm/romanian_hacker_guccifer_i_breached_clinton/)  \n\n[18k for Washingtontimes](https://old.reddit.com/r/politics/comments/4ly7eq/hillary_clinton_yet_to_hold_single_press/)\n\n[23k Upvotes for Breitbart](https://old.reddit.com/r/politics/comments/4mamz7/hillary_clinton_posted_names_of_hidden/)\n\n[24k for "SputnikNews"](https://old.reddit.com/r/politics/comments/4m3fd4/snowden_slams_us_for_ignoring_hillary_clintons/) Literally a Russian government-owned news source.',
       "Bernie is an upstanding, compassionate person. He has shown he walks the walk standing up for the American people. He has new ideas that can really change our country for the better. I see kindness and experience in him. He's certainly not too old, and seems to be in great health, and in great spirits!  \n\nI hope he does well, and if not I'll be voting for the majority Democrat candidate, because as much as I love Bernie, we need to not let 2016 repeat and have votes go away from fighting the corrupt Republicans. \n\nHe's not just another old white man, and it's really sad to see this repeated. He is a progressive in every way, and has done more for non-white people and women than many in politics! \n\nI would love to see Warren and Bernie together somehow in the end!",
       'Genuine Curiosity: How does this work? AOC is not personally paying for staffers. Is she given a total budget for her staff, and is simply evening out the pay more/hiring fewer people than other members of congress?',
       "It's brilliant, he is making all Americans pay for the wall, and will declare another national emergency to declare all of us Mexicans\n\nEdit: My gold cherry popped, thanks stranger. ",
       "I attended Fordham University. I'm gonna go donate for the first time since graduation as a thank you for confirming this. ",
       "So, I've been occupied all day, just getting to look at the news right now...\n\nIt's safe to say Michael Cohen is going to be dropping bombs tomorrow, right? \n\nEdit: As in testimony along with supporting documents on multiple crimes that will possibly initiate impeachment proceedings?",
       "AOC is a noble martyr. She wears bright colors and wants attention. Not because she's trying to evade scrutiny, but because scrutiny is exactly what she's trying to encourage. Then she speaks in plain language in a very rational way. She makes the political process more accessible.\n\nNo wonder she has so many enemies; she's shining light in the dark, insidious crevices of our political system. I'm proud of anyone whom stands up for transparency. It's no easy task.",
       "A post I saw on a conservative sub on a post about British citizen having her citizenship revoked because she joined w/ ISIS, someone asked if this was hypocritical because they criticized Obama for Anwar al Alwaki:\n\n&gt;Meh. I feel like we only cared about this because we could bash Obama with it. Do you truly care that someone collaborating with terrorists was killed without a trial? I don't. I hope this person gets droned and trump posts a dank meme of it on Twitter. \n\nThey're not arguing in good faith it's a mistake to think they are",
       'Just donated $250\n\nGo bernie go!',
       "How do you ensure UBI doesn't result in mass inflation? If everyone gets a free $1000 a month, what is to stop the market from jacking up prices?"],
      dtype=object)

Exploring the results where our model was most wrong is a good way to figure out where we can tweak our model to improve results. Above I queried comments where our model thought it would be a downvoted comment but the comment ended up with 50+ upvotes. Another option would be to query results where the model had high confidence in a particular category but was wrong in its prediction.


Summary

Keras is a high level API yet it still offers the flexibility to create dynamic deep learning models. Our initial results may not be state of the art but predicting comment score is a very complex problem with countless dependencies that could affect it.

Resources:

  • https://www.johnwittenauer.net/deep-learning-with-keras-structured-time-series/
  • https://www.tensorflow.org/alpha/tutorials/keras/feature_columns
  • https://realpython.com/python-keras-text-classification/
  • https://blog.keras.io/using-pre-trained-word-embeddings-in-a-keras-model.html
  • https://github.com/titu1994/keras-one-cycle
  • https://blog.goodaudience.com/introduction-to-1d-convolutional-neural-networks-in-keras-for-time-sequences-3a7ff801a2cf
  • https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1
  • https://www.youtube.com/watch?v=FmpDIaiMIeA
  • https://end-to-end-machine-learning.teachable.com/courses/how-deep-neural-networks-work/lectures/9533961
  • https://api.pushshift.io/reddit/search/submission/?ids=9yuili
  • https://github.com/titu1994/keras-one-cycle
  • http://colah.github.io/posts/2015-08-Understanding-LSTMs/
  • https://keras.io/getting-started/functional-api-guide/#multi-input-and-multi-output-models
  • http://ruder.io/text-classification-tensorflow-estimators/
  • https://www.tensorflow.org/guide/datasets#consuming_csv_data
  • https://medium.freecodecamp.org/how-to-transfer-large-files-to-google-colab-and-remote-jupyter-notebooks-26ca252892fa
  • https://towardsdatascience.com/intuitively-understanding-convolutions-for-deep-learning-1f6f42faee1