Nach mehreren anderen Posts [z. Detect English verb tenses using NLTK, Identifying verb tenses in python, Python NLTK figure out tense] Ich schrieb den folgenden Code angespannt einen Satzes in Python zu bestimmen, unter Verwendung von POS-Tagging:Bestimmen der Zeitform eines Satzes Python
from nltk import word_tokenize, pos_tag
def determine_tense_input(sentance):
text = word_tokenize(sentance)
tagged = pos_tag(text)
tense = {}
tense["future"] = len([word for word in tagged if word[1] == "MD"])
tense["present"] = len([word for word in tagged if word[1] in ["VBP", "VBZ","VBG"]])
tense["past"] = len([word for word in tagged if word[1] in ["VBD", "VBN"]])
return(tense)
einen Wert für die Nutzung der Vergangenheit/Gegenwart/Zukunft Verben Dies gibt, die ich nehme in der Regel dann der Maximalwert von als die Zeit der Sentanz. Die Genauigkeit ist mäßig gut, aber ich frage mich, ob es einen besseren Weg dafür gibt.
Zum Beispiel, gibt es jetzt zufällig ein Paket geschrieben, das mehr auf das Extrahieren der Zeitform einer Sentance gewidmet ist? [Anmerkung - 2 der 3 Stapelüberlaufpfosten sind 4 Jahre alt, so dass sich die Dinge jetzt vielleicht geändert haben]. Oder alternativ, sollte ich einen anderen Parser aus nltk verwenden, um die Genauigkeit zu erhöhen? Wenn nicht, hoffe der obige Code kann jemand anderem helfen!
Vielleicht können Sie versuchen, einen feinkörnigeren Tagger zu finden. Entweder indem Sie Ihr eigenes Training anhand eines markierten Corpus durchführen oder indem Sie etwas aus Stanford verwenden, z. Ich finde, dass für einige Zwecke (wie diese) das grobe Tagging von nltk.pos_tag (oder die verfügbaren Korpora in nltk_data) nicht wirklich viel hilft. Die Verwendung eines Taggers mit anderen Klassen hat mir in ähnlichen Szenarien schon geholfen. Dies alles hängt von der Verfügbarkeit von normalerweise ziemlich domänenspezifischen annotierten Korpora ab. – Igor
Für einen genaueren Ansatz müssen Sie zwischen Primär- und Sekundärform unterscheiden. Meine Antwort zu einer ähnlichen Frage könnte helfen: http://Stackoverflow.com/a/22146151/1011791 –
@ChthonicProject - Danke - Ich hatte diesen Beitrag nicht gesehen, und es hilft mir, in die richtige Richtung zu zeigen – kyrenia