Marcação de Classe Gramatical
Compreendendo a Marcação de Partes do Discurso (POS Tagging)
Mencionamos que a marcação de partes do discurso é benéfica para a lematização, sendo essa sua principal função no pré-processamento de texto. Portanto, vamos discutir esse processo em mais detalhes.
A marcação de partes do discurso (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, utiliza-se representações abreviadas, conhecidas como tags. Por exemplo, "VB" em vez de verbo. Na prática, porém, diferentes marcadores de POS podem usar tags um pouco diferentes e mais detalhadas, como "VBD" para verbos no passado.
Etiquetagem de POS com NLTK
Para realizar a etiquetagem de partes do discurso com o NLTK, é necessário importar a função pos_tag() diretamente do nltk e aplicá-la sobre a lista de strings (tokens), passando-a como argumento.
123456789101112from 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)
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 POS padrão utilizado pelo NLTK.
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 partes do discurso (POS). 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 marcação de POS. Ele aprende pesos para características com base nos dados de treinamento fornecidos e utiliza esses pesos para prever as etiquetas de POS em textos não vistos.
Para melhor representação visual, é possível converter o resultado em um DataFrame do pandas:
1234567891011121314from 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)
Alternativamente, poderíamos usar pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) sem transpor o DataFrame, de modo que cada linha represente um par token-etiqueta.
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
Awesome!
Completion rate improved to 3.45
Marcação de Classe Gramatical
Deslize para mostrar o menu
Compreendendo a Marcação de Partes do Discurso (POS Tagging)
Mencionamos que a marcação de partes do discurso é benéfica para a lematização, sendo essa sua principal função no pré-processamento de texto. Portanto, vamos discutir esse processo em mais detalhes.
A marcação de partes do discurso (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, utiliza-se representações abreviadas, conhecidas como tags. Por exemplo, "VB" em vez de verbo. Na prática, porém, diferentes marcadores de POS podem usar tags um pouco diferentes e mais detalhadas, como "VBD" para verbos no passado.
Etiquetagem de POS com NLTK
Para realizar a etiquetagem de partes do discurso com o NLTK, é necessário importar a função pos_tag() diretamente do nltk e aplicá-la sobre a lista de strings (tokens), passando-a como argumento.
123456789101112from 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)
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 POS padrão utilizado pelo NLTK.
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 partes do discurso (POS). 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 marcação de POS. Ele aprende pesos para características com base nos dados de treinamento fornecidos e utiliza esses pesos para prever as etiquetas de POS em textos não vistos.
Para melhor representação visual, é possível converter o resultado em um DataFrame do pandas:
1234567891011121314from 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)
Alternativamente, poderíamos usar pd.DataFrame(tagged_tokens, columns=['Token', 'POS tag']) sem transpor o DataFrame, de modo que cada linha represente um par token-etiqueta.
Obrigado pelo seu feedback!