Nisse00 commited on
Commit
5cf061d
1 Parent(s): f131af3

Can now write to csv file and store tweets

Browse files
Data.csv ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ id,tweet,date,user_id,username,urls,nlikes,nreplies,nretweets
2
+ 1546801285021814784,"Sverigedemokraterna kommer även fortsättningsvis att vara den tyngsta rösten för kraftigt sänkta priser på både bränsle och el. Alla vi miljontals människor som bor utanför storstädernas kollektivtrafik och cykelbanor måste kunna leva. Sänk bränslepriserna, nu! https://t.co/OiPb6WdaZG",2022-07-12 12:18:59,95972673,jimmieakesson,[],1111,67,105
3
+ 1544748873767424001,Fruktansvärt att nås av beskedet att kvinnan som attackerades i Visby har avlidit. Mina tankar finns hos hennes familj ikväll.,2022-07-06 20:23:26,95972673,jimmieakesson,[],3482,178,143
4
+ 1538948369611210764,"@annieloof Nej, jag håller med. Tänk mer som Mathias Andersson (SD). https://t.co/gSqQDz5N8z",2022-06-20 20:14:18,95972673,jimmieakesson,[],1512,89,115
5
+ 1537770920621879297,"Man kan ha synpunkter på en sådan lösning, men den är naturligtvis att föredra framför frigående våldsverkare som fortsätter misshandla sina offer i väntan på fängelse.",2022-06-17 14:15:32,95972673,jimmieakesson,[],694,17,41
6
+ 1537770809225273344,Är det ont om plats på anstalterna så får man sänka standarden rejält för att få rum med fler interner per kvadratmeter.,2022-06-17 14:15:05,95972673,jimmieakesson,[],812,26,57
7
+ 1537770713368735744,"Döms man för brott, särskilt våldsbrott, ska man vara inlåst från det att domen faller tills straffet är avtjänat. Allt annat är vansinne.",2022-06-17 14:14:43,95972673,jimmieakesson,[],1015,26,85
8
+ 1537770657823576066,"Platsbrist? Jaha, vad spelar det för roll? Det gör mig förbannad och bestört att lösningen på problemet med överfulla fängelser verkar vara att dömda våldsbrottslingar får röra sig fritt i samhället istället för att sitta inlåsta. https://t.co/QDi9rM3kMC",2022-06-17 14:14:29,95972673,jimmieakesson,['https://sverigesradio.se/artikel/domda-kvinnomisshandlare-kan-fortsatta-valdet-mot-samma-kvinna-innan-fangelset'],1158,86,132
9
+ 1534230353094885383,"Det är ytterst beklagligt att Magdalena Andersson saboterar Sveriges Natoansökan genom att kohandla med en marxistisk vilde som inte bryr sig ett smack om Sverige, utan istället fullt ut företräder utländska intressen. Svekfullt, maktfullkomligt och ansvarslöst.",2022-06-07 19:46:35,95972673,jimmieakesson,[],6119,544,556
10
+ 1533881878553538560,"Glöm att Sverigedemokraterna kommer att lova regeringen frikort att missköta sig för att de gör sig av med en, förvisso exceptionellt usel, minister. https://t.co/3yVuUQU42o",2022-06-06 20:41:52,95972673,jimmieakesson,['https://live.aftonbladet.se/supernytt/news/m-och-l-foeljer-kds-erbjudande-till-magdalena-andersson.CqhNSVhf9'],1080,97,77
11
+ 1532625870824808448,"Det är bra att väljarna får denna tydliga varudeklaration, en röst på Centern är en röst på Socialdemokraterna.",2022-06-03 09:30:57,95972673,jimmieakesson,[],1256,57,96
12
+ 1532625804223516672,Centern ❤️ Sossarna Ännu en gång är det Annie Lööf som kommer till Morgan Johanssons räddning. För vilken gång i ordningen vet jag inte. Det är tydligt att Centern blivit det vänsterparti som krafter inom partiet arbetat för att det ska bli.,2022-06-03 09:30:41,95972673,jimmieakesson,[],2513,211,188
13
+ 1532341074127163392,"Därför valde Sverigedemokraterna idag att, under dagens frågestund i kammaren, väcka frågan om misstroende gentemot Morgan Johansson. Sverige förtjänar bättre.",2022-06-02 14:39:16,95972673,jimmieakesson,[],791,32,34
14
+ 1532340946456694785,"Morgan Johanssons misslyckanden kan inte få fortgå en enda dag mer än nödvändigt och det är vår inställning att oavsett valets utfall, så bör han förtidspensioneras som Sveriges justitie- och inrikesminister.",2022-06-02 14:38:45,95972673,jimmieakesson,[],660,9,40
15
+ 1532340845042622465,"De enda som kan vara nöjda med regeringens arbete är de kriminella, de som mördar, skadar och hotar. De hoppas just nu på att även kommande mandatperiod ska innebära ytterligare fyra år med Socialdemokratisk saft- och bullepolitik.",2022-06-02 14:38:21,95972673,jimmieakesson,[],435,15,35
16
+ 1532340768681209858,Tusentals föräldrar och syskon har förlorat någon närstående och Morgan Johanssons misslyckanden är förmodligen ett av de mest tragiska kapitlen i svensk historia.,2022-06-02 14:38:03,95972673,jimmieakesson,[],406,7,21
17
+ 1532340666751242240,Morgan Johansson måste avgå som minister. Otryggheten biter sig fast och gängkriminaliteten är allt annat än knäckt. Antalet skjutningar ökar och sätter skräck i varje del av vårt land. Sverige har förvandlats till ett gangsterland.,2022-06-02 14:37:39,95972673,jimmieakesson,[],3065,172,231
18
+ 1523345947165483008, https://t.co/64aJSb1G58,2022-05-08 18:55:50,95972673,jimmieakesson,['https://www.dn.se/debatt/sa-vill-m-sd-kd-och-l-ge-alla-pensionarer-mer-i-planboken/'],123,9,11
19
+ 1523345873769357312,"För oss Sverigedemokrater är detta en prioriterad fråga om både rättvisa och moral. Svenskar som på olika sätt har varit med och byggt det här landet, förtjänar en värdig ålderdom.",2022-05-08 18:55:33,95972673,jimmieakesson,[],295,11,14
20
+ 1523345831629180928,"I en tid när priserna stiger kraftigt på just de varor och tjänster som är svårast att avvara – mat, värme och bränsle - är det nödvändigt att förbättra de svenska pensionärernas situation.",2022-05-08 18:55:23,95972673,jimmieakesson,[],214,5,8
21
+ 1523345750255538176,"Största pensionssatsningen sedan pensionssystemet infördes. Vi kan idag presentera en överenskommelse med Moderaterna, Kristdemokraterna och Liberalerna om att göra den största förstärkningen av pensionärernas ekonomi sedan det nuvarande pensionssystemet infördes. https://t.co/tENrQDFy9o",2022-05-08 18:55:03,95972673,jimmieakesson,[],707,57,73
22
+ 1522508592376602625,Varför har ens SR alla dessa invandrarredaktioner? Ska du bo i Sverige - lär dig svenska.,2022-05-06 11:28:29,95972673,jimmieakesson,[],6878,380,522
23
+ 1521752982198620161,"Jag uppmanar andra inbjudna partiledare att ställa samma krav. Det får faktiskt finnas någon gräns för tokigheterna, svensk polis förtjänar tydligt stöd från Sveriges politiska partier.",2022-05-04 09:25:58,95972673,jimmieakesson,[],1916,48,106
24
+ 1521752934702362626,Järvaveckan får helt enkelt välja – polishataren Kakan Hermansson eller partiledaren Jimmie Åkesson.,2022-05-04 09:25:47,95972673,jimmieakesson,[],1591,53,77
25
+ 1521752853110566912,"Jag kommer idag att meddela arrangörerna att jag inte avser närvara och hålla tal på årets Järvaveckan, vilket tidigare planerats, om denna person på något sätt är en del av deras evenemang.",2022-05-04 09:25:27,95972673,jimmieakesson,[],1258,46,56
26
+ 1521752814082535424,"Kakan Hermansson har genom åren gjort sig känd för en rad politiskt extrema och direkt stötande uttalanden, inte minst hatiska inlägg om svensk polis.",2022-05-04 09:25:18,95972673,jimmieakesson,[],1006,27,47
27
+ 1521752766921781249,"Nu figurerar uppgifter om att årets upplaga av Järvaveckan, en politikervecka i norra Stockholm, återigen genomförs i samarbete med den mycket hårt kritiserade extremvänsterprofilen Kakan Hermansson.",2022-05-04 09:25:07,95972673,jimmieakesson,[],780,10,33
28
+ 1521752718070755331,"Den senaste tidens utveckling, med Ramadan-kravaller innefattande grovt våld i uppenbart syfte att döda poliser, har aktualiserat behovet av sammanhållning och rakryggat stöd för Polisen och för det svenska samhället i stort.",2022-05-04 09:24:55,95972673,jimmieakesson,[],853,13,35
29
+ 1521752661170794496,Järvaveckan får välja – Kakan Hermansson eller Jimmie Åkesson,2022-05-04 09:24:41,95972673,jimmieakesson,[],3926,465,215
30
+ 1521489890369843200,Varför svenska barn påtvingas politisk indoktrinering i skolan är en fråga som kräver en omedelbar förklaring. Vi kommer att kalla Skolverkets generaldirektör till utbildningsutskottet. Från dagens nationella prov i historia.,2022-05-03 16:00:32,95972673,jimmieakesson,[],3361,168,246
31
+ 1521489797038157827,Det här äcklar mig på riktigt. Propaganda riktad till skolbarn hör hemma i diktaturer. https://t.co/BDYiNs8NDV,2022-05-03 16:00:10,95972673,jimmieakesson,[],6806,735,711
32
+ 1521395241454034945, https://t.co/tpIq94r7BG,2022-05-03 09:44:26,95972673,jimmieakesson,['https://www.youtube.com/watch?v=f-eK1cgzGF8&ab_channel=Sverigedemokraterna'],179,10,20
33
+ 1521180859012943878,Ikväll medverkar jag i Aktuellt. Ämnet är trafiken och Sveriges åtgärder för att minska utsläppen. Debatt mot Annie Lööf. Aktuellt sänds i SVT2 med start kl 21.00.,2022-05-02 19:32:33,95972673,jimmieakesson,[],875,104,53
34
+ 1518934290972790785,"Redan för 13 år sedan, 2009, skrev jag en uppmärksammad artikel i Aftonbladet om just denna utveckling. Det är dags att ta bladet från munnen. Det är dags att fler än vi Sverigedemokrater kallar en spade för en spade.",2022-04-26 14:45:30,95972673,jimmieakesson,[],616,13,54
35
+ 1518934171762241538,"Det finns ett uppenbart och betydande inslag av helt vanliga muslimer bland våldsverkarna, människor som rent fysiskt bor i Sverige men som mentalt lever kvar i Mellanöstern och Afrikas Horn.",2022-04-26 14:45:01,95972673,jimmieakesson,[],507,12,36
36
+ 1518934051318636548,"’Allahu Akbar’, stenkastning, grov misshandel av poliser, besinningslös förstörelse av allmän egendom.",2022-04-26 14:44:32,95972673,jimmieakesson,[],262,4,19
37
+ 1518933928123539456,Ingen som tagit del av ljud och bild från kravallerna kan ha undgått att såväl beteendet som slagorden är direkt importerade från motsvarande händelser i den muslimska delen av världen.,2022-04-26 14:44:03,95972673,jimmieakesson,[],310,7,33
38
+ 1518933873886912512,"'Allahu Akbar', stenkastning och grov misshandel av poliser. Jag varnade för detta redan för 13 år sedan. https://t.co/UnweyJ1FOK",2022-04-26 14:43:50,95972673,jimmieakesson,['https://nyheteridag.se/tar-man-mellanostern-till-sverige-sa-blir-sverige-som-mellanostern/?fbclid=IwAR2Sfzbz55VZk5LEeHKmLdfK_z0SC6t8oFEgsDdrDUu-_fHj45WvVZB--VY'],1756,91,188
39
+ 1518613900186501120,Ebba har rätt. Poliser bör skjuta skarpt när islamister försöker ta deras liv. Hur detta ens kan vara kontroversiellt är för mig en gåta. Perspektiv från en polis: https://t.co/5B3RPAV9rt,2022-04-25 17:32:22,95972673,jimmieakesson,['https://twitter.com/peppe_larsson/status/1517970014694948872?s=21'],2782,140,247
40
+ 1518584979193745408,Vad vi också har gemensamt är åsikten att Polisen behöver fler och bättre verktyg för att återuppbygga tryggheten. Inte minst förra helgens islamistkravaller visar behovet av det.,2022-04-25 15:37:27,95972673,jimmieakesson,[],747,29,36
41
+ 1518584871718948867,"Idag gjorde jag och Ebba Busch ett verksamhetsbesök inom äldrevården i Karlskrona. Vi är överens om att äldrevården behöver bli bättre, något som båda våra partier prioriterar. https://t.co/iBwx2QiCxK",2022-04-25 15:37:02,95972673,jimmieakesson,[],2108,104,116
42
+ 1517463287897731074,@Ygeman Anders Ygeman är själv expert på att undgå att ta ansvar för dom misslyckanden som hans egen regering har orsakat. Så det är inte oväntat att han är kritisk till vårt förslag om ökat familjeansvar.,2022-04-22 13:20:15,95972673,jimmieakesson,[],256,9,13
43
+ 1517463123267047427,"@Ygeman Straffa förövarna? Ni har under åtta år bjudit dem på saft och bullar, samtidigt som ni misskött polisen till den grad att de tvingas backa för en stenkastande islamistmobb.",2022-04-22 13:19:36,95972673,jimmieakesson,[],659,14,36
textclassifier/TextClassifier.py CHANGED
@@ -1,4 +1,5 @@
1
  import openai
 
2
  import regex as re
3
  from twitterscraper import TwitterScraper
4
  from datetime import date
@@ -8,7 +9,7 @@ class TextClassifier:
8
  def __init__(self, model_name="text-davinci-002", from_date='2022-01-01', to_date=str(date.today()),
9
 
10
  user_name='jimmieakesson',
11
- num_tweets=20):
12
  """
13
  Initializes the TextClassifier.
14
  :param model_name: name of the model from openai.
@@ -179,14 +180,14 @@ class TextClassifier:
179
  "\nTransportation,\nWorld.\nTOPIC="
180
 
181
  response = openai.Completion.create(
182
- model=self.model_name,
183
- prompt=prompt_string,
184
- temperature=0,
185
- max_tokens=892,
186
- top_p=1,
187
- frequency_penalty=0,
188
- presence_penalty=0,
189
- )
190
  classification_unclean = response.choices[0]['text']
191
  classification_clean = self.cleanup_topic_results(classification_unclean)
192
 
@@ -205,11 +206,37 @@ class TextClassifier:
205
  self.num_tweets)
206
 
207
  def cleanup_topic_results(prediction_dict, text):
208
- new_item = text.replace("\n", " ")
209
- new_item = new_item.replace(" ", " ")
210
- return new_item
 
211
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
212
 
213
 
214
  if __name__ == "__main__":
 
 
 
 
 
 
215
 
 
1
  import openai
2
+ import csv
3
  import regex as re
4
  from twitterscraper import TwitterScraper
5
  from datetime import date
 
9
  def __init__(self, model_name="text-davinci-002", from_date='2022-01-01', to_date=str(date.today()),
10
 
11
  user_name='jimmieakesson',
12
+ num_tweets=20, ):
13
  """
14
  Initializes the TextClassifier.
15
  :param model_name: name of the model from openai.
 
180
  "\nTransportation,\nWorld.\nTOPIC="
181
 
182
  response = openai.Completion.create(
183
+ model=self.model_name,
184
+ prompt=prompt_string,
185
+ temperature=0,
186
+ max_tokens=892,
187
+ top_p=1,
188
+ frequency_penalty=0,
189
+ presence_penalty=0,
190
+ )
191
  classification_unclean = response.choices[0]['text']
192
  classification_clean = self.cleanup_topic_results(classification_unclean)
193
 
 
206
  self.num_tweets)
207
 
208
  def cleanup_topic_results(prediction_dict, text):
209
+ new_item = text.replace("\n", " ")
210
+ new_item = new_item.replace(" ", " ")
211
+ return new_item
212
+
213
 
214
+ def add_to_csv_if_not_already_exists(self, filename="/Users/nils/SoftHouse/politweet/Data.csv"):
215
+ self.df.to_csv(filename, mode='a', header=False, index=False)
216
+ df = pd.read_csv(filename)
217
+ df.drop_duplicates(subset=['id'], inplace=True)
218
+ df.to_csv(filename, index=False)
219
+
220
+
221
+ def return_row_if_ID_Exists(self, id: str, filename="/Users/nils/SoftHouse/politweet/Data.csv"):
222
+ """
223
+ Checks if a ID is already in the Data.csv file and if it is, it returns the row
224
+ :param id:
225
+ :return:
226
+ """
227
+ with open(filename, 'r') as csvfile:
228
+ datareader = csv.reader(csvfile)
229
+ for row in datareader:
230
+ if row[0] == id:
231
+ return row
232
+ return None
233
 
234
 
235
  if __name__ == "__main__":
236
+ import pandas as pd
237
+
238
+ pd.set_option('display.max_columns', None)
239
+ TC = TextClassifier(num_tweets=200)
240
+ TC.add_to_csv_if_not_already_exists()
241
+
242
 
twitterscraper/TwitterScraper.py CHANGED
@@ -108,6 +108,7 @@ class TwitterScraper(object):
108
  self.num_tweets)
109
 
110
 
 
111
  if __name__ == "__main__":
112
  sc = TwitterScraper(from_date="2022-05-01", to_date="2022-07-31", num_tweets=40)
113
  dc = sc.scrape_by_user("jimmieakesson")
 
108
  self.num_tweets)
109
 
110
 
111
+
112
  if __name__ == "__main__":
113
  sc = TwitterScraper(from_date="2022-05-01", to_date="2022-07-31", num_tweets=40)
114
  dc = sc.scrape_by_user("jimmieakesson")