Spaces:
Runtime error
Runtime error
chaytanc
commited on
Commit
·
8e1c327
1
Parent(s):
e317979
ok demo
Browse files- app.py +125 -0
- generate_narratives.py +249 -0
- sim_scores.py +74 -0
- trumptweets1205-127.csv +354 -0
app.py
ADDED
@@ -0,0 +1,125 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import gradio as gr
|
2 |
+
from generate_narratives import Narrative_Generator
|
3 |
+
from sentence_transformers import SentenceTransformer
|
4 |
+
import pandas as pd
|
5 |
+
from mlx_lm import load
|
6 |
+
from sim_scores import Results
|
7 |
+
from flask import Flask, jsonify
|
8 |
+
|
9 |
+
# Global variables to store results
|
10 |
+
formatted_narratives = None
|
11 |
+
clustered_tweets = None
|
12 |
+
|
13 |
+
dataset_options = {
|
14 |
+
"Trump Tweets": "trumptweets1205-127.csv",
|
15 |
+
"Dataset 2": "path/to/dataset2.csv",
|
16 |
+
"Upload Your Own": None
|
17 |
+
}
|
18 |
+
|
19 |
+
narrative_options = {
|
20 |
+
"0": "Russia is an ally",
|
21 |
+
"1": "The 2020 election was stolen"
|
22 |
+
}
|
23 |
+
|
24 |
+
summary_model, tokenizer = load("mlx-community/Mistral-Nemo-Instruct-2407-4bit")
|
25 |
+
embedding_model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')
|
26 |
+
|
27 |
+
def run_narrative_generation(selected_dataset, uploaded_file, num_narratives, progress=gr.Progress()):
|
28 |
+
progress(0, desc="Generating narratives...")
|
29 |
+
file_path = dataset_options.get(selected_dataset, None)
|
30 |
+
if selected_dataset == "Upload Your Own":
|
31 |
+
if uploaded_file is None:
|
32 |
+
return "Please upload a file.", None
|
33 |
+
file_path = uploaded_file.name
|
34 |
+
|
35 |
+
generator = Narrative_Generator(summary_model, tokenizer, embedding_model, file_path, num_narratives)
|
36 |
+
try:
|
37 |
+
json_narratives, _, clustered_tweets = generator.generate_narratives(progress=progress)
|
38 |
+
formatted_narratives = generator.get_html_formatted_outputs(json_narratives)
|
39 |
+
|
40 |
+
html_output = "<div id='narratives-container' style='display: flex; flex-direction: column; gap: 10px;'>"
|
41 |
+
for narrative_html in formatted_narratives:
|
42 |
+
html_output += narrative_html
|
43 |
+
html_output += "</div>"
|
44 |
+
# Store the results globally
|
45 |
+
|
46 |
+
formatted_narratives = json_narratives
|
47 |
+
clustered_tweets = clustered_tweets
|
48 |
+
|
49 |
+
return html_output, clustered_tweets
|
50 |
+
# Show error in UI
|
51 |
+
except ValueError as e:
|
52 |
+
return str(e), None
|
53 |
+
|
54 |
+
|
55 |
+
def trace_narrative(selected_dataset, narrative, max_tweets):
|
56 |
+
"""
|
57 |
+
Runs the ranking function and returns the top k similar tweets to the selected narrative.
|
58 |
+
"""
|
59 |
+
# Make sure the file is handled correctly
|
60 |
+
# file_path = "trumptweets1205-127.csv"
|
61 |
+
file_path = dataset_options.get(selected_dataset, None)
|
62 |
+
|
63 |
+
# Load the Results object and rank the narrative
|
64 |
+
results = Results(embedding_model, file_path, max_tweets, [narrative])
|
65 |
+
top_k_results = results.print_top_k(k=10, narrative_ind=0)
|
66 |
+
|
67 |
+
# Format the result as a readable string or table
|
68 |
+
formatted_output = f"**Top 10 Most Similar Tweets to Narrative**: `{narrative}`\n\n"
|
69 |
+
|
70 |
+
if isinstance(top_k_results, pd.DataFrame):
|
71 |
+
formatted_output += top_k_results.to_markdown(index=False)
|
72 |
+
return formatted_output
|
73 |
+
|
74 |
+
# Gradio UI Setup
|
75 |
+
with gr.Blocks() as iface:
|
76 |
+
with gr.Tab("Narrative Generator"):
|
77 |
+
narrative_generator_interface = gr.Interface(
|
78 |
+
fn=run_narrative_generation,
|
79 |
+
inputs=[
|
80 |
+
gr.Dropdown(list(dataset_options.keys()), value="Trump Tweets", label="Select Dataset"),
|
81 |
+
gr.File(label="Upload Text File (Optional)"),
|
82 |
+
gr.Slider(1, 10, step=1, value=5, label="Number of Narratives"),
|
83 |
+
],
|
84 |
+
outputs=[
|
85 |
+
gr.Markdown(label="Generated Narratives"),
|
86 |
+
],
|
87 |
+
title="Trump Narrative Generator",
|
88 |
+
description="Choose a dataset or upload a file. Select the number of narratives, then click 'Run'.",
|
89 |
+
theme="huggingface"
|
90 |
+
)
|
91 |
+
|
92 |
+
with gr.Tab("Trace Narrative"):
|
93 |
+
trace_narrative_interface = gr.Interface(
|
94 |
+
fn=trace_narrative,
|
95 |
+
inputs=[
|
96 |
+
# gr.Dropdown([["Russia is an ally", "The 2020 election was stolen"]], value="Narrative", label="Select Narrative"),
|
97 |
+
gr.Dropdown(list(dataset_options.keys()), value="Trump Tweets", label="Select Dataset"),
|
98 |
+
gr.Textbox(label="Narrative", value="e.g. Russia is an ally"),
|
99 |
+
gr.Slider(1, 1000, step=1, value=10, label="Max Tweets to Process"),
|
100 |
+
],
|
101 |
+
outputs=[
|
102 |
+
gr.HTML(label="Top 10 Similar Tweets"),
|
103 |
+
gr.JSON(label="Clustered Tweets")
|
104 |
+
],
|
105 |
+
title="Rank Narrative with Tweets",
|
106 |
+
description="Select a narrative and trace the most similar tweets to that narrative.",
|
107 |
+
theme="huggingface"
|
108 |
+
)
|
109 |
+
|
110 |
+
def get_narratives():
|
111 |
+
if formatted_narratives is not None and clustered_tweets is not None:
|
112 |
+
return jsonify({
|
113 |
+
"generated_narratives": formatted_narratives, # This is the narratives output from the function
|
114 |
+
"clustered_tweets": clustered_tweets # This is the corresponding tweets list
|
115 |
+
})
|
116 |
+
else:
|
117 |
+
return jsonify({"error": "No narratives generated yet"}), 400
|
118 |
+
|
119 |
+
gr.HTML("""
|
120 |
+
<link rel="stylesheet" type="text/css" href="assets/style.css">
|
121 |
+
<script src="assets/script.js"></script>
|
122 |
+
""")
|
123 |
+
|
124 |
+
# iface.launch(share=False, inbrowser=True, server_name="localhost", server_port=7860, prevent_thread_lock=True)
|
125 |
+
iface.launch()
|
generate_narratives.py
ADDED
@@ -0,0 +1,249 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
from mlx_lm import generate
|
4 |
+
from sklearn.cluster import KMeans
|
5 |
+
# from sentence_transformers import SentenceTransformer, util
|
6 |
+
from transformers import pipeline
|
7 |
+
|
8 |
+
from langchain_core.output_parsers import JsonOutputParser
|
9 |
+
from langchain_core.prompts import PromptTemplate
|
10 |
+
from pydantic import BaseModel, Field
|
11 |
+
from langchain_huggingface import HuggingFacePipeline
|
12 |
+
from langchain_community.llms.mlx_pipeline import MLXPipeline
|
13 |
+
# from langchain_core.exceptions import OutputParserException
|
14 |
+
# from langchain.output_parsers import OutputFixingParser
|
15 |
+
# from langchain_openai import ChatOpenAI
|
16 |
+
# from langchain_ollama import ChatOllama
|
17 |
+
import json
|
18 |
+
import re
|
19 |
+
from dotenv import load_dotenv
|
20 |
+
|
21 |
+
load_dotenv()
|
22 |
+
# Simple prompt
|
23 |
+
SYS_PROMPT = "You should find the top two dominant narratives in the following batch of tweets. Do not cite which tweets correspond to the narratives, just supply the narrative summaries. You must always return valid JSON fenced by a markdown code block. Do not return any additional text. "
|
24 |
+
# OUTPUT_PARSE_PROMPT = "Structure your response as a JSON object with {'narrative 1': value, 'narrative 2', value}"
|
25 |
+
|
26 |
+
smallest_batch_size = 10
|
27 |
+
|
28 |
+
class Narrative_Generator():
|
29 |
+
def __init__(self, summary_model, tokenizer, embedding_model, file, num_narratives):
|
30 |
+
self.summary_model = summary_model
|
31 |
+
self.tokenizer = tokenizer
|
32 |
+
self.embedding_model = embedding_model
|
33 |
+
self.num_narratives = num_narratives
|
34 |
+
|
35 |
+
# Try loading the file, handle errors gracefully
|
36 |
+
try:
|
37 |
+
self.df = pd.read_csv(file, encoding="utf-8", encoding_errors="ignore")
|
38 |
+
except FileNotFoundError:
|
39 |
+
raise ValueError(f"Error: The file '{file}' was not found.")
|
40 |
+
except pd.errors.EmptyDataError:
|
41 |
+
raise ValueError(f"Error: The file '{file}' is empty or corrupted.")
|
42 |
+
except Exception as e:
|
43 |
+
raise ValueError(f"Error loading file '{file}': {e}")
|
44 |
+
# You could use preprocess_context_window here instead if data is too big...
|
45 |
+
|
46 |
+
def preprocess_context_window(self, file):
|
47 |
+
if file.endswith(".txt"):
|
48 |
+
with open(file, "r") as f:
|
49 |
+
#TODO batch tweets together somehow -- append previously found narratives to the new batch of tweets? Largest batch possible? very small frequent chunks? Enough to get a general sense of thoughts? Very small then aggregate up multiple times?
|
50 |
+
pass
|
51 |
+
elif file.endswith(".csv"):
|
52 |
+
df = pd.read_csv(file, encoding='utf-8', encoding_errors='ignore')
|
53 |
+
# Create n_tweets / smallest_batch_size chunks of tweets / data
|
54 |
+
chunks = self.chunk_it(df, smallest_batch_size)
|
55 |
+
return chunks
|
56 |
+
|
57 |
+
def chunk_it(self, array, k):
|
58 |
+
return np.array_split(array, np.ceil(len(array) / k).astype(int))
|
59 |
+
|
60 |
+
def create_prompt(self, tokenizer, user_prompt):
|
61 |
+
messages = [
|
62 |
+
{"role": "system", "content": SYS_PROMPT},
|
63 |
+
{"role": "user", "content": user_prompt},
|
64 |
+
]
|
65 |
+
|
66 |
+
prompt = tokenizer.apply_chat_template(
|
67 |
+
messages,
|
68 |
+
tokenize=False,
|
69 |
+
add_generation_prompt=True
|
70 |
+
)
|
71 |
+
return prompt
|
72 |
+
|
73 |
+
def create_format_prompt(self, parser):
|
74 |
+
prompt = PromptTemplate(
|
75 |
+
template= SYS_PROMPT+"\n{format_instructions}\n{query}\n",
|
76 |
+
input_variables=["query"],
|
77 |
+
partial_variables={"format_instructions": parser.get_format_instructions()},
|
78 |
+
)
|
79 |
+
return prompt
|
80 |
+
|
81 |
+
def cluster_embedded_tweets(self, tweets):
|
82 |
+
embeddings = []
|
83 |
+
for tweet in tweets:
|
84 |
+
# TODO this is NOT clustering the embeddings, it's clustering the fucking input ids
|
85 |
+
# Why does it seem to work then? TODO visualize the spread of these clusters and the tweets within the clusters
|
86 |
+
# Lowkey this can be done later -- having bugs like this that affect the outcome but not the look of the prototype can be addressed later
|
87 |
+
# Wait lowkey this might work bc it's the info retrieval semantic sim model, have to check docs on the output of encode
|
88 |
+
embeddings.append(self.embedding_model.encode(tweet, convert_to_numpy=True))
|
89 |
+
clusters = KMeans(n_clusters=self.num_narratives).fit(embeddings)
|
90 |
+
unique_labels = np.unique(clusters.labels_)
|
91 |
+
# Chunk tweets by cluster labels
|
92 |
+
clustered_tweets = [tweets[clusters.labels_ == label] for label in unique_labels]
|
93 |
+
return clustered_tweets
|
94 |
+
|
95 |
+
# TODO yaml
|
96 |
+
# TODO private functions
|
97 |
+
def process_chunk(self, chunk, model, tokenizer):
|
98 |
+
prompt = self.create_prompt(tokenizer, SYS_PROMPT, user_prompt=chunk)
|
99 |
+
response = generate(
|
100 |
+
model, tokenizer,
|
101 |
+
#temperature=0.9, top_p=0.8,
|
102 |
+
max_tokens=512, prompt=prompt,
|
103 |
+
verbose=True)
|
104 |
+
return response, prompt
|
105 |
+
|
106 |
+
def generate_narratives(self, progress=None):
|
107 |
+
# Set up a parser + inject instructions into the prompt template.
|
108 |
+
parser = JsonOutputParser(pydantic_object=self.NarrativeSummary)
|
109 |
+
llm = MLXPipeline(model=self.summary_model, tokenizer=self.tokenizer, pipeline_kwargs={"response_format" :
|
110 |
+
{"type": "json_object",}})
|
111 |
+
prompt = self.create_format_prompt(parser)
|
112 |
+
chain = prompt | llm | self.parse_json_objects
|
113 |
+
|
114 |
+
# What happens when we have way more than 300 tweets? Can we still cluster 50,000 or do we chunk it by time and regen narratives?
|
115 |
+
clustered_tweets = self.cluster_embedded_tweets(self.df["Tweet"])
|
116 |
+
responses = []
|
117 |
+
if progress != None:
|
118 |
+
for chunk in progress.tqdm(clustered_tweets):
|
119 |
+
# resp, prompt = process_chunk(chunk, self.summary_model, self.tokenizer)
|
120 |
+
resp = chain.invoke({"query": chunk})
|
121 |
+
# TODO remove print
|
122 |
+
print(resp)
|
123 |
+
if not resp:
|
124 |
+
continue
|
125 |
+
responses.append(resp[0])
|
126 |
+
else:
|
127 |
+
for chunk in (clustered_tweets):
|
128 |
+
resp = chain.invoke({"query": chunk})
|
129 |
+
if not resp:
|
130 |
+
continue
|
131 |
+
responses.append(resp[0])
|
132 |
+
|
133 |
+
return responses, prompt, clustered_tweets
|
134 |
+
|
135 |
+
def format(self, raw_narratives):
|
136 |
+
# Formats to markdown for direct display as a string.
|
137 |
+
formatted_output = ""
|
138 |
+
# Loop through the outer list (each narrative set)
|
139 |
+
for idx, narrative_set in enumerate(raw_narratives, 1):
|
140 |
+
if not narrative_set: # Skip empty lists
|
141 |
+
continue
|
142 |
+
|
143 |
+
formatted_output += f"### Narrative Set {idx}\n"
|
144 |
+
|
145 |
+
# Loop through each narrative (which is a dictionary)
|
146 |
+
for key, value in narrative_set.items():
|
147 |
+
formatted_output += f"- **{key.replace('_', ' ').capitalize()}**: {value}\n"
|
148 |
+
|
149 |
+
formatted_output += "\n---\n\n"
|
150 |
+
|
151 |
+
return formatted_output.strip()
|
152 |
+
|
153 |
+
|
154 |
+
def get_html_formatted_outputs(self, raw_narratives):
|
155 |
+
outputs = []
|
156 |
+
for idx, narrative_set in enumerate(raw_narratives, 1):
|
157 |
+
if not narrative_set: # Skip empty lists
|
158 |
+
continue
|
159 |
+
|
160 |
+
# Start a container div for each narrative pair
|
161 |
+
formatted_output = f"<div class='narrative-block' data-narrative-id='{idx}'>"
|
162 |
+
formatted_output += "<hr class='narrative-separator'>"
|
163 |
+
|
164 |
+
for key, value in narrative_set.items():
|
165 |
+
formatted_output += f"""
|
166 |
+
<div class='narrative-item'>
|
167 |
+
<strong>{key.replace('_', ' ').capitalize()}:</strong>
|
168 |
+
<p>{value}</p>
|
169 |
+
</div>
|
170 |
+
"""
|
171 |
+
|
172 |
+
formatted_output += "</div>" # Close block div
|
173 |
+
outputs.append(formatted_output)
|
174 |
+
|
175 |
+
return outputs
|
176 |
+
|
177 |
+
|
178 |
+
def save_json_narratives(self, json_list):
|
179 |
+
# Save JSON for download
|
180 |
+
json_file = "generated_narratives.json"
|
181 |
+
with open(json_file, "w") as f:
|
182 |
+
json.dump(json_list, f, indent=4)
|
183 |
+
return json_file
|
184 |
+
|
185 |
+
|
186 |
+
def parse_json_objects(self, text):
|
187 |
+
"""
|
188 |
+
Identifies JSON objects between curly braces and attempts to parse them.
|
189 |
+
Returns a list of successfully parsed JSON objects.
|
190 |
+
Raises an error if parsing any JSON object fails, but continues processing others.
|
191 |
+
"""
|
192 |
+
# Regex to find JSON objects between curly braces {}
|
193 |
+
json_objects = re.findall(r'\{.*?\}', text, re.DOTALL)
|
194 |
+
|
195 |
+
parsed_json_list = [] # To store successfully parsed JSON objects
|
196 |
+
|
197 |
+
# Loop through each potential JSON object
|
198 |
+
for json_str in json_objects:
|
199 |
+
try:
|
200 |
+
# Try parsing the JSON string
|
201 |
+
parsed_json = json.loads(json_str)
|
202 |
+
parsed_json_list.append(parsed_json)
|
203 |
+
except json.JSONDecodeError as e:
|
204 |
+
print(f"Error parsing JSON: {e}. Skipping invalid JSON object.")
|
205 |
+
continue # Skip the invalid JSON and continue processing other objects
|
206 |
+
|
207 |
+
return parsed_json_list
|
208 |
+
|
209 |
+
|
210 |
+
# def parse_narratives(self, raw_narratives):
|
211 |
+
# """
|
212 |
+
# Parses a list of JSON strings into Python dictionaries
|
213 |
+
# and returns a formatted markdown string + a downloadable JSON file.
|
214 |
+
# """
|
215 |
+
# formatted_output = ""
|
216 |
+
# json_list = []
|
217 |
+
|
218 |
+
# for i, json_str in enumerate(raw_narratives, 1):
|
219 |
+
# try:
|
220 |
+
# narrative_obj = json.loads(json_str) # Convert JSON string to dict
|
221 |
+
# json_list.append(narrative_obj)
|
222 |
+
|
223 |
+
# formatted_output += f"### Narrative Set {i}\n"
|
224 |
+
# for key, value in narrative_obj.items():
|
225 |
+
# formatted_output += f"- **{key.replace('_', ' ').capitalize()}**: {value}\n"
|
226 |
+
# formatted_output += "\n---\n\n"
|
227 |
+
# except json.JSONDecodeError:
|
228 |
+
# formatted_output += f"⚠️ Error parsing narrative {i}: {json_str}\n\n"
|
229 |
+
|
230 |
+
# # Save JSON for download
|
231 |
+
# json_file = "generated_narratives.json"
|
232 |
+
# with open(json_file, "w") as f:
|
233 |
+
# json.dump(json_list, f, indent=4)
|
234 |
+
|
235 |
+
# return formatted_output.strip(), json_file
|
236 |
+
|
237 |
+
# Define your desired data structure.
|
238 |
+
class NarrativeSummary(BaseModel):
|
239 |
+
narrative_1: str = Field(description="Most dominant narrative")
|
240 |
+
narrative_2: str = Field(description="Second dominant narrative")
|
241 |
+
|
242 |
+
# For tweet in timeline of tweets, sim score to each of X number of generated narratives, and add to list
|
243 |
+
# Plot each list of similarities to narrative over time
|
244 |
+
|
245 |
+
#TODO LLM Validation:
|
246 |
+
# Have people randomly sample tweets from the batches and agree or disagree with the top 2 narratives presented (and write in alternative if desired)
|
247 |
+
#TODO Similarity validation
|
248 |
+
# Given valid narratives, have people code tweets as belonging to or not belonging to those
|
249 |
+
# TODO filter out retweets / response tweets? Adjust prompt to account for this? For example, respondign to fake news CNN tweets criticizing his policies are confusing the LLM
|
sim_scores.py
ADDED
@@ -0,0 +1,74 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
import pandas as pd
|
2 |
+
import numpy as np
|
3 |
+
from sentence_transformers import util
|
4 |
+
|
5 |
+
class Results():
|
6 |
+
def __init__(self, model, tweet_file, n_tweets, narratives):
|
7 |
+
self.model = model
|
8 |
+
self.read_media(tweet_file)
|
9 |
+
if n_tweets > len(self.df):
|
10 |
+
n_tweets = len(self.df)
|
11 |
+
print("Number of tweets selected is greater than total.\
|
12 |
+
\nContinuing with {num} tweets total.".format(num=n_tweets))
|
13 |
+
self.n_tweets = n_tweets
|
14 |
+
# TODO!!
|
15 |
+
# self.narratives = ["Russia is an ally", "the 2020 election was stolen"]
|
16 |
+
self.narratives = narratives
|
17 |
+
self.similarities = np.empty((self.n_tweets, len(self.narratives)))
|
18 |
+
self.tweets = pd.DataFrame(columns=["Tweet", "Sim_Index"])
|
19 |
+
# This should really be called by the user but what good is the results class if it has none ?
|
20 |
+
self.get_results()
|
21 |
+
|
22 |
+
def read_media(self, file):
|
23 |
+
if file.endswith(".csv"):
|
24 |
+
self.df = pd.read_csv(file, encoding='utf-8', encoding_errors='ignore')
|
25 |
+
elif file.endswith(".txt"):
|
26 |
+
with open(file, "r") as f:
|
27 |
+
content = f.read()
|
28 |
+
self.df = pd.DataFrame({"Tweet": [content]})
|
29 |
+
|
30 |
+
def embed_narratives(self, narratives):
|
31 |
+
nar_embeds = []
|
32 |
+
for narrative in narratives:
|
33 |
+
nar_embeds.append(self.model.encode(narrative, convert_to_tensor=True))
|
34 |
+
return nar_embeds
|
35 |
+
|
36 |
+
def get_results(self):
|
37 |
+
nar_embeds = self.embed_narratives(self.narratives)
|
38 |
+
for i, tweet in enumerate(self.df["Tweet"][:self.n_tweets]):
|
39 |
+
embedding = self.model.encode(tweet, convert_to_tensor=True)
|
40 |
+
tweet_sims = np.empty(len(nar_embeds))
|
41 |
+
for j, nar_embed in enumerate(nar_embeds):
|
42 |
+
sim = util.pytorch_cos_sim(embedding, nar_embed)
|
43 |
+
tweet_sims[j] = sim
|
44 |
+
self.similarities[i] = tweet_sims
|
45 |
+
self.tweets.loc[i] = {"Tweet" : tweet, "Sim_Index" : i}
|
46 |
+
|
47 |
+
def sort_by_narrative(self, narrative_ind):
|
48 |
+
if narrative_ind > len(self.narratives) - 1:
|
49 |
+
print("Invalid narrative index. Continuing with narrative_ind=0...")
|
50 |
+
narrative_ind = 0
|
51 |
+
# Grab the column of the narrative_ind
|
52 |
+
narr_sims = self.similarities.T[narrative_ind] # after we transpose, we have 3 rows and n_tweets cols
|
53 |
+
sorted_args = np.argsort(narr_sims)
|
54 |
+
# get the sorted sims and the sorted tweets
|
55 |
+
sorted_sims = narr_sims[sorted_args]
|
56 |
+
sorted_tweets = self.tweets.iloc[sorted_args]
|
57 |
+
return sorted_tweets, sorted_sims
|
58 |
+
|
59 |
+
def print_top_k(self, k, narrative_ind):
|
60 |
+
if k > self.n_tweets:
|
61 |
+
k = self.n_tweets
|
62 |
+
if narrative_ind > len(self.narratives) - 1:
|
63 |
+
print("Invalid narrative index. Continuing with narrative_ind=0...")
|
64 |
+
narrative_ind = 0
|
65 |
+
sorted_tweets, sorted_sims = self.sort_by_narrative(narrative_ind)
|
66 |
+
sorted_tweets["Sims"] = sorted_sims
|
67 |
+
pd.set_option('display.max_colwidth', None)
|
68 |
+
print("{k} Most similar tweets to narrative \n\"{narrative}\": \n".format(
|
69 |
+
k=k, narrative=self.narratives[narrative_ind]),
|
70 |
+
sorted_tweets[-k:])
|
71 |
+
return sorted_tweets[-k:]
|
72 |
+
|
73 |
+
def __repr__(self):
|
74 |
+
return f"First 10 Results: \n {self.tweets[:10]}"
|
trumptweets1205-127.csv
ADDED
@@ -0,0 +1,354 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
Date,Time,Tweet,Tweetid
|
2 |
+
2016-12-05 13:53:11+00:00,13:53:11,I am thrilled to nominate Dr. @RealBenCarson as our next Secretary of the US Dept. of Housing and Urban Development� https://t.co/OJKuDFhP3r,805772007220645000
|
3 |
+
2016-12-05 16:00:27+00:00,16:00:27,"If the press would cover me accurately & honorably, I would have far less reason to ""tweet."" Sadly, I don't know if that will ever happen!",805804034309427000
|
4 |
+
2016-12-05 23:06:43+00:00,23:06:43,"#ThankYouTour2016
|
5 |
+
|
6 |
+
12/6- North Carolina
|
7 |
+
https://t.co/79AHq3NC0v
|
8 |
+
|
9 |
+
12/8- Iowa
|
10 |
+
https://t.co/1IuRTVwMSx
|
11 |
+
|
12 |
+
12/9- Michiga� https://t.co/vcQaIJ8qoB",805911307270713000
|
13 |
+
2016-12-06 13:52:35+00:00,13:52:35,"Boeing is building a brand new 747 Air Force One for future presidents, but costs are out of control, more than $4 billion. Cancel order!",806134244384899000
|
14 |
+
2016-12-06 16:45:27+00:00,16:45:27,"Join me tonight in Fayetteville, North Carolina at 7pm!
|
15 |
+
#ThankYouTour2016
|
16 |
+
Tickets: https://t.co/79AHq3NC0v https://t.co/KoZCE7JeG7",806177746397306000
|
17 |
+
2016-12-06 19:09:49+00:00,19:09:49,"Masa (SoftBank) of Japan has agreed to invest $50 billion in the U.S. toward businesses and 50,000 new jobs....",806214078465245000
|
18 |
+
2016-12-06 19:10:27+00:00,19:10:27,Masa said he would never do this had we (Trump) not won the election!,806214236053667000
|
19 |
+
2016-12-06 21:17:45+00:00,21:17:45,"Departing New York with General James 'Mad Dog' Mattis for tonight's rally in Fayetteville, North Carolina! See you� https://t.co/Z8sgJBWI09",806246271405162000
|
20 |
+
2016-12-07 03:33:20+00:00,3:33:20,"A great night in Fayetteville, North Carolina. Thank you! #ICYMI watch here: https://t.co/ZAuTgxKPpb https://t.co/EF9xRWmciA",806340792247795000
|
21 |
+
2016-12-07 12:18:56+00:00,12:18:56,I will be interviewed on the @TODAYshow at 7:30. Enjoy!,806473064703725000
|
22 |
+
2016-12-07 18:38:00+00:00,18:38:00,"We pause today to remember the 2,403 American heroes who selflessly gave their lives at Pearl Harbor 75 years ago...
|
23 |
+
https://t.co/r5eRLR24Q3",806568460620857000
|
24 |
+
2016-12-07 19:37:32+00:00,19:37:32,"Join me tomorrow in Des Moines, Iowa with Vice President-Elect @mike_pence - at 7:00pm!
|
25 |
+
#ThankYouTour2016 #MAGA� https://t.co/Geq6sT70IT",806583438748815000
|
26 |
+
2016-12-08 00:41:48+00:00,0:41:48,"Chuck Jones, who is President of United Steelworkers 1999, has done a terrible job representing workers. No wonder companies flee country!",806660011904614000
|
27 |
+
2016-12-08 01:56:40+00:00,1:56:40,"If United Steelworkers 1999 was any good, they would have kept those jobs in Indiana. Spend more time working-less time talking. Reduce dues",806678853305384000
|
28 |
+
2016-12-08 21:15:52+00:00,21:15:52,Today we lost a great pioneer of air and space in John Glenn. He was a hero and inspired generations of future explorers. He will be missed.,806970576359325000
|
29 |
+
2016-12-08 22:55:24+00:00,22:55:24,"On my way to Des Moines, Iowa- will see you soon with @mike_pence. Join us! Tickets: https://t.co/1IuRTVwMSx #ThankYouTour2016",806995622117122000
|
30 |
+
2016-12-08 23:12:11+00:00,23:12:11,"Join me tomorrow! #MAGA
|
31 |
+
10am- Baton Rouge, LA.
|
32 |
+
Tickets: https://t.co/rvIQ6Yq45P
|
33 |
+
7pm- Grand Rapids, MI.
|
34 |
+
Tickets: https://t.co/2UTwAg5V87",806999846674698000
|
35 |
+
2016-12-09 03:02:04+00:00,3:02:04,"THANK YOU IOWA!
|
36 |
+
#ThankYouTour2016 https://t.co/v6EB2OQMeO",807057700857188000
|
37 |
+
2016-12-09 19:42:30+00:00,19:42:30,"Join me live in Louisiana! Tomorrow, we need you to go to the polls & send John Kennedy to the U.S. Senate. https://t.co/O0jtz0BKeL",807309464705630000
|
38 |
+
2016-12-09 22:13:21+00:00,22:13:21,Thank you Louisiana! Get out & vote for John Kennedy tomorrow. Electing Kennedy will help enact our agenda on behal� https://t.co/sHXeyreEZI,807347429062443000
|
39 |
+
2016-12-10 03:30:50+00:00,3:30:50,"Thank you Michigan. We are going to bring back your jobs & together, we will MAKE AMERICA GREAT AGAIN!
|
40 |
+
Watch:� https://t.co/EyLOo26FqW",807427326522884000
|
41 |
+
2016-12-10 11:19:24+00:00,11:19:24,".@RudyGiuliani, one of the finest people I know and a former GREAT Mayor of N.Y.C., just took himself out of consideration for ""State"".",807545243608420000
|
42 |
+
2016-12-10 11:27:22+00:00,11:27:22,I have NOTHING to do with The Apprentice except for fact that I conceived it with Mark B & have a big stake in it. Will devote ZERO TIME!,807547249681166000
|
43 |
+
2016-12-10 12:38:24+00:00,12:38:24,"As a show of support for our Armed Forces, I will be going to The Army-Navy Game today. Looking forward to it, should be fun!",807565127021109000
|
44 |
+
2016-12-10 14:11:49+00:00,14:11:49,"Reports by @CNN that I will be working on The Apprentice during my Presidency, even part time, are ridiculous & untrue - FAKE NEWS!",807588632877998000
|
45 |
+
2016-12-10 14:14:23+00:00,14:14:23,"A very interesting read. Unfortunately, so much is true.
|
46 |
+
https://t.co/ER2BoM765M",807589280071684000
|
47 |
+
2016-12-10 18:41:12+00:00,18:41:12,RT @TrumpInaugural: Counting down the days until the swearing in of @realDonaldTrump & @mike_pence. Check in here for the latest updates. #�,807656426374103000
|
48 |
+
2016-12-10 19:09:13+00:00,19:09:13,October 2015 - thanks Chris Wallace @FoxNewsSunday! https://t.co/VEsgPcWq7z,807663477322027000
|
49 |
+
2016-12-10 19:09:28+00:00,19:09:28,"RT @FoxNewsSunday: Sunday-- our exclusive interview with President-elect @realDonaldTrump
|
50 |
+
Watch on @FoxNews at 2p/10p ET
|
51 |
+
Check your local�",807663539116802000
|
52 |
+
2016-12-11 12:56:18+00:00,12:56:18,I will be interviewed today on Fox News Sunday with Chris Wallace at 10:00 (Eastern) Network. ENJOY!,807932020236124000
|
53 |
+
2016-12-11 13:12:06+00:00,13:12:06,"Being at the Army - Navy Game was fantastic. There is nothing like the spirit in that stadium. A wonderful experience, and congrats to Army!",807935995316408000
|
54 |
+
2016-12-11 13:51:47+00:00,13:51:47,"I spent Friday campaigning with John Kennedy, of the Great State of Louisiana, for the U.S.Senate. The election is over - JOHN WON!",807945982633709000
|
55 |
+
2016-12-11 15:29:10+00:00,15:29:10,"Whether I choose him or not for ""State""- Rex Tillerson, the Chairman & CEO of ExxonMobil, is a world class player and dealmaker. Stay tuned!",807970490635743000
|
56 |
+
2016-12-12 00:32:28+00:00,0:32:28,Will be interviewed on @FoxNews at 10:00 P.M. Enjoy!,808107215492091000
|
57 |
+
2016-12-12 01:02:14+00:00,1:02:14,"Just watched @NBCNightlyNews - So biased, inaccurate and bad, point after point. Just can't get much worse, although @CNN is right up there!",808114703922843000
|
58 |
+
2016-12-12 13:17:54+00:00,13:17:54,Can you imagine if the election results were the opposite and WE tried to play the Russia/CIA card. It would be called conspiracy theory!,808299841147248000
|
59 |
+
2016-12-12 13:21:20+00:00,13:21:20,"Unless you catch ""hackers"" in the act, it is very hard to determine who was doing the hacking. Why wasn't this brought up before election?",808300706914594000
|
60 |
+
2016-12-12 13:26:13+00:00,13:26:13,The F-35 program and cost is out of control. Billions of dollars can and will be saved on military (and other) purchases after January 20th.,808301935728230000
|
61 |
+
2016-12-12 22:25:52+00:00,22:25:52,"#ThankYouTour2016
|
62 |
+
|
63 |
+
Tue: West Allis, WI.
|
64 |
+
|
65 |
+
Thur: Hershey, PA.
|
66 |
+
|
67 |
+
Fri: Orlando, FL.
|
68 |
+
|
69 |
+
Sat: Mobile, AL.
|
70 |
+
|
71 |
+
Tickets:� https://t.co/OJ8S7iVzFx",808437742904418000
|
72 |
+
2016-12-12 23:40:48+00:00,23:40:48,The final Wisconsin vote is in and guess what - we just picked up an additional 131 votes. The Dems and Green Party can now rest. Scam!,808456602076545000
|
73 |
+
2016-12-13 00:33:05+00:00,0:33:05,I will be making my announcement on the next Secretary of State tomorrow morning.,808469755749339000
|
74 |
+
2016-12-13 04:26:13+00:00,4:26:13,"Even though I am not mandated by law to do so, I will be leaving my busineses before January 20th so that I can focus full time on the......",808528428123254000
|
75 |
+
2016-12-13 04:32:01+00:00,4:32:01,"Presidency. Two of my children, Don and Eric, plus executives, will manage them. No new deals will be done during my term(s) in office.",808529888630239000
|
76 |
+
2016-12-13 04:41:33+00:00,4:41:33,"I will hold a press conference in the near future to discuss the business, Cabinet picks and all other topics of interest. Busy times!",808532286664822000
|
77 |
+
2016-12-13 11:43:38+00:00,11:43:38,"I have chosen one of the truly great business leaders of the world, Rex Tillerson, Chairman and CEO of ExxonMobil, to be Secretary of State.",808638507161882000
|
78 |
+
2016-12-13 11:57:35+00:00,11:57:35,Wisconsin and Pennsylvania have just certified my wins in those states. I actually picked up additional votes!,808642018612310000
|
79 |
+
2016-12-13 12:44:06+00:00,12:44:06,The thing I like best about Rex Tillerson is that he has vast experience at dealing successfully with all types of foreign governments.,808653723639697000
|
80 |
+
2016-12-13 21:33:53+00:00,21:33:53,"Join me this Saturday at Ladd�Peebles Stadium in Mobile, Alabama!
|
81 |
+
#ThankYouTour2016
|
82 |
+
|
83 |
+
Tickets:� https://t.co/1RFmKCMgyw",808787048144453000
|
84 |
+
2016-12-14 00:52:40+00:00,0:52:40,"RT @DanScavino: Join #PEOTUS Trump & #VPEOTUS Pence live in West Allis, Wisconsin!
|
85 |
+
#ThankYouTour2016 #MAGA
|
86 |
+
https://t.co/vU5EPIYKUc https:/�",808837073423794000
|
87 |
+
2016-12-14 03:48:55+00:00,3:48:55,"Thank you Wisconsin! My Administration will be focused on three very important words: jobs, jobs, jobs! Watch:� https://t.co/iEGWZLuiFE",808881429715316000
|
88 |
+
2016-12-14 18:07:55+00:00,18:07:55,.@BillGates and @JimBrownNFL32 in my Trump Tower office yesterday- two great guys! https://t.co/4PjSOEU5y9,809097603010981000
|
89 |
+
2016-12-15 13:05:55+00:00,13:05:55,"Has anyone looked at the really poor numbers of @VanityFair Magazine. Way down, big trouble, dead! Graydon Carter, no talent, will be out!",809383989018497000
|
90 |
+
2016-12-15 13:09:14+00:00,13:09:14,"Thank you to Time Magazine and Financial Times for naming me ""Person of the Year"" - a great honor!",809384826193276000
|
91 |
+
2016-12-15 13:28:54+00:00,13:28:54,"The media tries so hard to make my move to the White House, as it pertains to my business, so complex - when actually it isn't!",809389774066814000
|
92 |
+
2016-12-15 14:24:29+00:00,14:24:29,"If Russia, or some other entity, was hacking, why did the White House wait so long to act? Why did they only complain after Hillary lost?",809403760099422000
|
93 |
+
2016-12-15 22:27:16+00:00,22:27:16,"Join me in Mobile, Alabama on Sat. at 3pm! #ThankYouTour2016
|
94 |
+
Tickets: https://t.co/GGgbjl8Zo6 https://t.co/opKrWO4k0C",809525257371578000
|
95 |
+
2016-12-16 01:32:56+00:00,1:32:56,"Thank you Pennsylvania! Together, we are going to MAKE AMERICA GREAT AGAIN! Watch here: https://t.co/7R382qWfWS� https://t.co/yB6u5FEfHq",809571983428120000
|
96 |
+
2016-12-16 11:09:19+00:00,11:09:19,Are we talking about the same cyberattack where it was revealed that head of the DNC illegally gave Hillary the questions to the debate?,809717035353722000
|
97 |
+
2016-12-16 16:03:09+00:00,16:03:09,"Well, we all did it, together! I hope the ""MOVEMENT"" fans will go to D.C. on Jan 20th for the swearing in. Let's set the all time record!",809790978332786000
|
98 |
+
2016-12-16 16:54:28+00:00,16:54:28,"#ThankYouTour2016
|
99 |
+
|
100 |
+
Tonight- Orlando, Florida
|
101 |
+
Tickets: https://t.co/JwQeccp79N
|
102 |
+
|
103 |
+
Tomorrow- Mobile, Alabama
|
104 |
+
Tickets:� https://t.co/Cq5AwcuzT9",809803893920165000
|
105 |
+
2016-12-17 03:52:01+00:00,3:52:01,Thank you Florida. My Administration will follow two simple rules: BUY AMERICAN and HIRE AMERICAN! #ICYMI- Watch:� https://t.co/3vgtzSJsFu,809969373754654000
|
106 |
+
2016-12-17 13:05:02+00:00,13:05:02,"Last night in Orlando, Florida, was incredible - massive crowd - THANK YOU FLORIDA! Today at 3:00 P.M. I will be in Alabama for last rally!",810108542921408000
|
107 |
+
2016-12-17 13:07:22+00:00,13:07:22,"""@EazyMF_E: @realDonaldTrump Many people are now saying you will be an extremely successful president! #MakeAmericaGreatAgain"" Thank you!",810109131537481000
|
108 |
+
2016-12-17 13:20:23+00:00,13:20:23,"Mobile, Alabama today at 3:00 P.M. Last rally of the year - ""THANK YOU ALABAMA AND THE SOUTH"" Biggest of all crowds expected, see you there!",810112407309844000
|
109 |
+
2016-12-17 13:57:20+00:00,13:57:20,China steals United States Navy research drone in international waters - rips it out of water and takes it to China in unprecedented act.,810121703288410000
|
110 |
+
2016-12-17 21:17:39+00:00,21:17:39,"RT @DanScavino: Join President-elect Trump LIVE from Mobile, Alabama via his #Facebook page! #ThankYouTour2016
|
111 |
+
Watch: https://t.co/btzN080�",810232514749075000
|
112 |
+
2016-12-18 00:12:05+00:00,0:12:05,"Thank you Alabama! From now on, it�s going to be #AmericaFirst. Our goal is to bring back that wonderful phrase:� https://t.co/4UAazd7TmF",810276411177107000
|
113 |
+
2016-12-18 00:59:25+00:00,0:59:25,We should tell China that we don't want the drone they stole back.- let them keep it!,810288321880555000
|
114 |
+
2016-12-18 21:54:40+00:00,21:54:40,"If my many supporters acted and threatened people like those who lost the election are doing, they would be scorned & called terrible names!",810604216771284000
|
115 |
+
2016-12-19 23:21:11+00:00,23:21:11,"Today there were terror attacks in Turkey, Switzerland and Germany - and it is only getting worse. The civilized world must change thinking!",810988379051610000
|
116 |
+
2016-12-19 23:51:41+00:00,23:51:41,"We did it! Thank you to all of my great supporters, we just officially won the election (despite all of the distorted and inaccurate media).",810996052241293000
|
117 |
+
2016-12-20 02:46:01+00:00,2:46:01,"""@Franklin_Graham: Congratulations to President-elect @realDonaldTrump--the electoral votes are in and it's official."" Thank you Franklin!",811039925571354000
|
118 |
+
2016-12-20 02:50:25+00:00,2:50:25,"""@mike_pence: Congratulations to @RealDonaldTrump; officially elected President of the United States today by the Electoral College!""",811041034323054000
|
119 |
+
2016-12-20 13:03:59+00:00,13:03:59,"Bill Clinton stated that I called him after the election. Wrong, he called me (with a very nice congratulations). He ""doesn't know much"" ...",811195441710764000
|
120 |
+
2016-12-20 13:09:18+00:00,13:09:18,"especially how to get people, even with an unlimited budget, out to vote in the vital swing states ( and more). They focused on wrong states",811196778779463000
|
121 |
+
2016-12-20 20:27:57+00:00,20:27:57,"Yes, it is true - Carlos Slim, the great businessman from Mexico, called me about getting together for a meeting. We met, HE IS A GREAT GUY!",811307169043849000
|
122 |
+
2016-12-21 13:15:14+00:00,13:15:14,Campaigning to win the Electoral College is much more difficult & sophisticated than the popular vote. Hillary focused on the wrong states!,811560662853939000
|
123 |
+
2016-12-21 13:24:29+00:00,13:24:29,"I would have done even better in the election, if that is possible, if the winner was based on popular vote - but would campaign differently",811562990285848000
|
124 |
+
2016-12-21 13:29:38+00:00,13:29:38,I have not heard any of the pundits or commentators discussing the fact that I spent FAR LESS MONEY on the win than Hillary on the loss!,811564284706689000
|
125 |
+
2016-12-22 03:39:33+00:00,3:39:33,"I met some really great Air Force GENERALS and Navy ADMIRALS today, talking about airplane capability and pricing. Very impressive people!",811778176120668000
|
126 |
+
2016-12-22 13:37:04+00:00,13:37:04,The resolution being considered at the United Nations Security Council regarding Israel should be vetoed....cont: https://t.co/s8rXKKZNF1,811928543366148000
|
127 |
+
2016-12-22 16:41:52+00:00,16:41:52,"Someone incorrectly stated that the phrase ""DRAIN THE SWAMP"" was no longer being used by me. Actually, we will always be trying to DTS.",811975049431416000
|
128 |
+
2016-12-22 16:50:30+00:00,16:50:30,The United States must greatly strengthen and expand its nuclear capability until such time as the world comes to its senses regarding nukes,811977223326625000
|
129 |
+
2016-12-22 22:26:05+00:00,22:26:05,"Based on the tremendous cost and cost overruns of the Lockheed Martin F-35, I have asked Boeing to price-out a comparable F-18 Super Hornet!",812061677160202000
|
130 |
+
2016-12-23 01:59:58+00:00,1:59:58,"The so-called ""A"" list celebrities are all wanting tixs to the inauguration, but look what they did for Hillary, NOTHING. I want the PEOPLE!",812115501791006000
|
131 |
+
2016-12-23 11:53:05+00:00,11:53:05,"My wonderful son, Eric, will no longer be allowed to raise money for children with cancer because of a possible conflict of interest with...",812264762981675000
|
132 |
+
2016-12-23 11:58:36+00:00,11:58:36,"my presidency. Isn't this a ridiculous shame? He loves these kids, has raised millions of dollars for them, and now must stop. Wrong answer!",812266152684650000
|
133 |
+
2016-12-23 20:14:34+00:00,20:14:34,"As to the U.N., things will be different after Jan. 20th.",812390964740427000
|
134 |
+
2016-12-23 21:17:42+00:00,21:17:42,"The terrorist who killed so many people in Germany said just before crime, ""by God's will we will slaughter you pigs, I swear, we will......",812406855469252000
|
135 |
+
2016-12-23 21:23:00+00:00,21:23:00,"slaughter you. This is a purely religious threat, which turned into reality. Such hatred! When will the U.S., and all countries, fight back?",812408189492797000
|
136 |
+
2016-12-24 00:13:02+00:00,0:13:02,"Vladimir Putin said today about Hillary and Dems: ""In my opinion, it is humiliating. One must be able to lose with dignity."" So true!",812450976670121000
|
137 |
+
2016-12-24 20:59:30+00:00,20:59:30,".@NBCNews purposely left out this part of my nuclear qoute: ""until such time as the world comes to its senses regarding nukes."" Dishonest!",812764662500622000
|
138 |
+
2016-12-24 21:33:27+00:00,21:33:27,"The big loss yesterday for Israel in the United Nations will make it much harder to negotiate peace.Too bad, but we will get it done anyway!",812773204561379000
|
139 |
+
2016-12-24 21:44:32+00:00,21:44:32,Happy #Hanukkah https://t.co/UvZwtykV1E,812775995837218000
|
140 |
+
2016-12-25 12:46:41+00:00,12:46:41,#MerryChristmas https://t.co/5GgDmJrGMS,813003030186622000
|
141 |
+
2016-12-25 17:48:48+00:00,17:48:48,"Merry Christmas and a very, very, very , very Happy New Year to everyone!",813079058896535000
|
142 |
+
2016-12-26 21:36:28+00:00,21:36:28,"President Obama said that he thinks he would have won against me. He should say that but I say NO WAY! - jobs leaving, ISIS, OCare, etc.",813498739923054000
|
143 |
+
2016-12-26 21:41:58+00:00,21:41:58,"The United Nations has such great potential but right now it is just a club for people to get together, talk and have a good time. So sad!",813500123053490000
|
144 |
+
2016-12-26 23:32:28+00:00,23:32:28,The world was gloomy before I won - there was no hope. Now the market is up nearly 10% and Christmas spending is over a trillion dollars!,813527932165558000
|
145 |
+
2016-12-27 02:53:20+00:00,2:53:20,"I gave millions of dollars to DJT Foundation, raised or recieved millions more, ALL of which is given to charity, and media won't report!",813578484572450000
|
146 |
+
2016-12-27 03:06:59+00:00,3:06:59,"The DJT Foundation, unlike most foundations, never paid fees, rent, salaries or any expenses. 100% of money goes to wonderful charities!",813581917215977000
|
147 |
+
2016-12-27 21:52:29+00:00,21:52:29,"President Obama campaigned hard (and personally) in the very important swing states, and lost.The voters wanted to MAKE AMERICA GREAT AGAIN!",813865160163098000
|
148 |
+
2016-12-28 03:10:07+00:00,3:10:07,"The U.S. Consumer Confidence Index for December surged nearly four points to 113.7, THE HIGHEST LEVEL IN MORE THAN 15 YEARS! Thanks Donald!",813945096269860000
|
149 |
+
2016-12-28 14:07:13+00:00,14:07:13,Doing my best to disregard the many inflammatory President O statements and roadblocks.Thought it was going to be a smooth transition - NOT!,814110460761018000
|
150 |
+
2016-12-28 14:19:46+00:00,14:19:46,"We cannot continue to let Israel be treated with such total disdain and disrespect. They used to have a great friend in the U.S., but.......",814113616110751000
|
151 |
+
2016-12-28 14:25:11+00:00,14:25:11,"not anymore. The beginning of the end was the horrible Iran deal, and now this (U.N.)! Stay strong Israel, January 20th is fast approaching!",814114980983427000
|
152 |
+
2016-12-28 22:06:28+00:00,22:06:28,'Economists say Trump delivered hope' https://t.co/SjGBgglIuQ,814231064847728000
|
153 |
+
2016-12-29 14:54:21+00:00,14:54:21,My Administration will follow two simple rules: https://t.co/ZWk0j4H8Qy,814484710025994000
|
154 |
+
2016-12-30 19:41:33+00:00,19:41:33,Great move on delay (by V. Putin) - I always knew he was very smart!,814919370711461000
|
155 |
+
2016-12-30 19:46:55+00:00,19:46:55,"Join @AmerIcan32, founded by Hall of Fame legend @JimBrownNFL32 on 1/19/2017 in Washington, D.C.� https://t.co/9WJZ8iTCQV",814920722208296000
|
156 |
+
2016-12-30 22:18:18+00:00,22:18:18,"Russians are playing @CNN and @NBCNews for such fools - funny to watch, they don't have a clue! @FoxNews totally gets it!",814958820980039000
|
157 |
+
2016-12-31 13:17:21+00:00,13:17:21,"Happy New Year to all, including to my many enemies and those who have fought me and lost so badly they just don't know what to do. Love!",815185071317676000
|
158 |
+
2016-12-31 18:58:12+00:00,18:58:12,"Happy Birthday @DonaldJTrumpJr!
|
159 |
+
https://t.co/uRxyCD3hBz",815270850916208000
|
160 |
+
2016-12-31 18:59:04+00:00,18:59:04,"RT @realDonaldTrump: Happy Birthday @DonaldJTrumpJr!
|
161 |
+
https://t.co/uRxyCD3hBz",815271067749060000
|
162 |
+
2017-01-01 05:00:10+00:00,5:00:10,"TO ALL AMERICANS-
|
163 |
+
#HappyNewYear & many blessings to you all! Looking forward to a wonderful & prosperous 2017 as we� https://t.co/1asdMAL4iy",815422340540547000
|
164 |
+
2017-01-01 05:43:23+00:00,5:43:23,RT @Reince: Happy New Year + God's blessings to you all. Looking forward to incredible things in 2017! @realDonaldTrump will Make America�,815433217595547000
|
165 |
+
2017-01-01 06:49:33+00:00,6:49:33,RT @DonaldJTrumpJr: Happy new year everyone. #newyear #family #vacation #familytime https://t.co/u9fJIKNoZq,815449868739211000
|
166 |
+
2017-01-01 06:49:49+00:00,6:49:49,"RT @IvankaTrump: 2016 has been one of the most eventful and exciting years of my life. I wish you peace, joy, love and laughter. Happy New�",815449933453127000
|
167 |
+
2017-01-02 14:40:10+00:00,14:40:10,"Well, the New Year begins. We will, together, MAKE AMERICA GREAT AGAIN!",815930688889352000
|
168 |
+
2017-01-02 17:31:17+00:00,17:31:17,"Chicago murder rate is record setting - 4,331 shooting victims with 762 murders in 2016. If Mayor can't do it he must ask for Federal help!",815973752785793000
|
169 |
+
2017-01-02 18:32:29+00:00,18:32:29,"@CNN just released a book called ""Unprecedented"" which explores the 2016 race & victory. Hope it does well but used worst cover photo of me!",815989154555297000
|
170 |
+
2017-01-02 18:37:10+00:00,18:37:10,"Various media outlets and pundits say that I thought I was going to lose the election. Wrong, it all came together in the last week and.....",815990335318982000
|
171 |
+
2017-01-02 18:44:04+00:00,18:44:04,"I thought and felt I would win big, easily over the fabled 270 (306). When they cancelled fireworks, they knew, and so did I.",815992069412057000
|
172 |
+
2017-01-02 23:05:44+00:00,23:05:44,North Korea just stated that it is in the final stages of developing a nuclear weapon capable of reaching parts of the U.S. It won't happen!,816057920223846000
|
173 |
+
2017-01-02 23:47:12+00:00,23:47:12,"China has been taking out massive amounts of money & wealth from the U.S. in totally one-sided trade, but won't help with North Korea. Nice!",816068355555815000
|
174 |
+
2017-01-03 12:30:05+00:00,12:30:05,General Motors is sending Mexican made model of Chevy Cruze to U.S. car dealers-tax free across border. Make in U.S.A.or pay big border tax!,816260343391514000
|
175 |
+
2017-01-03 12:46:33+00:00,12:46:33,"People must remember that ObamaCare just doesn't work, and it is not affordable - 116% increases (Arizona). Bill Clinton called it ""CRAZY""",816264484629184000
|
176 |
+
2017-01-03 12:51:15+00:00,12:51:15,"The Democrat Governor.of Minnesota said ""The Affordable Care Act (ObamaCare) is no longer affordable!"" - And, it is lousy healthcare.",816265668958031000
|
177 |
+
2017-01-03 15:03:29+00:00,15:03:29,"With all that Congress has to work on, do they really have to make the weakening of the Independent Ethics Watchdog, as unfair as it",816298944456232000
|
178 |
+
2017-01-03 15:07:41+00:00,15:07:41,"........may be, their number one act and priority. Focus on tax reform, healthcare and so many other things of far greater importance! #DTS",816300003442495000
|
179 |
+
2017-01-03 16:44:13+00:00,16:44:13,"""@DanScavino: Ford to scrap Mexico plant, invest in Michigan due to Trump policies""
|
180 |
+
https://t.co/137nUo03Gl",816324295781740000
|
181 |
+
2017-01-03 17:00:11+00:00,17:00:11,"Instead of driving jobs and wealth away, AMERICA will become the world's great magnet for INNOVATION & JOB CREATION.
|
182 |
+
https://t.co/siXrptsOrt",816328314759606000
|
183 |
+
2017-01-03 17:20:43+00:00,17:20:43,There should be no further releases from Gitmo. These are extremely dangerous people and should not be allowed back onto the battlefield.,816333480409833000
|
184 |
+
2017-01-03 18:44:47+00:00,18:44:47,"""Trump is already delivering the jobs he promised America"" https://t.co/11spTMa6Tm",816354639859871000
|
185 |
+
2017-01-03 23:58:31+00:00,23:58:31,I will be having a general news conference on JANUARY ELEVENTH in N.Y.C. Thank you.,816433590892429000
|
186 |
+
2017-01-04 01:14:52+00:00,1:14:52,"The ""Intelligence"" briefing on so-called ""Russian hacking"" was delayed until Friday, perhaps more time needed to build a case. Very strange!",816452807024840000
|
187 |
+
2017-01-04 12:22:38+00:00,12:22:38,"Julian Assange said ""a 14 year old could have hacked Podesta"" - why was DNC so careless? Also said Russians did not give him the info!",816620855958601000
|
188 |
+
2017-01-04 13:10:05+00:00,13:10:05,"""@FoxNews: Julian Assange on U.S. media coverage: �It�s very dishonest.� #Hannity https://t.co/ADcPRQifH9"" More dishonest than anyone knows",816632793862176000
|
189 |
+
2017-01-04 13:19:09+00:00,13:19:09,Thank you to Ford for scrapping a new plant in Mexico and creating 700 new jobs in the U.S. This is just the beginning - much more to follow,816635078067490000
|
190 |
+
2017-01-04 13:27:03+00:00,13:27:03,"Somebody hacked the DNC but why did they not have ""hacking defense"" like the RNC has and why have they not responded to the terrible......",816637064708030000
|
191 |
+
2017-01-04 13:31:32+00:00,13:31:32,"things they did and said (like giving the questions to the debate to H). A total double standard! Media, as usual, gave them a pass.",816638194468999000
|
192 |
+
2017-01-04 13:55:53+00:00,13:55:53,"Republicans must be careful in that the Dems own the failed ObamaCare disaster, with its poor coverage and massive premium increases......",816644321768312000
|
193 |
+
2017-01-04 14:01:53+00:00,14:01:53,"like the 116% hike in Arizona. Also, deductibles are so high that it is practically useless. Don't let the Schumer clowns out of this web...",816645831659061000
|
194 |
+
2017-01-04 14:26:45+00:00,14:26:45,massive increases of ObamaCare will take place this year and Dems are to blame for the mess. It will fall of its own weight - be careful!,816652088662958000
|
195 |
+
2017-01-04 18:52:09+00:00,18:52:09,"Jackie Evancho's album sales have skyrocketed after announcing her Inauguration performance.Some people just don't understand the ""Movement""",816718880731234000
|
196 |
+
2017-01-05 11:57:57+00:00,11:57:57,"The Democrats, lead by head clown Chuck Schumer, know how bad ObamaCare is and what a mess they are in. Instead of working to fix it, they..",816977032433270000
|
197 |
+
2017-01-05 12:01:33+00:00,12:01:33,"...do the typical political thing and BLAME. The fact is ObamaCare was a lie from the beginning.""Keep you doctor, keep your plan!"" It is....",816977937731878000
|
198 |
+
2017-01-05 12:06:42+00:00,12:06:42,...time for Republicans & Democrats to get together and come up with a healthcare plan that really works - much less expensive & FAR BETTER!,816979231217483000
|
199 |
+
2017-01-05 13:25:30+00:00,13:25:30,"The dishonest media likes saying that I am in Agreement with Julian Assange - wrong. I simply state what he states, it is for the people....",816999062562107000
|
200 |
+
2017-01-05 13:45:57+00:00,13:45:57,"to make up their own minds as to the truth. The media lies to make it look like I am against ""Intelligence"" when in fact I am a big fan!",817004210529116000
|
201 |
+
2017-01-05 18:14:30+00:00,18:14:30,"Toyota Motor said will build a new plant in Baja, Mexico, to build Corolla cars for U.S. NO WAY! Build plant in U.S. or pay big border tax.",817071792711942000
|
202 |
+
2017-01-06 00:24:34+00:00,0:24:34,"How did NBC get ""an exclusive look into the top secret report he (Obama) was presented?"" Who gave them this report and why? Politics!",817164923843280000
|
203 |
+
2017-01-06 00:30:15+00:00,0:30:15,The Democratic National Committee would not allow the FBI to study or see its computer info after it was supposedly hacked by Russia......,817166353266262000
|
204 |
+
2017-01-06 00:40:03+00:00,0:40:03,So how and why are they so sure about hacking if they never even requested an examination of the computer servers? What is going on?,817168818539757000
|
205 |
+
2017-01-06 11:19:49+00:00,11:19:49,"The dishonest media does not report that any money spent on building the Great Wall (for sake of speed), will be paid back by Mexico later!",817329823374831000
|
206 |
+
2017-01-06 11:39:35+00:00,11:39:35,Hillary and the Dems were never going to beat the PASSION of my voters. They saw what was happening in the last two weeks before the......,817334794958807000
|
207 |
+
2017-01-06 11:45:47+00:00,11:45:47,and knew they were in big trouble - which is why they cancelled their big fireworks at the last minute.THEY SAW A MOVEMENT LIKE NEVER BEFORE,817336355193753000
|
208 |
+
2017-01-06 12:05:01+00:00,12:05:01,"Hopefully, all supporters, and those who want to MAKE AMERICA GREAT AGAIN, will go to D.C. on January 20th. It will be a GREAT SHOW!",817341196251070000
|
209 |
+
2017-01-06 12:34:37+00:00,12:34:37,"Wow, the ratings are in and Arnold Schwarzenegger got ""swamped"" (or destroyed) by comparison to the ratings machine, DJT. So much for....",817348644647108000
|
210 |
+
2017-01-06 12:42:53+00:00,12:42:53,"being a movie star-and that was season 1 compared to season 14. Now compare him to my season 1. But who cares, he supported Kasich & Hillary",817350726800306000
|
211 |
+
2017-01-06 14:18:51+00:00,14:18:51,"Anna Wintour came to my office at Trump Tower to ask me to meet with the editors of Conde Nast & Steven Newhouse, a friend. Will go this AM.",817374875962769000
|
212 |
+
2017-01-06 16:51:37+00:00,16:51:37,I am asking the chairs of the House and Senate committees to investigate top secret intelligence shared with NBC prior to me seeing it.,817413321058029000
|
213 |
+
2017-01-06 19:30:09+00:00,19:30:09,Monitoring the terrible situation in Florida. Just spoke to Governor Scott. Thoughts and prayers for all. Stay safe!,817453219613917000
|
214 |
+
2017-01-07 00:07:09+00:00,0:07:09,"Happy Birthday @EricTrump!
|
215 |
+
https://t.co/bJaEY7qFSn",817522928862502000
|
216 |
+
2017-01-07 03:53:38+00:00,3:53:38,Gross negligence by the Democratic National Committee allowed hacking to take place.The Republican National Committee had strong defense!,817579925771341000
|
217 |
+
2017-01-07 11:56:29+00:00,11:56:29,Intelligence stated very strongly there was absolutely no evidence that hacking affected the election results. Voting machines not touched!,817701436096126000
|
218 |
+
2017-01-07 12:03:31+00:00,12:03:31,Only reason the hacking of the poorly defended DNC is discussed is that the loss by the Dems was so big that they are totally embarrassed!,817703208567078000
|
219 |
+
2017-01-07 15:02:20+00:00,15:02:20,"Having a good relationship with Russia is a good thing, not a bad thing. Only ""stupid"" people, or fools, would think that it is bad! We.....",817748207694467000
|
220 |
+
2017-01-07 15:10:46+00:00,15:10:46,"have enough problems around the world without yet another one. When I am President, Russia will respect us far more than they do now and....",817750330196819000
|
221 |
+
2017-01-07 15:21:42+00:00,15:21:42,"both countries will, perhaps, work together to solve some of the many great and pressing problems and issues of the WORLD!",817753083707015000
|
222 |
+
2017-01-07 23:54:05+00:00,23:54:05,Congratulation to Jane Timken on her major upset victory in becoming the Ohio Republican Party Chair. Jane is a loyal Trump supporter & star,817882028272128000
|
223 |
+
2017-01-08 02:07:09+00:00,2:07:09,"I look very much forward to meeting Prime Minister Theresa May in Washington in the Spring. Britain, a longtime U.S. ally, is very special!",817915516018892000
|
224 |
+
2017-01-08 16:36:46+00:00,16:36:46,"""@KellyannePolls: Welcome to President and Mrs. Bush.
|
225 |
+
https://t.co/I1K4nj1gVu"" Very nice!",818134360712953000
|
226 |
+
2017-01-08 16:39:14+00:00,16:39:14,"""@FoxNews: ""We certainly don�t want intelligence interfering with politics and we don�t want politics interfe� https://t.co/bwDjEg1d7S""",818134981344165000
|
227 |
+
2017-01-08 16:46:07+00:00,16:46:07,Kellyanne Conway went to @MeetThePress this morning for an interview with @chucktodd. Dishonest media cut out 9 of her 10 minutes. Terrible!,818136714396975000
|
228 |
+
2017-01-08 16:57:46+00:00,16:57:46,"RT @MeetThePress: Watch our interview with @KellyannePolls: Russia ""did not succeed"" in attempts to sway election https://t.co/EZhgUIUbYx #�",818139647687753000
|
229 |
+
2017-01-08 18:56:20+00:00,18:56:20,"Before I, or anyone, saw the classified and/or highly confidential hacking intelligence report, it was leaked out to @NBCNews. So serious!",818169485169410000
|
230 |
+
2017-01-09 04:05:31+00:00,4:05:31,Dishonest media says Mexico won't be paying for the wall if they pay a little later so the wall can be built more quickly. Media is fake!,818307689323368000
|
231 |
+
2017-01-09 11:17:40+00:00,11:17:40,Rupert Murdoch is a great guy who likes me much better as a very successful candidate than he ever did as a very successful developer!,818416446527172000
|
232 |
+
2017-01-09 11:27:50+00:00,11:27:50,"Meryl Streep, one of the most over-rated actresses in Hollywood, doesn't know me but attacked last night at the Golden Globes. She is a.....",818419002548568000
|
233 |
+
2017-01-09 11:36:02+00:00,11:36:02,"Hillary flunky who lost big. For the 100th time, I never ""mocked"" a disabled reporter (would never do that) but simply showed him.......",818421066859167000
|
234 |
+
2017-01-09 11:43:26+00:00,11:43:26,"""groveling"" when he totally changed a 16 year old story that he had written in order to make me look bad. Just more very dishonest media!",818422930157830000
|
235 |
+
2017-01-09 14:14:10+00:00,14:14:10,"It's finally happening - Fiat Chrysler just announced plans to invest $1BILLION in Michigan and Ohio plants, adding 2000 jobs. This after...",818460862675558000
|
236 |
+
2017-01-09 14:16:34+00:00,14:16:34,Ford said last week that it will expand in Michigan and U.S. instead of building a BILLION dollar plant in Mexico. Thank you Ford & Fiat C!,818461467766824000
|
237 |
+
2017-01-09 22:32:33+00:00,22:32:33,An old picture with Nancy and Ronald Reagan. https://t.co/8kvQ1PzPAf,818586286034485000
|
238 |
+
2017-01-10 02:20:01+00:00,2:20:01,"Thank you to all of the men and women who protect & serve our communities 24/7/365!
|
239 |
+
#LawEnforcementAppreciationDay� https://t.co/aqUbDipSgv",818643528905621000
|
240 |
+
2017-01-10 15:26:22+00:00,15:26:22,"'U.S. Small-Business Optimism Index Surges by Most Since 1980'
|
241 |
+
https://t.co/X22x1BttdG",818841421364989000
|
242 |
+
2017-01-10 20:50:31+00:00,20:50:31,'Small business optimism soars after Trump election' https://t.co/WjBaTp824U,818922995980845000
|
243 |
+
2017-01-10 22:30:53+00:00,22:30:53,"'Trump Helps Lift Small Business Confidence to 12-Yr. High'
|
244 |
+
https://t.co/MhbABREhzt https://t.co/CWAvJ4fRdx",818948254943604000
|
245 |
+
2017-01-11 01:19:23+00:00,1:19:23,FAKE NEWS - A TOTAL POLITICAL WITCH HUNT!,818990655418617000
|
246 |
+
2017-01-11 01:35:41+00:00,1:35:41,RT @MichaelCohen212: I have never been to Prague in my life. #fakenews https://t.co/CMil9Rha3D,818994757569564000
|
247 |
+
2017-01-11 02:00:11+00:00,2:00:11,"'BuzzFeed Runs Unverifiable Trump-Russia Claims' #FakeNews
|
248 |
+
https://t.co/d6daCFZHNh",819000924207251000
|
249 |
+
2017-01-11 12:13:40+00:00,12:13:40,"Russia just said the unverified report paid for by political opponents is ""A COMPLETE AND TOTAL FABRICATION, UTTER NONSENSE."" Very unfair!",819155311793700000
|
250 |
+
2017-01-11 12:31:31+00:00,12:31:31,"Russia has never tried to use leverage over me. I HAVE NOTHING TO DO WITH RUSSIA - NO DEALS, NO LOANS, NO NOTHING!",819159806489591000
|
251 |
+
2017-01-11 12:44:05+00:00,12:44:05,"I win an election easily, a great ""movement"" is verified, and crooked opponents try to belittle our victory with FAKE NEWS. A sorry state!",819162968592183000
|
252 |
+
2017-01-11 12:48:52+00:00,12:48:52,"Intelligence agencies should never have allowed this fake news to ""leak"" into the public. One last shot at me.Are we living in Nazi Germany?",819164172781060000
|
253 |
+
2017-01-12 04:01:38+00:00,4:01:38,We had a great News Conference at Trump Tower today. A couple of FAKE NEWS organizations were there but the people truly get what's going on,819393877174087000
|
254 |
+
2017-01-12 12:23:45+00:00,12:23:45,"James Clapper called me yesterday to denounce the false and fictitious report that was illegally circulated. Made up, phony facts.Too bad!",819520238446411000
|
255 |
+
2017-01-12 13:50:13+00:00,13:50:13,Thank you to Linda Bean of L.L.Bean for your great support and courage. People will support you even more now. Buy L.L.Bean. @LBPerfectMaine,819541997325316000
|
256 |
+
2017-01-12 14:22:21+00:00,14:22:21,.@CNN is in a total meltdown with their FAKE NEWS because their ratings are tanking since election and their credibility will soon be gone!,819550083742109000
|
257 |
+
2017-01-12 17:41:11+00:00,17:41:11,Congrats to the Senate for taking the first step to #RepealObamacare- now it's onto the House!,819600124133474000
|
258 |
+
2017-01-13 10:49:34+00:00,10:49:34,"All of my Cabinet nominee are looking good and doing a great job. I want them to be themselves and express their own thoughts, not mine!",819858926455967000
|
259 |
+
2017-01-13 11:05:55+00:00,11:05:55,It now turns out that the phony allegations against me were put together by my political opponents and a failed spy afraid of being sued....,819863039902097000
|
260 |
+
2017-01-13 11:11:13+00:00,11:11:13,"Totally made up facts by sleazebag political operatives, both Democrats and Republicans - FAKE NEWS! Russia says nothing exists. Probably...",819864373988573000
|
261 |
+
2017-01-13 11:16:54+00:00,11:16:54,"released by ""Intelligence"" even knowing there is no proof, and never will be. My people will have a full report on hacking within 90 days!",819865802849587000
|
262 |
+
2017-01-13 11:22:38+00:00,11:22:38,What are Hillary Clinton's people complaining about with respect to the F.B.I. Based on the information they had she should never.....,819867246352801000
|
263 |
+
2017-01-13 11:25:54+00:00,11:25:54,have been allowed to run - guilty as hell. They were VERY nice to her. She lost because she campaigned in the wrong states - no enthusiasm!,819868066364461000
|
264 |
+
2017-01-13 11:33:24+00:00,11:33:24,"The ""Unaffordable"" Care Act will soon be history!",819869953692155000
|
265 |
+
2017-01-13 17:42:42+00:00,17:42:42,"A beautiful funeral today for a real NYC hero, Detective Steven McDonald. Our law enforcement community has my complete and total support.",819962894616064000
|
266 |
+
2017-01-14 12:50:26+00:00,12:50:26,"Congressman John Lewis should spend more time on fixing and helping his district, which is in horrible shape and falling apart (not to......",820251730407473000
|
267 |
+
2017-01-14 13:07:12+00:00,13:07:12,"mention crime infested) rather than falsely complaining about the election results. All talk, talk, talk - no action or results. Sad!",820255947956383000
|
268 |
+
2017-01-14 13:14:13+00:00,13:14:13,"INTELLIGENCE INSIDERS NOW CLAIM THE TRUMP DOSSIER IS ""A COMPLETE FRAUD!"" @OANN",820257714362314000
|
269 |
+
2017-01-15 00:22:01+00:00,0:22:01,Congressman John Lewis should finally focus on the burning and crime infested inner-cities of the U.S. I can use all the help I can get!,820425770925338000
|
270 |
+
2017-01-15 01:58:57+00:00,1:58:57,"Inauguration Day is turning out to be even bigger than expected. January 20th, Washington D.C. Have fun!",820450166331346000
|
271 |
+
2017-01-15 13:59:29+00:00,13:59:29,"The Democrats are most angry that so many Obama Democrats voted for me. With all of the jobs I am bringing back to our Nation, that number..",820631495660408000
|
272 |
+
2017-01-15 14:02:41+00:00,14:02:41,"will only get higher. Car companies and others, if they want to do business in our country, have to start making things here again. WIN!",820632299037409000
|
273 |
+
2017-01-15 19:00:21+00:00,19:00:21,"For many years our country has been divided, angry and untrusting. Many say it will never change, the hatred is too deep. IT WILL CHANGE!!!!",820707210565132000
|
274 |
+
2017-01-15 20:04:38+00:00,20:04:38,"Thank you to Bob Woodward who said, ""That is a garbage document...it never should have been presented...Trump's right to be upset (angry)...",820723387995717000
|
275 |
+
2017-01-15 20:13:00+00:00,20:13:00,"about that...Those Intelligence chiefs made a mistake here, & when people make mistakes, they should APOLOGIZE."" Media should also apologize",820725491812487000
|
276 |
+
2017-01-15 22:46:33+00:00,22:46:33,".@NBCNews is bad but Saturday Night Live is the worst of NBC. Not funny, cast is terrible, always a complete hit job. Really bad television!",820764134857969000
|
277 |
+
2017-01-16 00:16:20+00:00,0:16:20,".@FoxNews ""Outgoing CIA Chief, John Brennan, blasts Pres-Elect Trump on Russia threat. Does not fully understand."" Oh really, couldn't do...",820786730257285000
|
278 |
+
2017-01-16 00:29:05+00:00,0:29:05,"much worse - just look at Syria (red line), Crimea, Ukraine and the build-up of Russian nukes. Not good! Was this the leaker of Fake News?",820789938887294000
|
279 |
+
2017-01-16 13:54:52+00:00,13:54:52,Celebrate Martin Luther King Day and all of the many wonderful things that he stood for. Honor him for being the great man that he was!,820992721120854000
|
280 |
+
2017-01-17 01:42:18+00:00,1:42:18,"""@levisteveholt: @realDonaldTrump I appreciate your use of Twitter to keep us informed and maintain transparency."" Very dishonest media!",821170750983995000
|
281 |
+
2017-01-17 01:49:38+00:00,1:49:38,"At 9:00 P.M. @CNN, of all places, is doing a Special Report on my daughter, Ivanka. Considering it is CNN, can't imagine it will be great!",821172595869577000
|
282 |
+
2017-01-17 02:08:21+00:00,2:08:21,"""@drgoodspine: @realDonaldTrump @Ivanka Trump is great, a woman with real character and class.""",821177307708661000
|
283 |
+
2017-01-17 13:05:10+00:00,13:05:10,"People are pouring into Washington in record numbers. Bikers for Trump are on their way. It will be a great Thursday, Friday and Saturday!",821342600322043000
|
284 |
+
2017-01-17 13:11:56+00:00,13:11:56,"The same people who did the phony election polls, and were so wrong, are now doing approval rating polls. They are rigged just like before.",821344302651555000
|
285 |
+
2017-01-17 14:30:19+00:00,14:30:19,"With all of the jobs I am bringing back into the U.S. (even before taking office), with all of the new auto plants coming back into our.....",821364027506966000
|
286 |
+
2017-01-17 14:36:26+00:00,14:36:26,"country and with the massive cost reductions I have negotiated on military purchases and more, I believe the people are seeing ""big stuff.""",821365569366671000
|
287 |
+
2017-01-17 14:46:27+00:00,14:46:27,"John Lewis said about my inauguration, ""It will be the first one that I've missed."" WRONG (or lie)! He boycotted Bush 43 also because he...",821368088935432000
|
288 |
+
2017-01-17 14:52:39+00:00,14:52:39,"""thought it would be hypocritical to attend Bush's swearing-in....he doesn't believe Bush is the true elected president."" Sound familiar! WP",821369651968012000
|
289 |
+
2017-01-17 17:36:45+00:00,17:36:45,"""How Trump Won--And How The Media Missed It"" https://t.co/Hfab41h65X",821410947864653000
|
290 |
+
2017-01-17 17:55:38+00:00,17:55:38,Thank you to General Motors and Walmart for starting the big jobs push back into the U.S.!,821415698278875000
|
291 |
+
2017-01-17 19:36:21+00:00,19:36:21,"RT @MoskowitzEva: .@BetsyDeVos has the talent, commitment, and leadership capacity to revitalize our public schools and deliver the promise�",821441044097224000
|
292 |
+
2017-01-17 19:58:10+00:00,19:58:10,"RT @EricTrump: Thank you to @GolfDigest for this incredible feature! ""Golfer-in-Chief"" @RealDonaldTrump https://t.co/vpdY4jNbI4 https://t.c�",821446536278274000
|
293 |
+
2017-01-18 11:53:24+00:00,11:53:24,Will be interviewed by @ainsleyearhardt on @foxandfriends - Enjoy!,821686928680583000
|
294 |
+
2017-01-18 12:34:09+00:00,12:34:09,"Totally biased @NBCNews went out of its way to say that the big announcement from Ford, G.M., Lockheed & others that jobs are coming back...",821697182235496000
|
295 |
+
2017-01-18 12:44:03+00:00,12:44:03,"to the U.S., but had nothing to do with TRUMP, is more FAKE NEWS. Ask top CEO's of those companies for real facts. Came back because of me!",821699672687448000
|
296 |
+
2017-01-18 13:00:51+00:00,13:00:51,"""Bayer AG has pledged to add U.S. jobs and investments after meeting with President-elect Donald Trump, the latest in a string..."" @WSJ",821703902940827000
|
297 |
+
2017-01-18 13:06:58+00:00,13:06:58,No wonder the Today Show on biased @NBC is doing so badly compared to its glorious past. Little credibility!,821705440178348000
|
298 |
+
2017-01-18 14:03:53+00:00,14:03:53,.@TheAlabamaBand was great last night in D.C. playing for 147 Diplomats and Ambassadors from countries around the world. Thanks Alabama!,821719763214880000
|
299 |
+
2017-01-18 17:33:25+00:00,17:33:25,"Writing my inaugural address at the Winter White House, Mar-a-Lago, three weeks ago. Looking forward to Friday.� https://t.co/J0ojOXjrga",821772494864580000
|
300 |
+
2017-01-18 22:21:02+00:00,22:21:02,"Looking forward to a speedy recovery for George and Barbara Bush, both hospitalized. Thank you for your wonderful letter!",821844875268255000
|
301 |
+
2017-01-19 01:54:13+00:00,1:54:13,Great seeing @TheLeeGreenwood and Kimberly at this evenings VP dinner! #GodBlessTheUSA https://t.co/SxVmaWvOFT,821898525432811000
|
302 |
+
2017-01-19 04:01:40+00:00,4:01:40,Thank you to our amazing Wounded Warriors for their service. It was an honor to be with them tonight in D.C.� https://t.co/Qj5cpfaykD,821930600290521000
|
303 |
+
2017-01-19 12:52:22+00:00,12:52:22,"""It wasn't Donald Trump that divided this country, this country has been divided for a long time!"" Stated today by Reverend Franklin Graham.",822064153426857000
|
304 |
+
2017-01-19 13:00:13+00:00,13:00:13,"Getting ready to leave for Washington, D.C. The journey begins and I will be working and fighting very hard to make it a great journey for..",822066132307808000
|
305 |
+
2017-01-19 13:02:18+00:00,13:02:18,"the American people. I have no doubt that we will, together, MAKE AMERICA GREAT AGAIN!",822066653953458000
|
306 |
+
2017-01-19 20:13:57+00:00,20:13:57,On my way! #Inauguration2017 https://t.co/hOuMbxGnpe,822175285151928000
|
307 |
+
2017-01-19 20:18:32+00:00,20:18:32,Great Concert at 4:00 P.M. today at Lincoln Memorial. Enjoy!,822176438627536000
|
308 |
+
2017-01-19 20:21:36+00:00,20:21:36,"Join me at 4pm over at the Lincoln Memorial with my family!
|
309 |
+
#Inauguration2017 https://t.co/GQeQpJOgWz",822177206633955000
|
310 |
+
2017-01-20 00:40:51+00:00,0:40:51,"Thank you for joining us at the Lincoln Memorial tonight- a very special evening! Together, we are going to MAKE AM� https://t.co/OSxa3BamHs",822242449053614000
|
311 |
+
2017-01-20 04:24:33+00:00,4:24:33,"Thank you for a wonderful evening in Washington, D.C. #Inauguration https://t.co/a6xpFQTHj5",822298747421986000
|
312 |
+
2017-01-20 12:31:53+00:00,12:31:53,It all begins today! I will see you at 11:00 A.M. for the swearing-in. THE MOVEMENT CONTINUES - THE WORK BEGINS!,822421390125043000
|
313 |
+
2017-01-20 17:51:25+00:00,17:51:25,"Today we are not merely transferring power from one Administration to another, or from one party to another � but we are transferring...",822501803615014000
|
314 |
+
2017-01-20 17:51:58+00:00,17:51:58,"power from Washington, D.C. and giving it back to you, the American People. #InaugurationDay",822501939267141000
|
315 |
+
2017-01-20 17:52:45+00:00,17:52:45,"What truly matters is not which party controls our government, but whether our government is controlled by the people.",822502135233384000
|
316 |
+
2017-01-20 17:53:17+00:00,17:53:17,"January 20th 2017, will be remembered as the day the people became the rulers of this nation again.",822502270503972000
|
317 |
+
2017-01-20 17:54:36+00:00,17:54:36,We will bring back our jobs. We will bring back our borders. We will bring back our wealth - and we will bring back our dreams!,822502601304526000
|
318 |
+
2017-01-20 17:58:24+00:00,17:58:24,It is time to remember that...https://t.co/ZKyOiOor62,822503558369181000
|
319 |
+
2017-01-20 18:00:43+00:00,18:00:43,"So to all Americans, in every city near and far, small and large, from mountain to mountain...https://t.co/cZKkrGXLSi",822504142178500000
|
320 |
+
2017-01-21 11:53:41+00:00,11:53:41,A fantastic day and evening in Washington D.C.Thank you to @FoxNews and so many other news outlets for the GREAT reviews of the speech!,822774162011910000
|
321 |
+
2017-01-21 23:54:31+00:00,23:54:31,"RT @WhiteHouse: ""Do not allow anyone to tell you that it cannot be done. No challenge can match the HEART and FIGHT and SPIRIT of America.""�",822955565949272000
|
322 |
+
2017-01-22 12:35:09+00:00,12:35:09,"Had a great meeting at CIA Headquarters yesterday, packed house, paid great respect to Wall, long standing ovations, amazing people. WIN!",823146987117772000
|
323 |
+
2017-01-22 12:47:21+00:00,12:47:21,Watched protests yesterday but was under the impression that we just had an election! Why didn't these people vote? Celebs hurt cause badly.,823150055418920000
|
324 |
+
2017-01-22 12:51:36+00:00,12:51:36,"Wow, television ratings just out: 31 million people watched the Inauguration, 11 million more than the very good ratings from 4 years ago!",823151124815507000
|
325 |
+
2017-01-22 14:23:17+00:00,14:23:17,"Peaceful protests are a hallmark of our democracy. Even if I don't always agree, I recognize the rights of people to express their views.",823174199036542000
|
326 |
+
2017-01-23 11:38:16+00:00,11:38:16,Busy week planned with a heavy focus on jobs and national security. Top executives coming in at 9:00 A.M. to talk manufacturing in America.,823495059010109000
|
327 |
+
2017-01-24 11:11:47+00:00,11:11:47,Will be meeting at 9:00 with top automobile executives concerning jobs in America. I want new plants to be built here for cars sold here!,823850781946343000
|
328 |
+
2017-01-24 16:58:06+00:00,16:58:06,A photo delivered yesterday that will be displayed in the upper/lower press hall. Thank you Abbas! https://t.co/Uzp0ivvRp0,823937936056008000
|
329 |
+
2017-01-24 17:04:01+00:00,17:04:01,"Great meeting with automobile industry leaders at the @WhiteHouse this morning. Together, we will #MAGA! https://t.co/OXdiLOkGsZ",823939422743830000
|
330 |
+
2017-01-24 17:49:17+00:00,17:49:17,Signing orders to move forward with the construction of the Keystone XL and Dakota Access pipelines in the Oval Off� https://t.co/aOxmfO0vOK,823950814163140000
|
331 |
+
2017-01-25 00:46:57+00:00,0:46:57,Great meeting with Ford CEO Mark Fields and General Motors CEO Mary Barra at the @WhiteHouse today. https://t.co/T0eIgO6LP8,824055927200423000
|
332 |
+
2017-01-25 02:16:19+00:00,2:16:19,Congratulations to @FoxNews for being number one in inauguration ratings. They were many times higher than FAKE NEWS @CNN - public is smart!,824078417213747000
|
333 |
+
2017-01-25 02:25:40+00:00,2:25:40,"If Chicago doesn't fix the horrible ""carnage"" going on, 228 shootings in 2017 with 42 killings (up 24% from 2016), I will send in the Feds!",824080766288228000
|
334 |
+
2017-01-25 02:37:48+00:00,2:37:48,"Big day planned on NATIONAL SECURITY tomorrow. Among many other things, we will build the wall!",824083821889015000
|
335 |
+
2017-01-25 12:10:01+00:00,12:10:01,"I will be asking for a major investigation into VOTER FRAUD, including those registered to vote in two states, those who are illegal and....",824227824903090000
|
336 |
+
2017-01-25 12:13:46+00:00,12:13:46,"even, those registered to vote who are dead (and many for a long time). Depending on results, we will strengthen up voting procedures!",824228768227217000
|
337 |
+
2017-01-25 12:17:01+00:00,12:17:01,I will be making my Supreme Court pick on Thursday of next week.Thank you!,824229586091307000
|
338 |
+
2017-01-25 22:05:59+00:00,22:05:59,I will be interviewed by @DavidMuir tonight at 10 o'clock on @ABC. Will be my first interview from the White House.� https://t.co/4zuOrRdcoc,824377804590563000
|
339 |
+
2017-01-26 00:03:33+00:00,0:03:33,"Beginning today, the United States of America gets back control of its borders. Full speech from today @DHSgov:� https://t.co/8aDaHsAhg9",824407390674157000
|
340 |
+
2017-01-26 02:14:56+00:00,2:14:56,"As your President, I have no higher duty than to protect the lives of the American people. https://t.co/o7YNUNwb8f",824440456813707000
|
341 |
+
2017-01-26 02:45:32+00:00,2:45:32,"""@romoabcnews: .@DavidMuir first @POTUS interview since taking office. Tonight on @ABCWorldNews @ABC2020 tonight. https://t.co/I4Vz1mRdBK""",824448156935081000
|
342 |
+
2017-01-26 02:48:25+00:00,2:48:25,Interview with David Muir of @ABC News in 10 minutes. Enjoy!,824448880993509000
|
343 |
+
2017-01-26 11:04:24+00:00,11:04:24,"Ungrateful TRAITOR Chelsea Manning, who should never have been released from prison, is now calling President Obama a weak leader. Terrible!",824573698774601000
|
344 |
+
2017-01-26 13:51:46+00:00,13:51:46,The U.S. has a 60 billion dollar trade deficit with Mexico. It has been a one-sided deal from the beginning of NAFTA with massive numbers...,824615820391305000
|
345 |
+
2017-01-26 13:55:03+00:00,13:55:03,"of jobs and companies lost. If Mexico is unwilling to pay for the badly needed wall, then it would be better to cancel the upcoming meeting.",824616644370714000
|
346 |
+
2017-01-26 19:21:17+00:00,19:21:17,"Spoke at the Congressional @GOP Retreat in Philadelphia, PA. this afternoon w/ @VP, @SenateMajLdr, @SpeakerRyan. Th� https://t.co/ALSADGrwoe",824698743630995000
|
347 |
+
2017-01-26 23:45:28+00:00,23:45:28,Will be interviewed by @SeanHannity on @FoxNews at 10:00pm tonight. Enjoy!,824765229527605000
|
348 |
+
2017-01-26 23:53:37+00:00,23:53:37,Miami-Dade Mayor drops sanctuary policy. Right decision. Strong! https://t.co/MtPvaDC4jM,824767281146245000
|
349 |
+
2017-01-27 13:12:52+00:00,13:12:52,"Look forward to seeing final results of VoteStand. Gregg Phillips and crew say at least 3,000,000 votes were illegal. We must do better!",824968416486387000
|
350 |
+
2017-01-27 13:19:10+00:00,13:19:10,"Mexico has taken advantage of the U.S. for long enough. Massive trade deficits & little help on the very weak border must change, NOW!",824970003153842000
|
351 |
+
2017-01-27 16:27:02+00:00,16:27:02,The #MarchForLife is so important. To all of you marching --- you have my full support!,825017279209410000
|
352 |
+
2017-01-27 16:30:29+00:00,16:30:29,.@VP Mike Pence will be speaking at today's #MarchForLife -- You have our full support! https://t.co/1jb53SEGV4,825018149397463000
|
353 |
+
2017-01-27 20:20:15+00:00,20:20:15,Statement on International Holocaust Remembrance Day: https://t.co/KjU0MOxCHk,825075972659613000
|
354 |
+
2017-01-27 22:00:47+00:00,22:00:47,Congratulations Secretary Mattis! https://t.co/mkuhbegzqS,825101272982355000
|