Determining tense of a sentence Python

后端 未结 3 1848
孤街浪徒
孤街浪徒 2021-01-31 20:30

Following several other posts, [e.g. Detect English verb tenses using NLTK , Identifying verb tenses in python, Python NLTK figure out tense ] I wrote the following code to dete

相关标签:
3条回答
  • 2021-01-31 20:39

    As of http://dev.lexalytics.com/wiki/pmwiki.php?n=Main.POSTags, the tags mean

    MD  Modal verb (can, could, may, must)
    VB  Base verb (take)
    VBC Future tense, conditional
    VBD Past tense (took)
    VBF Future tense
    VBG Gerund, present participle (taking)
    VBN Past participle (taken)
    VBP Present tense (take)
    VBZ Present 3rd person singular (takes)
    

    so that your code would be

    tense["future"] = len([word for word in tagged if word[1] in ["VBC", "VBF"])
    
    0 讨论(0)
  • 2021-01-31 20:47

    You could use the Stanford Parser to get a dependency parse of the sentence. The root of the dependency parse will be the 'primary' verb that defines the sentence (I'm not too sure what the specific linguistic term is). You can then use the POS tag on this verb to find its tense, and use that.

    0 讨论(0)
  • 2021-01-31 20:55

    You can strengthen your approach in various ways. You could think more about the grammar of English and add some more rules based on whatever you observe; or you could push the statistical approach, extract some more (relevant) features and throw the whole lot at a classifier. The NLTK gives you plenty of classifiers to play with, and they're well documented in the NLTK book.

    You can have the best of both worlds: Hand-written rules can be in the form of features that are fed to the classifier, which will decide when it can rely on them.

    0 讨论(0)
提交回复
热议问题