Wie kann man zählen, wie oft jedes Wort im Text vorkommt

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Noranora
User
Beiträge: 62
Registriert: Donnerstag 21. Januar 2016, 12:51

Hallo!

Ich möchte gerne eine Funktion schreiben, mit der ich die Wortvorkommen von jedem Wort in einer Datei bekomme.

Bspw. in demm Text: " Hallo! Wie geht es Dir? Hallo, ja ganz gut. Siehst du mich? Ja ich sehe dich."
Ja:2
Hallo:2
Wie:1
geht:1
es: 1
.
.
.

Nun bin ich soweit:

Code: Alles auswählen

def satzliste ():
    text=encoding= unicode
    datei=open("probe.txt")          # input(str("bitte geben Sie hier Ihren Text ein."))
    text= datei.read()
    
    


    for element in text:
        saetze=text.split(". ") or ("! ")or("? ")
    
    for i in saetze:
        print(i)
        
        
    return

Mir werden also alle einzelnen Sätze angegeben. ...wie komme ich nun weiter?

LG
Zuletzt geändert von Anonymous am Freitag 22. Januar 2016, 13:02, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
BlackJack

@Noranora: „Nun bin ich soweit“ ist gut. Der Quelltext ist ja weiter vom Ziel entfernt als wenn man gar nichts hätte weil der absolut nichts sinnvolles tut. Programmieren funktioniert weder durch wildes zusammenraten, noch lernt man es dadurch das mit so einem Quelltext Eigeninitiative vortäuscht und hofft das andere das Problem für Dich lösen. Was irgendwie nach Hausaufgabe riecht, und damit von *Dir* eine Leistung erwartet und nicht von uns. ;-)
karolus
User
Beiträge: 141
Registriert: Samstag 22. August 2009, 22:34

Hallo

Du hattest es doch schon mit nltk:

Code: Alles auswählen

%%writefile probe.txt
u habe ich dort stehen, damit Umlaute wie ä ü ö und ß auch angezeigt werden können.
Weiter wollte ich dann mit
Code: Alles auswählen
nltk.FreqDist(text)
Die Vorkommen von den einzelnen Wörtern zählen lassen, jedoch funktioniert dies auch nicht so richtig.
Wichtiger ist aber, mit welcher Funktion könnte ich nun die Wortarten der einzelnen Wörter bestimmen?
Ich hoffe hier gibt es jemand, der sich ein bisschen besser auskennt als ich :

Code: Alles auswählen

import nltk
with open("probe.txt") as probe:
    probetext = probe.read()
    
tokenit = nltk.tokenize.WordPunctTokenizer().tokenize(probetext)
dict(nltk.FreqDist(tokenit))
harryberlin
User
Beiträge: 227
Registriert: Donnerstag 17. Dezember 2015, 12:17

da muss sogar ich blackjack recht geben.

mein Lösungsansatz wäre:
den ausgangstext als mastertext zu setzen. und zwar als low.
splitten bei leerzeichen. dann jedes wort(ohne satzzeichen) im mastertext zählen.
die funktion hatte ich letztens auch gebraucht und mithilfe von google gefunden.

wenn jedoch mal kein konformer text kommt, dann schauts schwer aus. meine meinung. weil, wie will man rechtschreib und grammatikfehler abfangen. da brauchst nen deutschlehrer. :D
empty Sig
Antworten