Veo dos enfoques diferentes que podrías tomar:
1. Aprendizaje no supervisado: agrupamiento en el espacio del documento:
Si no tiene ningún dato etiquetado, entonces debe usar un modelo como Indización Semántica Latente o Asignación de Dirichlet Latente [3]. Lea esta increíble respuesta para más información:
- ¿Cómo debo aprender el aprendizaje automático? ¿Puede proporcionar una hoja de ruta específica desde un principiante hasta un experto?
- Cómo detectar si una imagen contiene uno o más rostros humanos
- Hipotéticamente, ¿sería posible cultivar tejido cerebral usando células madre y luego usarlo como un procesador distribuido para tareas de aprendizaje complejas?
- ¿Cuál es un buen conjunto de datos de Kaggle para practicar el ajuste de modelos de regresión logística o modelos jerárquicos?
- ¿Cuál es la diferencia entre D3M y el aprendizaje profundo?
¿Cuál es una buena explicación de la asignación de Dirichlet latente?
El resultado de este proceso son documentos agrupados en torno a temas y contenidos similares. Estos algoritmos lo ayudarán a “descubrir” temas en sus documentos, y estos temas serían una forma de similitud.
2. Aprendizaje supervisado: enfoque de filtrado bayesiano:
Si tiene un conjunto de documentos etiquetados (estas etiquetas pueden ser cualquier cosa), intente tratar esto como un problema de filtrado de SPAM [4] y capacite a un clasificador Naive Bayes utilizando funciones simples de bolsa de palabras [6] , o tal vez incluso frases (características de n-gramas [5]). Dependiendo de las características que elija, puede encontrar algunos resultados interesantes. Para más información, lea el siguiente enlace:
¿Cómo funcionan los algoritmos bayesianos para la identificación de spam?
También podría probar una combinación de ambos enfoques (esto es lo que haría).
En cuanto a los recursos, usaría Python: use una combinación del Kit de herramientas de procesamiento de lenguaje natural (NLTK) [7] para la extracción de características y luego Scipy [8], Numpy [9] y otros paquetes de código abierto para el modelado. Si no sabe cómo funciona Naive Bayes, codifíquelo usted mismo. Es bastante simple y volverá a aprender una teoría de probabilidad simple mientras lo hace.
Si desea ser realmente ambicioso y moverse más allá de los simples Naive Bayes y probar modelos más complejos, consulte estos documentos [10] [11]
Estos documentos destacan una serie de algoritmos diferentes (Máquinas de vectores de soporte [13], Máxima entropía [12], Filtrado bayesiano, etc.) y algunas características realmente geniales que puede usar para clasificar el contenido semántico de un documento. Están utilizando críticas de películas IMDB [14], pero podría fácilmente hacer la transición de este trabajo a cuerpos de texto más grandes como documentos, libros, etc. Una vez que obtenga la semántica, puede agrupar los documentos por similitud (creo).
Lo bueno de usar SVM es que funcionan extremadamente bien en un espacio dimensional muy alto, que es típico de las características que necesitará extraer para resolver su problema. Solo necesita asegurarse de tener un tamaño de conjunto de entrenamiento grande (proporcional al tamaño de sus características) para evitar la maldición de la dimensionalidad [1]
[1] http://en.wikipedia.org/wiki/Cur…
[2] http://en.wikipedia.org/wiki/Lat…
[3] http://en.wikipedia.org/wiki/Lat…
[4] http://en.wikipedia.org/wiki/Bay…
[5] http://en.wikipedia.org/wiki/N-gram
[6] http://en.wikipedia.org/wiki/Bag…
[7] http://www.nltk.org/
[8] http://www.scipy.org/
[9] http://numpy.scipy.org/
[10] http://www.cs.cornell.edu/home/l…
[11] http://www.cs.cornell.edu/People…
[12] http://en.wikipedia.org/wiki/Max…
[13] http://en.wikipedia.org/wiki/Sup…
[14] http://en.wikipedia.org/wiki/Int…