Pregunta

Soy muy nuevo en la ciencia de datos en general, y he tenido la tarea de un gran desafío.

Mi organización tiene muchos documentos que se clasifican en el tipo de documento (no formato binario, sino un tipo asignado subjetivamente basado en el contenido, por ejemplo, "contrato", "recibo", "declaración", etc ...).

La asignación generalmente de estos tipos se realiza al recibir los documentos, y no es un desafío, aunque nos gustaría eliminar el elemento humano de esta categorización. Del mismo modo, hay momentos en que hay atributos especiales que nos gustaría identificar, como "declaración que muestra el uso". Hasta ahora, esto se hace completamente por la intervención humana.

Soy un programador de Python, y he estado buscando herramientas para extraer el texto de estos documentos (todos los PDF, todos ocr'ed y búsqueda) y ejecutar el análisis. La investigación me ha llevado a ver bibliotecas estándar como NLTK, Scikit-Learn y Gensim. Pero estoy luchando por identificar cuál sería la mejor metodología para clasificar los documentos recién recibidos.

Mi investigación me está guiando por algunas rutas ... uno está creando un modelo vectorial TF-IDF basado en una muestra de CORPA actual y luego creando un modelo para el corpus de un documento entrante y realiza un análisis de Bayes ingenuo contra los modelos existentes para discernir cuál Categoría El documento entrante pertenece en función de la mayor probabilidad. Pregunta 1: ¿Es esto correcto? Si es así, la pregunta 2 se convierte en la metodología programática correcta para lograr esto?

La razón por la que menciono esto es porque la mayoría de los tutoriales que encuentro parecen inclinarse hacia un discernimiento binario de Text CORPA (positivo versus negativo, spam vs jamón). Vi que Scikit-Learn tiene información sobre la clasificación de múltiples etiquetas, pero no estoy seguro de que esté siguiendo el camino correcto con él. La palabra "clasificación" parece tener un significado diferente en el análisis de documentos que lo que quisiera que signifique.

Si esta pregunta es demasiado vaga, hágamelo saber y puedo editarla para que sea más específica.

¿Fue útil?

Solución

Excepto por la parte OCR, el paquete correcto sería pandas y sklearn.

Puedes verificar esto cuaderno de ipython que utiliza TFIDFVectorizer y el clasificador SVC.

Este clasificador puede hacer One-VS-One o One-Vs-the Rest predicciones multiclase, y si usa el predict_proba método en lugar de predict, tendrías el nivel de confianza de cada categoría.

Si está buscando actuaciones y no necesita niveles de confianza de predicción, debe usar LinearSVC que es mucho más rápido.

Sklearn está muy bien documentado y encontrará todo lo que necesita para la clasificación de texto.

Licenciado bajo: CC-BY-SA con atribución
scroll top