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