Seite 1 von 1

Python Text Cleaning - HELP

Verfasst: Montag 30. März 2020, 14:09
von marieteres
Hallo Alle,

ich schlage mich gerade mit Python rum und muss für meine Masterarbeit ein paar Tweets analysieren.
Dazu muss ich erstmal diese "cleanen". Mein Code ist im Moment wie folgt:

Code: Alles auswählen

import pandas as pd
df = pd.read_excel("Allianz_Test.xlsx")

df['Text'] = df['Text'].astype('string')

tweets = []
tweets = list(df["Text"])
tweets[0:]
result = ";".join(tweets[0:])
result_lower = result.lower()

import re
result_URL = re.sub('((www\.[^\s]+)|(https?://[^\s]+))',"", result_lower)
result_AT = re.sub('@[^\s]+',"", result_URL)
result_Hash = re.sub(r'#([^\s]+)', r'\1', result_AT)

from nltk.corpus import stopwords
stop_words = set(stopwords.words('english'))
from nltk.tokenize import word_tokenize
tokens = word_tokenize(result_Hash)
result1 = [i for i in tokens if not i in stop_words]
Ist nicht der schönste Code, aber tut eigentlich was er soll. Mein Problem ist nur, dass ich aus meiner Exceltabelle keine Liste in Liste hinbekomme. Also das jeder Tweet eine Liste ist und alle in einer Liste abgespeichert sind.
Ohne das wird es bei der tokenize Phase sehr unsauber, weil alles durcheinander ist und ich damit nicht wirklich weiterarbeiten kann.
Ich würde mich freuen, wenn mir jemand weiterhelfen kann, komme mit Googeln und Büchern nicht weiter.

Tausend Dank!!
Teresa

Re: Python Text Cleaning - HELP

Verfasst: Montag 30. März 2020, 14:57
von Sirius3
Importe gehören an den Anfang der Datei.
Die erste Zuweisung einer leeren Liste an `tweets` ist unsinnig, da sie in der nächsten Zeile schon wieder überschrieben wird.
`tweets[:0]` ist auch unsinnig, weil mit dem Resultat nichts gemacht wird. [0:] ist in der nächsten Zeile auch unsinnig, weil Du ja damit nur wieder eine Kopie der ganzen Liste machst, die aber gar nicht gebraucht wird.
Und dann kommt schon Dein Problem: Du packst dann die Liste aller Texte in einen String. Laut eigener Aussage willst Du das aber gar nicht. Dann lass das sein.