Bienvenido a la documentaci贸n del Analizador de Textos露
Contents:
Analizador de Textos露
Coverage Status Build Status PyPI Stories in Ready Documentation Status
Paquete en python para an谩lisis, clasificaci贸n y recuperaci贸n de textos, utilizado por el equipo de Datos Argentina.
- Licencia: MIT license
Instalaci贸n露
Dependencias露
textar
usa pandas
, numpy
, scikit-learn
y scipy
. Para que funcionen, se requiere instalar algunas dependencias no pythonicas:
- En Ubuntu:
sudo apt-get install libblas-dev liblapack-dev libatlas-base-dev gfortran
Desde pypi露
pip install textar
Para desarrollo露
git clone https://www.github.com/datosgobar/textar.git
cd path/to/textar
pip install -e .
Cualquier cambio en el c贸digo est谩 disponible en el entorno virtual donde fue instalado de esta manera.
Uso露
B煤squeda de textos similares露
from textar import TextClassifier
tc = TextClassifier(
texts=[
"El 谩rbol del edificio moderno tiene manzanas",
"El 谩rbol m谩s chico tiene muchas mandarinas naranjas, y est谩 cerca del monumento antiguo",
"El edificio m谩s antiguo tiene muchos cuadros caros porque era de un multimillonario",
"El edificio m谩s moderno tiene muchas programadoras que comen manzanas durante el almuerzo grupal"
],
ids=map(str, range(4))
)
ids, distancias, palabras_comunes = tc.get_similar(
example="Me encontr茅 muchas manzanas en el edificio",
max_similars=4
)
print ids
['0', '3', '2', '1']
print distancias
[0.92781458944579009, 1.0595805639371083, 1.1756638126839645, 1.3206413200640157]
print palabras_comunes
[[u'edificio', u'manzanas'], [u'edificio', u'muchas', u'manzanas'], [u'edificio', u'muchas'], [u'muchas']]
Clasificaci贸n de textos露
from textar import TextClassifier
tc = TextClassifier(
texts=[
"Para hacer una pizza hace falta harina, tomate, queso y jam贸n",
"Para hacer unas empanadas necesitamos tapas de empanadas, tomate, jam贸n y queso",
"Para hacer un daiquiri necesitamos ron, una fruta y un poco de lim贸n",
"Para hacer un cuba libre necesitamos coca, ron y un poco de lim贸n",
"Para hacer una torta de naranja se necesita harina, huevos, leche, ralladura de naranja y polvo de hornear",
"Para hacer un lemon pie se necesita crema, ralladura de lim贸n, huevos, leche y harina"
],
ids=map(str, range(6))
)
# entrena un clasificador
tc.make_classifier(
name="recetas_classifier",
ids=map(str, range(6)),
labels=["Comida", "Comida", "Trago", "Trago", "Postre", "Postre"]
)
labels_considerados, puntajes = tc.classify(
classifier_name="recetas_classifier",
examples=[
"Para hacer un bizcochuelo de chocolate se necesita harina, huevos, leche y chocolate negro",
"Para hacer un sanguche de miga necesitamos pan, jam贸n y queso"
]
)
print labels_considerados
array(['Comida', 'Postre', 'Trago'], dtype='|S6')
print puntajes
array([[-3.52493526, 5.85536809, -6.05497008],
[ 2.801027 , -6.55619473, -3.39598721]])
# el primer ejemplo es un postre
print sorted(zip(puntajes[0], labels_considerados), reverse=True)
[(5.8553680868184079, 'Postre'),
(-3.5249352611212568, 'Comida'),
(-6.0549700786502845, 'Trago')]
# el segundo ejemplo es una comida
print sorted(zip(puntajes[1], labels_considerados), reverse=True)
[(2.8010269985828997, 'Comida'),
(-3.3959872063363505, 'Trago'),
(-6.5561947275785393, 'Postre')]
Tests露
Los tests s贸lo se pueden correr habiendo clonado el repo. Luego instalar las dependencias de desarrollo:
pip install -r requirements_dev.txt
y correr los tests:
nosetests
Cr茅ditos露
- Victor Lavrenko nos ayud贸 a entender el problema con sus explicaciones en youtube: https://www.youtube.com/user/victorlavrenko
Contacto露
Te invitamos a [crearnos un issue](https://github.com/datosgobar/textar/issues/new?title=Encontr茅 un bug en textar) en caso de que encuentres alg煤n bug o tengas feedback de alguna parte de textar
.
Para todo lo dem谩s, pod茅s mandarnos tu comentario o consulta a datos@modernizacion.gob.ar.
History露
0.0.6 (2017-09-25)露
- Arreglo de bugs en las palabras destacadas de los resultados sugeridos.
0.0.5 (2017-07-14)露
- Mejoras en la forma en que se seleccionan las palabras destacadas de la busqueda
- Correcciones a los tests correspondientes
0.0.4 (2016-11-25)露
- Correcciones a los tests
- Revisi贸n de la documentaci贸n
0.0.1 (2016-11-22)露
- First release on PyPI.
\ Sort by:\ best rated\ newest\ oldest\
\\
Add a comment\ (markup):
\``code``
, \ code blocks:::
and an indented block after blank line