Etiquetado de parte del discurso con palabras vacías usando NLTK en python

El kit de herramientas de lenguaje natural (NLTK) es una plataforma utilizada para crear programas para el análisis de texto. Uno de los aspectos más poderosos del módulo NLTK es el etiquetado de parte del discurso.
Para ejecutar el siguiente programa de python, debe instalar NLTK. Siga los pasos de instalación. 
 

  • Abra su terminal, ejecute pip install nltk .
  • Escriba python en el símbolo del sistema para que python Interactive Shell esté listo para ejecutar su código/Script.
  • Escriba importar nltk
  • nltk.descargar()

Aparecerá una GUI, luego elija descargar «todos» para todos los paquetes y luego haga clic en ‘descargar’. Esto le proporcionará todos los tokenizadores, fragmentadores, otros algoritmos y todos los corpus, por lo que la instalación llevará bastante tiempo. 
Ejemplos: 
 

import nltk
nltk.download()

repasemos un poco de vocabulario rápido: 
Corpus: Cuerpo de texto, singular. Corpora es el plural de esto. 
Léxico: Las palabras y sus significados. 
Token: cada «entidad» que forma parte de lo que sea se dividió según las reglas.
En lingüística de corpus, etiquetado de parte del discurso ( etiquetado POS o etiquetado PoS o POST ), también llamado etiquetado gramatical o desambiguación de categorías de palabras .
 

Input: Everything is all about money.
Output: [('Everything', 'NN'), ('is', 'VBZ'), 
          ('all', 'DT'),('about', 'IN'), 
          ('money', 'NN'), ('.', '.')] 

Aquí hay una lista de las etiquetas, lo que significan y algunos ejemplos:
 

CC conjunción coordinante 
CD dígito cardinal 
DT determinante 
EX existencial allí (como: “hay”… piénsalo como “existe”) 
FW palabra extranjera 
IN preposición/conjunción subordinada 
JJ adjetivo – ‘grande’ 
JJR adjetivo, comparativo – ‘más grande’ 
JJS adjetivo, superlativo – ‘más grande’ 
marcador de lista LS 1) 
MD modal – podría, será 
NN sustantivo, singular ‘- escritorio’ 
NNS sustantivo plural – ‘desks’ 
NNP nombre propio, singular – ‘Harrison’ 
NNPS nombre propio, plural – ‘
Predeterminante PDT  de estadounidenses  : ‘todos los niños’
POS terminación posesiva de los padres 
PRP pronombre personal: yo, él, ella 
PRP$pronombre posesivo: mi, él, ella 
RB adverbio – muy, silenciosamente, 
RBR adverbio, comparativo – mejor 
adverbio RBS, superlativo – mejor 
partícula RP – renunciar a 
TO – ir ‘a’ la tienda. 
UH interjección – errrrrrrrm 
verbo VB, forma base – tomar 
verbo VBD, tiempo pasado – tomar 
verbo VBG, gerundio/participio presente – tomar 
verbo VBN, participio pasado – tomar 
verbo VBP, cantar. presente, no 3d: toma el 
verbo VBZ, la tercera persona canta. presente – toma 
WDT wh-determinante – which 
WP wh-pronombre – who, what 
WP$posesivo wh-pronombre, p. ej., cuyo 
WRB wh-adverbio, p. ej., dónde, cuándo

El texto puede contener palabras vacías como ‘el’, ‘es’, ‘son’. Las palabras vacías se pueden filtrar del texto que se va a procesar. No existe una lista universal de palabras vacías en la investigación de la PNL; sin embargo, el módulo nltk contiene una lista de palabras vacías. 
Puede agregar su propia palabra vacía. Vaya a la ruta del directorio de descarga de NLTK – > corpus -> palabras vacías -> actualice el archivo de palabras vacías según el idioma que esté utilizando. Aquí estamos usando inglés (stopwords.words(‘english’)).
 

Python

import nltk
from nltk.corpus import stopwords
from nltk.tokenize import word_tokenize, sent_tokenize
stop_words = set(stopwords.words('english'))
 
// Dummy text
txt = "Sukanya, Rajib and Naba are my good friends. " \
    "Sukanya is getting married next year. " \
    "Marriage is a big step in one’s life." \
    "It is both exciting and frightening. " \
    "But friendship is a sacred bond between people." \
    "It is a special kind of love between us. " \
    "Many of you must have tried searching for a friend "\
    "but never found the right one."
 
# sent_tokenize is one of instances of
# PunktSentenceTokenizer from the nltk.tokenize.punkt module
 
tokenized = sent_tokenize(txt)
for i in tokenized:
     
    # Word tokenizers is used to find the words
    # and punctuation in a string
    wordsList = nltk.word_tokenize(i)
 
    # removing stop words from wordList
    wordsList = [w for w in wordsList if not w in stop_words]
 
    #  Using a Tagger. Which is part-of-speech
    # tagger or POS-tagger.
    tagged = nltk.pos_tag(wordsList)
 
    print(tagged)

Producción: 
 

[('Sukanya', 'NNP'), ('Rajib', 'NNP'), ('Naba', 'NNP'), ('good', 'JJ'), ('friends', 'NNS')]
[('Sukanya', 'NNP'), ('getting', 'VBG'), ('married', 'VBN'), ('next', 'JJ'), ('year', 'NN')]
[('Marriage', 'NN'), ('big', 'JJ'), ('step', 'NN'), ('one', 'CD'), ('’', 'NN'), ('life', 'NN')]
[('It', 'PRP'), ('exciting', 'VBG'), ('frightening', 'VBG')]
[('But', 'CC'), ('friendship', 'NN'), ('sacred', 'VBD'), ('bond', 'NN'), ('people', 'NNS')]
[('It', 'PRP'), ('special', 'JJ'), ('kind', 'NN'), ('love', 'VB'), ('us', 'PRP')]
[('Many', 'JJ'), ('must', 'MD'), ('tried', 'VB'), ('searching', 'VBG'), ('friend', 'NN'), 
('never', 'RB'), ('found', 'VBD'), ('right', 'RB'), ('one', 'CD')]

Básicamente, el objetivo de un etiquetador POS es asignar información lingüística (principalmente gramatical) a unidades sub-orales. Estas unidades se denominan tokens y, la mayoría de las veces, corresponden a palabras y símbolos (p. ej., puntuación) .
 

Publicación traducida automáticamente

Artículo escrito por SubhadeepRoy y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *