我正在尝试为Voise助手制作POS Tagger。但是,nltk的pos标签nltk.pos_tag并不适合我。例如:
sent = 'open Youtube'
tokens = nltk.word_tokenize(sent)
nltk.pos_tag(tokens, tagset='universal')
>>[('open', 'ADJ'), ('Youtube', 'NOUN')]
在上述情况下,我希望open这个词是动词,而不是形容词。同样,它标记了“关闭”这个词。作为副词而不是动词。
我也尝试过使用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
的棕色语料库。但它仍然会给出相同的结果。
所以我想知道:
答案 0 :(得分:0)
关于问题#3
我认为这不是一般解决方案,但它至少适用于你提到的背景"做这个/那个"。所以,如果你把"放到"在开始时,标记器将倾向于“理解”#34;动词而不是形容词,名词或副词!
我使用Freeling_demo使用此屏幕截图只是为了比较解释
具体来说,如果你想使用Freeling,可以使用java / python API,或者你可以使用命令行调用它。
尊重问题#2我认为对于完整的句子或大文本更好地包含上下文工作,可能不是命令基本虚拟助手的情况。
祝你好运!