def default_tag():
    #Tagging any word by assigning the most frequent tag in a given corpus

    tags = []
    for (word, tag) in brown.tagged_words(categories='news'):
        tags.append(tag)
    most_freq_tag = FreqDist(tags).max()
    raw = 'I love AIT because AIT is interesting and professors here give a lot of challenging assignment'
    tokens = word_tokenize(raw)

    #Here is our tagger, it means in default, it will assign 'NN' tag to a word input
    default_tagger = DefaultTagger('NN')
    tagged = default_tagger.tag(tokens)
    print(tagged)
    score = default_tagger.evaluate(brown_tagged_sents)
    print(score)
Esempio n. 2
0
from nltk.corpus import mac_morpho

#Obtém as sentenças taggeadas
tagged_sents = mac_morpho.tagged_sents()

# Divide-as em duas partes - uma maior, para TREINAMENTO - e outra menor, para TESTE
train_tsents = tagged_sents[100:]  # Todas sentenças após as 100 primeiras
test_tsents = tagged_sents[:100]  # Pega todas sentenças até a centésima

from nltk import DefaultTagger

# Define um tagger padrão, que sempre etiquetará a palavra com "N" = "NOUM" = "SUBSTANTIVO", visto que é a tag que mais ocorre
tagger0 = DefaultTagger("N")
# Avalia a acurácia do POS-Tagger ao etiquetar as sentenças de TESTE
tagger0.evaluate(test_tsents)

from nltk import UnigramTagger

# Define um tagger Unigram (falaremos mais sobre isso depois)
# Este tagger aprende ao ver as sentenças etiquetadas na base de TREINAMENTO
# Além disso, utiliza o DefaultTagger caso não saiba o que marcar
tagger1 = UnigramTagger(train_tsents, backoff=tagger0)
tagger1.evaluate(test_tsents)

from nltk import BigramTagger

# Define um tagger Bigram (falaremos mais sobre isso depois)
tagger2 = BigramTagger(train_tsents, backoff=tagger1)
tagger2.evaluate(test_tsents)
from pattern.text import parsetree

sentence = 'The brown fox is quick and he is jumping over the lazy dog'

tokens = nltk.word_tokenize(sentence)
tagged_sent = nltk.pos_tag(tokens, tagset='universal')

data = treebank.tagged_sents()
train_data = data[:3500]
test_data = data[3500:]

tokens = nltk.word_tokenize(sentence)

dt = DefaultTagger('NN')

dt.evaluate(test_data)

patterns = [
    (r'.*ing$', 'VBG'),  # gerunds
    (r'.*ed$', 'VBD'),  # simple past
    (r'.*es$', 'VBZ'),  # 3rd singular present
    (r'.*ould$', 'MD'),  # modals
    (r'.*\'s$', 'NN$'),  # possessive nouns
    (r'.*s$', 'NNS'),  # plural nouns
    (r'^-?[0-9]+(.[0-9]+)?$', 'CD'),  # cardinal numbers
    (r'.*', 'NN')  # nouns (default) ...
]

rt = RegexpTagger(patterns)

rt.evaluate(test_data)