Inzwischen hat sich viel geklärt. Viele Fragen sind nicht mehr relevant, dafür andere:
(Ich möchte grundsätzlich alle Namen in einem Text finden)
Ich möchte meinen Code etwas verfeinern. Momentan sieht es so aus, dass ich meinen Text tekenize und die Satzzeichen entferne. Dann nehme ich meine Namensliste und arbeite mit folgendem Code:
Code: Alles auswählen
set(NAMENSLISTE).intersection(TEXT)
Jetzt habe ich noch zwei Fragen:
1.
Wie bekomme ich die Textstellen? Z.B. den Kontext, also das Wort vor und nach dem gefundenen Namen?
2.
Was ist jetzt aber mit Namen, die nicht in der Liste vorhanden sind? Ich suche nach einer Lösung, dass er mir zum Beispiel alle Wörter ausgibt, die nach einem "Dr." kommen.
---
Ursprünglicher Beitrag:
Hallo alle!
Ich glaube ich habe etwas nicht ganz so simples vor. Ich möchte aus einem beliebigen deutschen Text die Namen (Hans, Peter usw...) rausfiltern, und wollte hier Fragen, wie ich da am besten vorgehen sollte.
Ich dachte mir, dass ich folgendermaßen vorgehe:
1. den Text den ich habe vorbereiten:
- split()
- Stoppwörter entfernen
- Satzzeichen entfernen
- tokenize?
- codieren des Textes? Ich nutze Python 2.7, könnte aber auch 3.4 benutze, was bietet sich hier eher an?
2. Eine Liste mit Namen erstellen, die gefunden werden sollen:
- ich habe eine Liste mit einigen tausend deutschen Namen
- tokenize?
- muss die Liste weiter vorbereitet werden?
3. Ich den Text mit der Liste abgleiche und mir alle Namen in einer neuen Liste ausgebe (evtl. mit Position im Text?)
- Hier weiß ich leider nicht wie ich vorzugehen habe? :K
Ich weiß, dass diese Methode alles andere als Perfekt ist, aber es wäre ein Anfang für mich.
Vielen Dank für die hoffentlich hilfreichen Antworten.