Seite 1 von 1
Jupyter Notebook- Problem mit der Encodierung
Verfasst: Sonntag 14. Februar 2016, 21:46
von Noranora
Hallo! Ich habe ein Probelm. Und zwar lese ich mit dem Jupyter Notebook eine Textdatei ein. Bei deiser werden jedoch alle Umlaute falsch ausgegeben.
Bei dem ort " erläutere" sieht das dann so aus " xa4uterte ".
Folgende Versuche habe ich schon unternommen:
import codecs
#text=with codecs.open(filename, encoding='utf8')
#inhalt= codecs.open(datei,"r","utf-8")
# text= open(filename, encode= utf-8)
Jedoch funktioniert keines davon. Woran kann das liegen, bzw. was kann ich ansonsten machen? Es ist echt wichtig! ...
Danke schon mal!
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Sonntag 14. Februar 2016, 22:10
von Sirius3
@Noranora: das was Du da siehst ist nur die Repräsentation eines Strings, die nur für Debugzwecke gedacht ist. Wie gibst Du wo Text aus?
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Sonntag 14. Februar 2016, 22:19
von Noranora
Ich lasse den Text direkt in dem Jupyter Notebook ausgeben. Also leite das nicht in eine extra Datei um, falls du das meinst?...Ich brauche den Text um ihn dann auf Worthäufigkeiten, etc zu untersuchen
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Sonntag 14. Februar 2016, 22:22
von Sirius3
@Noranora: um Dir helfen zu können, müssen wir schon wissen was Du genau machst.
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 08:14
von /me
Noranora hat geschrieben:Ich lasse den Text direkt in dem Jupyter Notebook ausgeben.
Aber wie? Liest du den Dateiinhalt komplett in einen String oder in eine Liste aus? Wie verwendest du anschließend
print um den Text auszugeben?
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 08:48
von Noranora
okay, also die Befehle sehen so aus :
Code: Alles auswählen
import codecs
import nltk
from nltk import sent_tokenize, word_tokenize
import urllib
import re
from pattern.de import parse, split
#with codesc.open("filename.txt", encoding'utf8')as text:
text= open("filename.txt")
#text=with codecs.open(filename, encoding='utf8')
#inhalt= codecs.open(datei,"r","utf-8")#with codecs.open(filename, encoding='utf8') as f
kontext=(text.read())
kontext=kontext.decode('utf-8')
s = parse(kontext) # parst den Text aus der Datei
s = split(s)
saetze=s.sentences
habe manche Versuche schon wieder aukommentiert, da sie nicht funktionierten....
dann folgt eine ziemlich lange Ausgabe des Dateiinhaltes in der geparsten Form, das sieht dann alles so aus:
Gesetzes\xc3\xa4nderung/NN/I-NP/O durch/IN/B-PP/B-PNP die/DT/B-NP/I-PNP
wie Ihr seht, funktioniert die richtige Kodierung bei den Umlauten dann nicht. Es müsste bspw."Gesetzesänderung" heißen...
Danke schon mal für eure Mühe!
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 08:54
von Noranora
Code: Alles auswählen
s = parse(inhalt) # parst den Text aus der Datei
s = split(s)
saetze=s.sentences
Der Teil ist oben irgendwie verloren gegangen. In dem Teil werden die einzelnen Sätze der Datei geparst
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 09:08
von Sirius3
@Noranora: und saetze ist eine Liste, deren Repräsentation besteht aus eckigen Klammern und den Repräsentationen der Elemente, also der Strings. Wie schon oben geschrieben ist das keine Ansicht, die man einem Nutzer vor die Füße werfen sollte, sondern nur zu Debugging-Zwecken.
Je nach dem, was Du mit saetzen machen willst, mußt Du dann die passende Ausgabe programmieren, im einfachsten Fall also:
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 09:43
von Noranora
Hallo! Das habe ich nun ausprobiert. In der geparsten Form werden die Sachen dann trotzdem in der Form ausgegeben:
die/DT/B-NP/I-PNP Antr\xc3\xa4ge/NN/I-NP/I-PNP von
"Antr\xc3\xa4ge " anstelle von "Anträge"
Ich brauche irgendwie eine Lösung mit der ich die Sätze parsen kann und dazu die Utf-8 Codierung verwendet wird. Ist das nicht möglich?
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 10:23
von Noranora
BZW. ist es möglich anhand solcher Daten eine Analyse über Worthäufigkeiten, etc.anzufertigen, oder sind die Ergebnisse dann immer verfälscht. Also ich meine, ob das jetzt halt nur für mich so aussieht, der Computer die Unterschiede aber kennt, oder ob er ebenfalls mit diesen visualisierten Daten arbeitet...?
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 11:39
von Sirius3
@Noranora: so ein bißchen mußt Du Dich schon mit den Objekten auseinandersetzen, mit denen Du arbeitest. Mit print kann man z.B. nur einfache Datentypen wie Zahlen oder Strings ausgeben lassen, oder Objekte, die eine sinnvolle __str__-Methode definieren. Bei allen anderen Objekten wird die Repräsentation ausgegeben, wie schon öfter geschrieben mit den entsprechenden Effekten auf Sonderzeichen. Jetzt soll ich mich also durch die Dokumentation Deiner exotischen Module durcharbeiten um zu sehen, dass ein Sentence-Objekt ein string-Property hat statt einer __str__-Methode:
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 11:49
von Noranora
Vielen, vielen Dank! Du hast mir sehr geholfen!

)
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 12:26
von Noranora
Gibt es denn auch noch eine Möglichkeit, bei der die Resultatse von dem prasen übrig bleiben?...also /NN/NP...
Re: Jupyter Notebook- Problem mit der Encodierung
Verfasst: Montag 15. Februar 2016, 14:05
von Sirius3
@Noranora: erster Schritt wäre Dokumentation lesen.