El procesamiento del lenguaje natural es un aspecto del aprendizaje automático que le permite procesar palabras escritas en un lenguaje amigable para las máquinas. Estos textos se pueden modificar y puedes ejecutar algoritmos computacionales en ellos como quieras.
La lógica detrás de esta tecnología cautivadora parece compleja, pero no lo es. E incluso ahora, con un conocimiento sólido de la programación básica de Python, puede crear un nuevo procesador de texto de bricolaje con el kit de herramientas de lenguaje natural (NLTK).
A continuación, le indicamos cómo comenzar con NLTK de Python.
¿Qué es NLTK y cómo funciona?
Escrito con Python, NLTK presenta una variedad de funcionalidades de manipulación de cadenas. Es una biblioteca de lenguaje natural versátil con un vasto repositorio de modelos para varias aplicaciones de lenguaje natural.
Con NLTK, puede procesar textos sin procesar y extraer características significativas de ellos. También ofrece modelos de análisis de texto, gramáticas basadas en características y ricos recursos léxicos para construir un modelo de lenguaje completo.
Cómo configurar NLTK
Primero, cree una carpeta raíz del proyecto en cualquier lugar de su PC. Para comenzar a usar la biblioteca NLTK, abra su terminal en la carpeta raíz que creó anteriormente y crear un entorno virtual.
Luego, instale el kit de herramientas de lenguaje natural en este entorno usando pepita:
pip instalar nltk
NLTK, sin embargo, presenta una variedad de conjuntos de datos que sirven como base para nuevos modelos de lenguaje natural. Para acceder a ellos, debe activar el descargador de datos integrado de NLTK.
Entonces, una vez que haya instalado NLTK con éxito, abra su archivo Python usando cualquier editor de código.
Luego importe el nltk y cree una instancia del descargador de datos con el siguiente código:
pip instalar nltk
nltk.download ()
Al ejecutar el código anterior a través del terminal, aparece una interfaz gráfica de usuario para seleccionar y descargar paquetes de datos. Aquí, deberá elegir un paquete y hacer clic en el Descargar botón para conseguirlo.
Cualquier paquete de datos que descargue va al directorio especificado escrito en el Descargar directorio campo. Puede cambiar esto si lo desea. Pero intente mantener la ubicación predeterminada en este nivel.
Relacionado: Los mejores editores de código gratuitos para escribir su primera aplicación
Nota: Los paquetes de datos se agregan a las variables del sistema de forma predeterminada. Por lo tanto, puede seguir usándolos para proyectos posteriores independientemente del entorno de Python que esté usando.
Cómo utilizar tokenizadores NLTK
En última instancia, NLTK ofrece modelos de tokenización entrenados para palabras y oraciones. Con estas herramientas, puede generar una lista de palabras a partir de una oración. O transforma un párrafo en una matriz de oraciones sensata.
A continuación, se muestra un ejemplo de cómo utilizar NLTK. word_tokenizer:
importar nltk
de nltk.tokenize importar word_tokenize
palabra = "Este es un texto de ejemplo"
tokenWord = word_tokenizer (palabra)
imprimir (tokenWord)
Producción:
['Este es un texto de ejemplo']
NLTK también usa un tokenizador de oraciones previamente entrenado llamado PunktSentenceTokenizer. Funciona dividiendo un párrafo en una lista de oraciones.
Veamos cómo funciona esto con un párrafo de dos oraciones:
importar nltk
de nltk.tokenize importar word_tokenize, PunktSentenceTokenizer
frase = "Este es un texto de ejemplo. Este es un tutorial para NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (oración)
print (tokenized_sentence)
Producción:
['Este es un texto de ejemplo.', 'Este es un tutorial para NLTK']
Puede tokenizar aún más cada oración en la matriz generada a partir del código anterior usando word_tokenizer y Python para bucle.
Ejemplos de cómo utilizar NLTK
Entonces, aunque no podemos demostrar todos los posibles casos de uso de NLTK, aquí hay algunos ejemplos de cómo puede comenzar a usarlo para resolver problemas de la vida real.
Obtenga definiciones de palabras y sus partes del discurso
NLTK presenta modelos para determinar las partes del discurso, obtener semántica detallada y el posible uso contextual de varias palabras.
Puedes usar el wordnet modelo para generar variables para un texto. Luego determine su significado y parte del discurso.
Por ejemplo, verifiquemos las posibles variables de "Monkey:"
importar nltk
desde nltk.corpus importar wordnet como wn
imprimir (wn.synsets ('mono'))
Producción:
[Synset ('monkey.n.01'), Synset ('imp.n.02'), Synset ('tamper.v.01'), Synset ('putter.v.02')]
El código anterior genera posibles alternativas de palabras o sintaxis y partes de la oración para "Monkey".
Ahora compruebe el significado de "Mono" usando el definición método:
Mono = wn.synset ('mono.n.01'). Definición ()
Producción:
cualquiera de varios primates de cola larga (excluidos los prosimios)
Puede reemplazar la cadena entre paréntesis con otras alternativas generadas para ver qué salidas NLTK.
los pos_tag modelo, sin embargo, determina las partes del discurso de una palabra. Puede usar esto con el word_tokenizer o PunktSentenceTokenizer () si se trata de párrafos más largos.
Así es como funciona:
importar nltk
de nltk.tokenize importar word_tokenize, PunktSentenceTokenizer
palabra = "Este es un texto de ejemplo. Este es un tutorial sobre NLTK "
token = PunktSentenceTokenizer ()
tokenized_sentence = token.tokenize (palabra)
para yo en tokenized_sentence:
tokenWordArray = word_tokenize (i)
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimir (partsOfSpeech)
Producción:
[('Esto', 'DT'), ('es', 'VBZ'), ('an', 'DT'), ('ejemplo', 'NN'), ('texto', 'NN'), ('.', '.')]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
El código anterior empareja cada palabra tokenizada con su etiqueta de voz en una tupla. Puede comprobar el significado de estas etiquetas en Penn Treebank.
Para obtener un resultado más limpio, puede eliminar los puntos en la salida usando el reemplazar() método:
para yo en tokenized_sentence:
tokenWordArray = word_tokenize (i.replace ('.', ''))
partsOfSpeech = nltk.pos_tag (tokenWordArray)
imprimir (partsOfSpeech)
Salida más limpia:
[('Esto', 'DT'), ('es', 'VBZ'), ('an', 'DT'), ('ejemplo', 'NN'), ('texto', 'NN') ]
[('This', 'DT'), ('is', 'VBZ'), ('a', 'DT'), ('tutorial', 'JJ'), ('on', 'IN'), ('NLTK', 'NNP')]
Visualización de tendencias de características usando NLTK Plot
La extracción de características de los textos sin formato suele ser tediosa y requiere mucho tiempo. Pero puede ver los determinantes de características más fuertes en un texto utilizando el gráfico de tendencia de distribución de frecuencia NLTK.
NLTK, sin embargo, se sincroniza con matplotlib. Puede aprovechar esto para ver una tendencia específica en sus datos.
El siguiente código, por ejemplo, compara un conjunto de palabras positivas y negativas en una gráfica de distribución usando sus dos últimos alfabetos:
importar nltk
desde nltk import ConditionalFreqDist
Listas de palabras negativas y positivas:
negativos = [
'anormal', 'abolir', 'abominable',
'abominablemente', 'abominable', 'abominación'
]
positivos = [
'abunda', 'abunda', 'abundancia',
'abundante', 'accesible', 'accesible'
]
# Divida los elementos de cada matriz en pares de tuplas etiquetados
# y combine ambas matrices:
pos_negData = ([("negativo", neg) para neg en negativos] + [("positivo", pos) para pos en positivos])
# Extrae los dos últimos alfabetos de la matriz resultante:
f = ((pos, i [-2:],) para (pos, i) en pos_negData)
# Cree una gráfica de distribución de estos alfabetos
cfd = ConditionalFreqDist (f)
cfd.plot ()
La gráfica de distribución alfabética se ve así:
Mirando de cerca el gráfico, las palabras que terminan con ce, ds, le, Dakota del Norte, y Nuevo Testamento tienen una mayor probabilidad de ser textos positivos. Pero los que terminan con Alabama, ly, sobre, y te es más probable que sean palabras negativas.
Nota: Aunque hemos utilizado datos autogenerados aquí, puede acceder a algunos de los conjuntos de datos integrados de NLTK utilizando su lector de Corpus llamándolos desde el cuerpo clase de nltk. Es posible que desee mirar el documentación del paquete corpus para ver cómo se puede utilizar.
Con la aparición de tecnologías como Alexa, detección de spam, chatbots, análisis de sentimientos y más, el procesamiento del lenguaje natural parece estar evolucionando hacia su fase infrahumana. Aunque solo hemos considerado algunos ejemplos de lo que ofrece NLTK en este artículo, la herramienta tiene aplicaciones más avanzadas que superan el alcance de este tutorial.
Después de leer este artículo, debería tener una buena idea de cómo utilizar NLTK en un nivel básico. ¡Todo lo que le queda por hacer ahora es poner este conocimiento en acción usted mismo!
¿Interesado en el campo del aprendizaje automático? Empiece con estas bibliotecas.
Leer siguiente
- Programación
- Pitón
- Lenguajes de programación
- Programación
Idowu es un apasionado de la tecnología inteligente y la productividad. En su tiempo libre, juega con la codificación y cambia al tablero de ajedrez cuando está aburrido, pero también le encanta romper con la rutina de vez en cuando. Su pasión por mostrarle a la gente el camino en torno a la tecnología moderna lo motiva a escribir más.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Haga clic aquí para suscribirse