Marcação de POS com NLTK e Chunking em PNL (EXEMPLOS)

Índice:

Anonim

Tagging POS

POS Tagging ( Tags de partes da fala) é um processo para marcar as palavras em formato de texto para uma parte específica da fala com base em sua definição e contexto. É responsável pela leitura do texto em um idioma e pela atribuição de algum token específico (partes da fala) para cada palavra. Também é chamado de marcação gramatical.

Vamos aprender com um exemplo de parte do discurso de NLTK:

Entrada: Tudo que nos permitir.

Saída : [('Tudo', NN), ('para', PARA), ('permitir', VB), ('nós', PRP)]

Etapas envolvidas no exemplo de marcação de PDV:

  • Texto tokenizado (word_tokenize)
  • aplique pos_tag à etapa acima que é nltk.pos_tag (tokenize_text)

Os exemplos de tags NLTK POS são os seguintes:

Abreviação Significado
CC conjunção coordenativa
CD dígito cardinal
DT determinante
EX existencial lá
FW palavra estrangeira
NO conjunção preposição / subordinação
JJ Esta tag NLTK POS é um adjetivo (grande)
JJR adjetivo, comparativo (maior)
JJS adjetivo, superlativo (maior)
LS mercado de lista
MD modal (poderia, irá)
NN substantivo, singular (gato, árvore)
NNS substantivo plural (mesas)
NNP substantivo próprio, singular (sarah)
NNPS substantivo próprio, plural (índios ou americanos)
PDT predeterminador (todos, ambos, metade)
POS final possessivo (dos pais)
PRP pronome pessoal (dela, ela, ele, ele mesmo)
PRP $ pronome possessivo (ela, dele, minha, minha, nossa)
RB advérbio (ocasionalmente, rapidamente)
RBR advérbio, comparativo (maior)
RBS advérbio, superlativo (maior)
RP partícula (cerca de)
PARA marcador infinito (para)
UH interjeição (adeus)
VB verbo (perguntar)
VBG verbo gerúndio (julgar)
VBD pretérito do verbo (alegado)
VBN verbo no particípio passado (reunificado)
VBP verbo, presente, não 3ª pessoa do singular (wrap)
VBZ verbo, presente com 3ª pessoa do singular (bases)
WDT wh-determiner (isso, o quê)
WP pronome quem (quem)
WRB wh- advérbio (como)

A lista de tags NLTK POS acima contém todas as tags NLTK POS. NLTK POS tagger é usado para atribuir informações gramaticais de cada palavra da frase. A instalação, importação e download de todos os pacotes do POS NLTK estão completos.

O que é Chunking na PNL?

Chunking em PNL é um processo para pegar pequenos pedaços de informação e agrupá-los em grandes unidades. O principal uso de Chunking é fazer grupos de "frases substantivas". É usado para adicionar estrutura à frase, seguindo a marcação POS combinada com expressões regulares. O grupo de palavras resultante é chamado de "blocos". Também é chamado de análise superficial.

Na análise superficial, há no máximo um nível entre raízes e folhas, enquanto a análise profunda compreende mais de um nível. A análise superficial também é chamada de análise leve ou fragmentação.

Regras para Chunking:

Não existem regras predefinidas, mas você pode combiná-las de acordo com a necessidade e o requisito.

Por exemplo, você precisa marcar o substantivo, verbo (pretérito), adjetivo e junção de coordenação da frase. Você pode usar a regra abaixo

pedaço: {*** ?}

A tabela a seguir mostra o que os vários símbolos significam:

Nome do símbolo Descrição
. Qualquer personagem exceto nova linha
* Combine 0 ou mais repetições
? Combine 0 ou 1 repetição

Agora vamos escrever o código para entender melhor a regra

from nltk import pos_tagfrom nltk import RegexpParsertext ="learn php from guru99 and make study easy".split()print("After Split:",text)tokens_tag = pos_tag(text)print("After Token:",tokens_tag)patterns= """mychunk:{***?}"""chunker = RegexpParser(patterns)print("After Regex:",chunker)output = chunker.parse(tokens_tag)print("After Chunking",output)

Resultado

After Split: ['learn', 'php', 'from', 'guru99', 'and', 'make', 'study', 'easy']After Token: [('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN'), ('and', 'CC'), ('make', 'VB'), ('study', 'NN'), ('easy', 'JJ')]After Regex: chunk.RegexpParser with 1 stages:RegexpChunkParser with 1 rules:***?'>After Chunking (S(mychunk learn/JJ)(mychunk php/NN)from/IN(mychunk guru99/NN and/CC)make/VB(mychunk study/NN easy/JJ))

A conclusão do exemplo de Python de marcação de parte do discurso acima: "make" é um verbo que não está incluído na regra, portanto não é marcado como mychunk

Caso de uso de Chunking

Chunking é usado para detecção de entidade. Uma entidade é aquela parte da frase pela qual a máquina obtém o valor para qualquer intenção

Example:Temperature of New York.Here Temperature is the intention and New York is an entity.

Em outras palavras, a fragmentação é usada para selecionar os subconjuntos de tokens. Siga o código abaixo para entender como o chunking é usado para selecionar os tokens. Neste exemplo, você verá o gráfico que corresponderá a um pedaço de um sintagma nominal. Vamos escrever o código e desenhar o gráfico para melhor compreensão.

Código para demonstrar o caso de uso

import nltktext = "learn php from guru99"tokens = nltk.word_tokenize(text)print(tokens)tag = nltk.pos_tag(tokens)print(tag)grammar = "NP: {
?*}"cp =nltk.RegexpParser(grammar)result = cp.parse(tag)print(result)result.draw() # It will draw the pattern graphically which can be seen in Noun Phrase chunking

Produto :

['learn', 'php', 'from', 'guru99'] -- These are the tokens[('learn', 'JJ'), ('php', 'NN'), ('from', 'IN'), ('guru99', 'NN')] -- These are the pos_tag(S (NP learn/JJ php/NN) from/IN (NP guru99/NN)) -- Noun Phrase Chunking

Gráfico

Gráfico de agrupamento de frases nominais

A partir do gráfico, podemos concluir que "aprender" e "guru99" são dois tokens diferentes, mas são categorizados como Frase Nominal, enquanto o token "de" não pertence ao Frase Substantivo.

Chunking é usado para categorizar tokens diferentes no mesmo bloco. O resultado dependerá da gramática selecionada. Além disso, Chunking NLTK é usado para marcar padrões e explorar corpora de texto.

Resumo

  • A marcação POS em NLTK é um processo para marcar as palavras em formato de texto para uma parte específica de um discurso com base em sua definição e contexto.
  • Alguns exemplos de marcação NLTK POS são: CC, CD, EX, JJ, MD, NNP, PDT, PRP $, TO, etc.
  • POS tagger é usado para atribuir informações gramaticais de cada palavra da frase. A instalação, importação e download de todos os pacotes de marcação de parte da fala com NLTK estão completos.
  • Chunking em PNL é um processo para pegar pequenos pedaços de informação e agrupá-los em grandes unidades.
  • Não existem regras predefinidas, mas você pode combiná-las de acordo com a necessidade e o requisito.
  • Chunking é usado para detecção de entidade. Uma entidade é aquela parte da frase pela qual a máquina obtém o valor para qualquer intenção
  • Chunking é usado para categorizar tokens diferentes no mesmo bloco.