继其他几个职位,[例如检测英语动词使用NLTK时态,确定在蟒蛇的动词时态,Python的NLTK弄清楚紧张 ]我写了下面的代码,以确定使用紧张词性标注Python中的一句话:
from nltk import word_tokenize, pos_tag
def determine_tense_input(sentence):
text = word_tokenize(sentence)
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)
Run Code Online (Sandbox Code Playgroud)
这将返回过去/现在/未来动词的使用值,我通常将最大值作为句子的时态.准确性适度,但我想知道是否有更好的方法.
例如,现在有没有写出一个更专注于提取句子时态的包?[注意 - 3个堆叠溢出的帖子中有2个是4年,所以现在可能已经改变了].或者,我应该在nltk中使用不同的解析器来提高准确性吗?如果没有,希望上面的代码可以帮助别人!
您可以通过多种方式加强您的方法。你可以更多地思考英语语法,并根据你观察到的任何内容添加更多规则;或者你可以推动统计方法,提取一些更多(相关)特征并将全部扔给分类器。NLTK 为您提供了大量可供使用的分类器,并且它们在 NLTK 书中有详细记录。
您可以两全其美:手写规则可以以特征的形式提供给分类器,分类器将决定何时可以依赖它们。