Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Marcação de Classe Gramatical | Seção
Processamento de Linguagem Natural

bookMarcação de Classe Gramatical

Deslize para mostrar o menu

Note
Definição

A marcação de classe gramatical (POS tagging) é o processo de identificar uma palavra em um texto (corpus) como pertencente a uma determinada classe gramatical (por exemplo, substantivo ou verbo), com base tanto em sua definição quanto em seu contexto — ou seja, sua relação com palavras adjacentes e relacionadas em uma frase, sentença ou parágrafo.

O uso dos nomes completos das classes gramaticais (por exemplo, "verbo" ou "substantivo") pode se tornar bastante trabalhoso, especialmente com grandes corpora. Por isso, representações abreviadas, conhecidas como tags, são utilizadas. Por exemplo, "VB" em vez de verbo. Na prática, porém, diferentes etiquetadores de POS podem usar tags um pouco diferentes e tags mais detalhadas como "VBD" para verbos no passado.

Marcação de Classe Gramatical com NLTK

Para realizar a marcação de classe gramatical com o NLTK, é necessário importar a função pos_tag() diretamente do nltk e aplicá-la à lista de strings (tokens) passando-a como argumento.

123456789101112
from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) print(tagged_tokens)
copy

Esta função retorna uma lista de tuplas, cada uma contendo um token e sua respectiva etiqueta. A linha nltk.download('averaged_perceptron_tagger_eng') inicia o download do conjunto de dados e dos modelos necessários para o PerceptronTagger, que é o etiquetador de classes gramaticais padrão utilizado pelo NLTK.

Note
Estude Mais

Este etiquetador é baseado no modelo perceptron médio, um algoritmo de aprendizado supervisionado eficaz para processamento de texto em larga escala, incluindo a marcação de classes gramaticais. O PerceptronTagger é escolhido por seu equilíbrio entre velocidade e precisão, tornando-o adequado para uma ampla variedade de tarefas de PLN que exigem etiquetagem de classes gramaticais. Ele aprende pesos para características com base nos dados de treinamento fornecidos e utiliza esses pesos para prever as etiquetas gramaticais em textos não vistos.

Para uma melhor representação visual, podemos converter o resultado em um DataFrame do pandas:

1234567891011121314
from nltk.tokenize import word_tokenize from nltk import pos_tag import nltk import pandas as pd nltk.download('punkt_tab') # Download the model needed for NLTK's POS tagging nltk.download('averaged_perceptron_tagger_eng') text = "One of the key NLP tasks is part of speech tagging" text = text.lower() tokens = word_tokenize(text) # Perform POS tagging tagged_tokens = pos_tag(tokens) # Convert to DataFrame print(pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']).T)
copy

Alternativamente, podemos usar pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) sem transpor o DataFrame, de modo que cada linha represente um par token-etiqueta.

question mark

Qual é o objetivo da rotulação de partes do discurso (POS) em PLN?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 1. Capítulo 14

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Seção 1. Capítulo 14
some-alt