Im очень новый для nltk.POS для языков, отличных от английского
Это позволяет мне пометить предложение в соответствии с его частями речи. Но какие шаги при этом делают для других языков?
import nltk
sentence = "I'm not sure!"
tokens = nltk.word_tokenize(sentence)
tagged = nltk.pos_tag(tokens)
UPDATE
Я заинтересован в начиная с испанским языком.
UPDATE 2
import nltk
from nltk.tokenize import word_tokenize
training_set = [[(w.lower(),t) for w,t in s] for s in nltk.corpus.conll2002.tagged_sents('esp.train')]
unigram_tagger = nltk.UnigramTagger(training_set)
bigram_tagger = nltk.BigramTagger(train_set, backoff=unigram_tagger)
tokens = [token.lower() for token in word_tokenize("El Congreso no podrá hacer ninguna ley con respecto al establecimiento de la religión, ni prohibiendo la libre práctica de la misma; ni limitando la libertad de expresión, ni de prensa; ni el derecho a la asamblea pacífica de las personas, ni de solicitar al gobierno una compensación de agravios.")]
Производство:
[('el', 'DA'), ('congreso', 'NC'), ('no', 'RN'), ('podrá', 'VMI'), ('hacer', 'VMN'), ('ninguna', 'DI'), ('ley', 'NC'), ('con', 'SP'), ('respecto', 'NC'), ('al', 'SP'), ('establecimiento', 'NC'), ('de', 'SP'), ('la', 'DA'), ('religión', 'NC'), (',', 'Fc'), ('ni', 'CC'), ('prohibiendo', None), ('la', 'DA'), ('libre', 'AQ'), ('práctica', 'NC'), ('de', 'SP'), ('la', 'DA'), ('misma', 'DI'), (';', 'Fx'), ('ni', 'CC'), ('limitando', None), ('la', 'DA'), ('libertad', 'NC'), ('de', 'SP'), ('expresión', 'NC'), (',', 'Fc'), ('ni', 'CC'), ('de', 'SP'), ('prensa', 'NC'), (';', 'Fx'), ('ni', 'CC'), ('el', 'DA'), ('derecho', 'NC'), ('a', 'SP'), ('la', 'DA'), ('asamblea', 'NC'), ('pacífica', 'AQ'), ('de', 'SP'), ('las', 'DA'), ('personas', 'NC'), (',', 'Fc'), ('ni', 'CC'), ('de', 'SP'), ('solicitar', 'VMN'), ('al', 'SP'), ('gobierno', 'NC'), ('una', 'DI'), ('compensación', 'NC'), ('de', 'SP'), ('agravios', None), ('.', 'Fp')]
Ваш другой язык по-прежнему очень похож на английский на меня (но я не уверен). – lenz
Быть серьезным: это действительно зависит от языка и задачи. Для токенизации NLTK поддерживает несколько языков из коробки - просто добавьте язык в качестве второго аргумента в 'word_tokenize()'. Для тегов POS вам необходимо создать объект тегатора с помощью модели, специфичной для языка (которую вы, возможно, даже должны получить с стороннего сайта); нет единого ответа на этот вопрос, вам нужно указать соответствующие языки. – lenz
@ lenz Я обновил свой вопрос в соответствии с запросом. – Baz