Seite 1 von 1

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

Verfasst: Freitag 22. Januar 2016, 12:56
von Noranora
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

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

Verfasst: Freitag 22. Januar 2016, 13:07
von 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. ;-)

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

Verfasst: Freitag 22. Januar 2016, 15:20
von karolus
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))

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

Verfasst: Samstag 23. Januar 2016, 05:03
von harryberlin
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