Ich bin auf der Suche nach einem Weg mit einem englischen Text zählen Verbalphrasen in Vergangenheit, Gegenwart und Zukunft Zeiten. Für jetzt verwende ich NLTK, mache ein POS (Part-of-Speech) -Tagging und zähle dann 'VBD', um vergangene Zeiten zu erhalten. Dies ist jedoch nicht genau genug, also denke ich, dass ich weiter gehen und Chunking verwenden muss, um dann VP-Chunks nach bestimmten Tempusmustern zu analysieren. Gibt es etwas, das das tut? Jede weitere Lektüre, die hilfreich sein könnte? Die NLTK book konzentriert sich hauptsächlich auf NP-Chunks, und ich kann ziemlich viele Informationen über VP-Chunks finden.Detect Englisch Zeitformen mit NLTK
Antwort
Die genaue Antwort hängt davon ab, welche Chunker Sie verwenden möchten, aber Listenkomprehensionen werden Sie sehr weit bringen. Dadurch erhalten Sie die Anzahl der Verbalphrasen, die einen nicht vorhandenen Chunker verwenden.
len([phrase for phrase in nltk.Chunker(sentence) if phrase[1] == 'VP'])
Sie können eine feinkörnigere Methode zum Erfassen von Zeitformen verwenden.
Danke für den Zeiger, das ist, was ich verwenden werde - meine nächste Frage ist, ob es etwas gibt, um angespannte Muster zu erkennen. Für jeden VP würde ich gerne wissen, in welcher Zeit es sich befindet. –
Ich schaffte es tatsächlich, mein Problem mit diesem Ansatz zu lösen, und markierte dies als akzeptierte Antwort. Der folgende Artikel ist wirklich hilfreich: http://streamhacker.com/2009/02/23/chunk-extraction-with-nltk/ –
Hallo Michael, großartig zu hören, dass die Dinge gut für Sie arbeiten! –
Sie können dies entweder mit der Berkeley Parser oder Stanford Parser tun. Aber ich weiß nicht, ob es für beide eine Python-Schnittstelle gibt.
Vielen Dank, dies könnte eine Option sein - aber da ich NLTK bereits intensiv verwende, könnte es sehr viel Arbeit sein, um zu wechseln. Werde aber gucken. –
Es gibt eine Schnittstelle für den Stanford Parser in der NLTK. Sie können es wie folgt verwenden: 'tagger = nltk.tag.stanford.POSTagger ('models/german-fast.tagger', 'stanford-posttagger.jar')' Eventuell müssen Sie die Zeichenfolgen zuerst in UTF-8 codieren (zumindest für das deutsche Modell). –
Berkeley wurde oben falsch geschrieben. Ich kann keine Tippfehler für die Antwort vorschlagen. – Streeter
- 1. Tokenisierung arabischer Wörter mit NLTK
- 2. Russisch-zu-Englisch Parallele Wortkorpus?
- 3. Funktioniert PyPy mit NLTK?
- 4. Semantische Analyse mit NLTK
- 5. Detect iPad mit ASP.net
- 6. Detect Compiler mit #ifdef
- 7. Erkennen, ob Text in Englisch mit Python
- 8. kann NLTK/pyNLTK "per Sprache" arbeiten (d. H. Nicht englisch), und wie?
- 9. Amerikanisches Englisch oder Britisches Englisch Java
- 10. Fill Combobox mit Englisch Monaten
- 11. StanfordPOSTagger arbeitet nicht mit NLTK
- 12. Detect Variable ändern mit Jquery
- 13. Detect Client trennen mit HttpListener
- 14. Rubin #detect Verhalten mit Zufallszahlen
- 15. Detect Drop mit jQuery sortierbar
- 16. Extrahieren eine Reihe von Worten mit dem Python/NLTK, dann ist es zu einem Standard-Englisch-Wörterbuch Vergleich
- 17. NLTK und Stoppwörter fehlgeschlagen #lookuperror
- 18. Google Play Optimierungsfunktion schlägt vor, Englisch (US) Englisch (UK) Übersetzung
- 19. NLTK und Spracherkennung
- 20. NLTK Chunking Fehler
- 21. Docker NLTK Herunterladen
- 22. Localizable.strings (Basis) x Englisch
- 23. Detect Herzfrequenz iPhone Kamera
- 24. nltk regulären Ausdruck tokenizer
- 25. Kann nltk Daten
- 26. Britisches Englisch in amerikanisches Englisch (und umgekehrt) Konverter
- 27. Detect Windows Mobile Gerät
- 28. Wie vergleichen nicht Englisch Zeichen mit Akzenten
- 29. wie nicht Englisch Zeichen mit PHP Umgang
- 30. wie Zugriff Dateinamen mit nicht Englisch
Es gibt einen Fehler in Ihrer Logik. Wenn ein Chunker NP erkennen kann, muss er VP erkennen können. –
Natürlich interessiert mich aber vor allem die weitere VP-Analyse - wie man zwischen verschiedenen Zeiten unterscheidet. –