我正试着为Voise助手做一个POS标签。然而,nltk的pos标签nltk.pos_tag并不适合我。例如:
sent = 'open Youtube'
tokens = nltk.word_tokenize(sent)
nltk.pos_tag(tokens, tagset='universal')
>>[('open', 'ADJ'), ('Youtube', 'NOUN')]在上述情况下,我希望打开这个词是动词,而不是形容词。同样,它将“关闭”一词标记为副词,而不是动词。
我也尝试过使用n-gram tagger
train_sents = brown_tagged_sents[:size]
test_sents = brown_tagged_sents[size:]
default_tagger = nltk.DefaultTagger('NOUN')
unigram_tagger = nltk.UnigramTagger(train_sents, backoff = default_tagger)
bigram_tagger = nltk.BigramTagger(train_sents, backoff = unigram_tagger)
trigram_tagger = nltk.TrigramTagger(train_sents, backoff = bigram_tagger)我用过nltk的棕色语料库。但它仍然给出同样的结果。
所以我想知道:
发布于 2018-04-12 17:30:31
关于问题3
我认为这不是一个普遍的解决办法,但至少对你提到的“做这个/那个”的情况是有效的。所以,如果你在开头加一个" to“,标签者会倾向于”理解“一个动词,而不是一个形容词、名词或副词!
我用演示截图只是为了比较解释

具体来说,如果您想要使用Freeling,可以使用java/python avaliable,也可以只使用命令行调用它。
尊重问题2我认为包括上下文工作对完整的句子或大的文本更好,也许不是命令一个基本的虚拟助手的情况。
祝好运!
https://stackoverflow.com/questions/49755153
复制相似问题