Python’s NLTK library features a robust sentence tokenizer and POS tagger. Python tem um tokenizer nativo, a função .split(), que você pode passar um separador e ele irá dividir a string que a função é chamada naquele separador. O tokenizer NLTK é mais robusto. Ele simboliza uma frase em palavras e pontuação. Dado o seguinte código:

Ele irá marcar a frase Can you please buy me an Arizona Ice Tea? It's .99." como se segue:

Nota que o tokenizer trata 's , '$' , 0.99 , e . como fichas separadas. Isto é importante porque as contracções têm também o seu próprio significado semântico, o que nos leva à próxima parte da biblioteca da NLTK, o tagger POS. O tagger POS da biblioteca NLTK produz tags específicas para certas palavras. A lista de tags POS é a seguinte, com exemplos do que cada POS representa.

  • CC coordenação conjunta
  • CD dígito cardinal
  • DT determinador
  • EX existencial lá (como: “lá existe” … pense nisso como “existe”)
  • FW palavra estrangeira
  • IN preposição/subordinatória conjunção
  • JJ adjetivo ‘grande’
  • JJR adjetivo, comparativo ‘maior’
  • JJS adjetivo, superlativo ‘maior’
  • marcador de listaLS 1)
  • MD modal could, will
  • NNoun, singular ‘desk’
  • NNS substantivo plural ‘escrivaninhas’
  • NNP substantivo próprio, singular ‘Harrison’
  • NNPS substantivo próprio, plural ‘americanos’
  • PDT predeterminador ‘todas as crianças’
  • POS pronome possessivo final dos pais
  • PRP pronome pessoal I, he, she
  • PRP$ pronome possessivo meu, seu, dela
  • RB adverb muito, silenciosamente,
  • RBR adverb, comparativamente melhor
  • RBS adverb, superlativo melhor
  • RP particle give up
  • TO, para ir ‘para’ a loja.
  • Interjeição UH, errrrrrrrm
  • VB verbo, forma base tomar
  • VBD verbo, passado tomar
  • VBG verbo, gerúndio/presente tomar particípio
  • VBN verbo, particípio passado tomar
  • VBP verbo, cantar. presente, não-3d tomar
  • VBZ verbo, terceira pessoa cantar. presente takes
  • WDT wh-determiner which
  • WP wh-pronoun who, what
  • WP$ possessivo wh-pronoun whose
  • WRB wh-abverb where, quando

Como se pode ver na linha 5 do código acima, o .pos_tag() precisa de ser passada uma frase simbólica para marcação. A etiquetagem é feita por meio de um modelo treinado na biblioteca NLTK. O tagger POS incluído não é perfeito, mas produz resultados bastante precisos. Usando a mesma frase que acima a saída é:

Partes da tagging da fala podem ser importantes para a análise sintáctica e semântica. Então, para algo como a frase acima da palavra can tem vários significados semânticos. Um sendo um modal para formação de perguntas, outro sendo um recipiente para segurar comida ou líquido, e ainda outro sendo um verbo denotando a capacidade de fazer algo. Dar a uma palavra como esta um significado específico permite ao programa lidar com ela da maneira correta tanto em análises semânticas quanto sintáticas.

Articles

Deixe uma resposta

O seu endereço de email não será publicado.