All Projects → ucd-dnp → ConTexto

ucd-dnp / ConTexto

Licence: other
Librería en Python para minería de texto y NLP

Programming Languages

Jupyter Notebook
11667 projects
python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to ConTexto

Artificial Adversary
🗣️ Tool to generate adversarial text examples and test machine learning models against them
Stars: ✭ 348 (+709.3%)
Mutual labels:  text, text-analysis, text-processing
Textpipe
Textpipe: clean and extract metadata from text
Stars: ✭ 284 (+560.47%)
Mutual labels:  text-analysis, text-processing
support-tickets-classification
This case study shows how to create a model for text analysis and classification and deploy it as a web service in Azure cloud in order to automatically classify support tickets. This project is a proof of concept made by Microsoft (Commercial Software Engineering team) in collaboration with Endava http://endava.com/en
Stars: ✭ 142 (+230.23%)
Mutual labels:  text-analysis, text-processing
Padatious
A neural network intent parser
Stars: ✭ 124 (+188.37%)
Mutual labels:  text-analysis, text-processing
corpusexplorer2.0
Korpuslinguistik war noch nie so einfach...
Stars: ✭ 16 (-62.79%)
Mutual labels:  text-analysis, text-processing
TRUNAJOD2.0
An easy-to-use library to extract indices from texts.
Stars: ✭ 18 (-58.14%)
Mutual labels:  text-analysis, text-processing
text-analysis
Weaving analytical stories from text data
Stars: ✭ 12 (-72.09%)
Mutual labels:  text-analysis, text-processing
knime-textprocessing
KNIME - Text Processing Extension (Labs)
Stars: ✭ 17 (-60.47%)
Mutual labels:  text-analysis, text-processing
Textvec
Text vectorization tool to outperform TFIDF for classification tasks
Stars: ✭ 167 (+288.37%)
Mutual labels:  text-analysis, text-processing
stringx
Drop-in replacements for base R string functions powered by stringi
Stars: ✭ 14 (-67.44%)
Mutual labels:  text, text-processing
leila
Librería para la evaluación de calidad de datos, e interacción con el portal de datos.gov.co
Stars: ✭ 56 (+30.23%)
Mutual labels:  espanol, ucd
Text Detector
Tool which allow you to detect and translate text.
Stars: ✭ 173 (+302.33%)
Mutual labels:  text, text-processing
Javascript Text Expander
Expands texts as you type, naturally
Stars: ✭ 58 (+34.88%)
Mutual labels:  text-analysis, text-processing
Stanza Old
Stanford NLP group's shared Python tools.
Stars: ✭ 142 (+230.23%)
Mutual labels:  text-analysis, text-processing
Orange3 Text
🍊 📄 Text Mining add-on for Orange3
Stars: ✭ 83 (+93.02%)
Mutual labels:  text, text-analysis
Stringi
THE String Processing Package for R (with ICU)
Stars: ✭ 204 (+374.42%)
Mutual labels:  text, text-processing
workshop-IJTA
Rによる日本語テキスト分析入門
Stars: ✭ 25 (-41.86%)
Mutual labels:  text-analysis
react-watermark-module
React水印组件,支持图片水印,文字水印。
Stars: ✭ 31 (-27.91%)
Mutual labels:  text
WeTextProcessing
Text Normalization & Inverse Text Normalization
Stars: ✭ 213 (+395.35%)
Mutual labels:  text-processing
IncredibleTextAdventure
No description or website provided.
Stars: ✭ 19 (-55.81%)
Mutual labels:  text-analysis

ConTexto - Librería de procesamiento y análisis de textos

screenshot

PyPI version fury.io PyPI pyversions PyPI license Downloads GitHub forks

Descripción

La librería de procesamiento y análisis de texto, ConTexto, tiene como objetivo principal proporcionar herramientas que simplifiquen las tareas y proyectos que involucren procesamiento y análisis de texto. La librería fue desarrollada en el lenguaje de programación de Python y contiene un conjunto de funciones que permiten realizar transformaciones y análisis de textos de forma simple, utilizando diferentes técnicas para lectura y escritura de archivos de texto, incluyendo reconocimiento óptico de caracteres (OCR), limpieza de textos y remoción de palabras no deseadas para el análisis (stop words), traducción y corrección de textos, generación de nubes de palabras, cálculo de similitudes entre textos, entre otras.

La librería surge como solución a tres principales aspectos. En primer lugar, la necesidad de integrar todos los esfuerzos y desarrollos que ha hecho la Unidad de Científicos de Datos (UCD) del DNP, en proyectos relacionados con la analítica de texto; en segundo lugar, evitar reprocesos en la construcción de scripts para estas tareas, y finalmente, aumentar la cantidad de librerías enfocadas en el análisis de texto en español que existen actualmente.

Prerrequisitos

Antes de proceder con la instalación de ConTexto asegúrese de tener instalado (Estos dos paquetes son necesarios para utilizar el reconocimiento óptico de caracteres (OCR) de ConTexto):

  • Tesseract
  • Poppler v0.68.0

Para mayor información consultar la sección de instalación

Instalación

Se sugiere antes de la instalación crear un entorno virtual que permita aislar las librerías y evitar conflictos de versiones con el entorno de desarrollo base del computador. Se debe mencionar que se requiere hacer instalaciones adicionales para el correcto funcionamiento de algunos módulos de la librería. Para más información, consultar la sección de instalación en la página de documentación.

Para realizar la instalación por medio del gestor de paquetes pip utilizar los siguientes comandos:

python -m pip install --upgrade pip
pip install contexto

Para realizar la instalación por medio de Conda utilizar el siguiente comando:

pip install --extra-index-url https://pypi.org/simple/ contexto

Documentación

La librería cuenta con una documentación que detalla las funciones que la conforman, al igual que ejemplos de uso y demás información de interés relacionada con esta. Para acceder a la documentación, siga el siguiente enlace:

Documentación - ConTexto - Librería de procesamiento y análisis de textos.

Ejemplo

En esta sección nos enfocaremos en presentar unos cortos ejemplos de uso de algunas funciones de la librería teniendo dos enfoques en particular: la limpieza de textos y la visualización de textos. Para mayor información y detalle sobre ejemplos de estas y otras funciones de la librería, se puede consultar la sección de ejemplos de la documentación.

Ejemplo - Limpieza de textos

Para este ejemplo utilizaremos el siguiente texto de prueba.

texto_prueba = '''hola, esto es una prueba para verificar que la limpieza
sea hecha con precisión, empeño y calidad! Esperamos que esté todo de 10.

Desde Amazonas hasta la Guajira y san andrés, desde John y María hasta Ernesto,
esperamos       que todo funcione de manera correcta.'''

Se debe importar el módulo de limpieza.

from contexto.limpieza import *

La librería cuenta con varias funciones de limpieza como son limpieza_basica, limpieza_texto, remover_acentos, remover_palabras_cortas y otras.

  • La función limpieza_texto permite realizar una limpieza más completa del texto. La función permite:

    • Pasar todo el texto a minúsculas
    • Quitar signos de puntuación
    • Quitar stopwords (palabras y/o expresiones). Para esto, se pueden pasar directamente las listas de palabras y expresiones a quitar, o se puede pasar un archivo que contenga esta información. (configurable)
    • Quitar palabras de una longitud menor a n caracteres (configurable)
    • Quitar números (configurable)
    • Quitar acentos (configurable)
limpio_completo = limpieza_texto(texto_prueba, n_min=3, quitar_acentos=True, 
	lista_palabras = ['esto','sea', 'con', 'que', 'para', 'este', 'una'])

print(limpio_completo)
hola prueba verificar limpieza hecha precision empeno calidad esperamos todo desde amazonas hasta guajira san andres desde john maria hasta ernesto esperamos todo funcione manera correcta

Ejemplo - Visualización de textos

Para este ejemplo, se va a trabajar con el texto de la novela "Don Quijote de la Mancha", escrita por Miguel de Cervantes Saavedra. El texto completo de esta novela está en la carpeta de ejemplos/entrada del repositorio, y fue descargado desde la página del Proyecto Gutenberg, que tiene a su disposición miles de libros de forma gratuita.

Procedemos a importar los módulos necesarios.

from contexto.lectura import leer_texto
from contexto.limpieza import limpieza_texto, lista_stopwords, remover_stopwords
from contexto.exploracion import grafica_barchart_frecuencias
from contexto.exploracion import obtener_ngramas, par_nubes

La función leer_texto del módulo lectura es utilizada para extraer el texto del archivo que contiene la novela. Luego, se realiza una limpieza estándar del texto, para que esté mejor adecuado para su exploración. Para esto, se utilizan las funciones limpieza_texto y lista_stopwords, del módulo limpieza.

Finalmente, en el texto aparece en varias ocasiones la expresión "project gutenberg", el nombre del proyecto que pone a disposición la novela. Como esta información no está directamente relacionada al texto que nos interesa, se va a remover utilizando la función remover_stopwords.

  • Cargar y limpiar texto de prueba
ruta_cuento = 'entrada/cervantes_don_quijote.txt'

texto_prueba = leer_texto(ruta_cuento)
texto = limpieza_texto(texto_prueba, quitar_numeros=False, n_min=3, lista_palabras=lista_stopwords())
texto = remover_stopwords(texto, lista_expresiones=['project gutenberg'])

Una vez limpio el texto, procedemos a utilizar la función obtener_ngramas que permite encontrar n-gramas, o conjuntos de n palabras seguidas, donde n es un número entero mayor a cero. Por ejemplo, si n=1 o n=2, la función obtendrá las palabras o los bigramas del texto, respectivamente.Con esta información se puede obtener la frecuencia de cada n-grama, y así conocer cuáles son los más mencionados en el texto.

Esto puede ser graficado de varias maneras, como por ejemplo mediante nubes de palabras, en las cuales el tamaño de un término es proporcional a su frecuencia de aparición.

  • Obtener listas de palabras y bigramas más frecuentes
unigramas = obtener_ngramas(texto, 1)
bigramas = obtener_ngramas(texto, 2)

bigramas[98:105]
['ingenioso hidalgo',
 'hidalgo mancha',
 'mancha compuesto',
 'compuesto miguel',
 'miguel cervantes',
 'cervantes saavedra',
 'saavedra tasaron']
  • Graficar y guardar nubes de palabras y bigramas

Si se utiliza el parámetro "ubicacion_archivo", la imagen generada se guardará en la ubicación especificada.

La función par_nubes permite generar un par de nubes de palabras (una junto a otra).

par_nubes(texto, n1=1, n2=2, ubicacion_archivo='salida/nube_uni_bi.jpg')

screenshot

  • Gráficas de barras con las frecuencias

Los n-gramas más frecuentes también se pueden visualizar mediante gráficas más estándar como, por ejemplo, gráficos de barras que muestren los términos más frecuentes. La función grafica_barchart_frecuencias permite obtener estas gráficas.

grafica_barchart_frecuencias(texto, ubicacion_archivo='salida/barras_palabras.jpg', 
                             titulo='Frecuencias de palabras', dim_figura=(7,4))

screenshot

Control de cambios

Para ver todos los cambios en las versiones de ConTexto ver el archivo changelog

Contribuciones a ConTexto

Todas las contribuciones, reportes de errores, corrección de errores, las mejoras de la documentación y las ideas son bienvenidas.

Puede encontrar una descripción detallada de cómo contribuir en la Wiki de ConTexto

También lo invitamos a revisar el 📆 Tablero TODO de ConTexto, donde hay una serie de temas listados en los que el equipo UCD se encuentra trabajando.

Licencia MIT license

MIT License

La librería ConTexto - Librería de procesamiento y análisis de textos se encuentra publicada bajo la licencia MIT
Copyleft (c) 2020 Departamento Nacional de Planeación - DNP Colombia

Para mayor información puede consultar el archivo de Licencia

📞 Contacto

Para comunicarse con la Unidad de Científicos de Datos (UCD) de la Dirección de Desarrollo Digital (DDD) del DNP, lo puede hacer mediante el correo electrónico [email protected]

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].