Antes que nada, intente conservar la información sobre "límites" que se encuentra en el texto de entrada.
(si dicha información no ha fácilmente ser perdido, su pregunta implica que tal vez la tokenización fácilmente se ha hecho)
Durante la tokenización (palabra de análisis, en este caso) de procesos, buscar patrones que pueden definir límites de expresión (como la puntuación, particularmente los períodos, y también la separación múltiple LF/CR, úselas. También palabras como "the", a menudo se pueden usar como límites. Tales límites de expresión son típicamente "negativos", en el sentido de que separan dos token las instancias que están seguras de no se incluyen en la misma expresión. Algunos límites positivos son comillas, particularmente comillas dobles. Este tipo de información puede ser útil para filtrar algunos de los n-grams (consulte el siguiente párrafo). Secuencias de palabras como "por ejemplo e "o" en lugar de "o" necesidad "también se pueden usar como límites de expresión (pero el uso de dicha información está disminuyendo el uso de" antecedentes ", que analizaré más adelante).
Sin utilizar datos externos (distintos del texto de entrada), puede tener un éxito relativo con esto ejecutando estadísticas sobre digramas del texto y trigramas (secuencia de 2 y 3 palabras consecutivas). Entonces [la mayoría] de las secuencias con un número significativo (*) de instancias probablemente será el tipo de "expresión/frases" que está buscando.
Este método algo crudo dará algunos falsos positivos, pero en general puede ser viable. Habiendo filtrado los n-grams conocidos para cruzar "límites" como se insinuaba en el primer párrafo, puede ayudar significativamente porque en los lenguajes naturales la oración finalizada y el comienzo de la oración tienden a dibujarse desde un subconjunto limitado del espacio del mensaje y por lo tanto producen combinaciones de token que pueden parecen estar estadísticamente bien representados, pero que típicamente no están semánticamente relacionados.
Mejores métodos (posiblemente más caros, procesamiento y diseño/inversión), harán que el uso de "priores" adicionales sea relevante para el dominio y/o los idiomas nacionales del texto de entrada.
- POS (Part-Of-Speech) tagging es bastante útil, de varias maneras (proporciona adicionales, límites de expresión más objetivos, y también palabras de "ruido" clases, por ejemplo, todos los artículos, incluso cuando se utiliza en el contexto de las entidades suelen ser de poco en la etiqueta nubes de tal manera que el PO quiere producir.
- Diccionarios, léxicos y similares pueden ser muy útiles también. en particular, éstos que identifican las "entidades" (también conocido casos en WordNet jerga) y sus formas alternativas. las entidades son muy importante para las nubes de etiquetas (aunque no son la única clase de palabras que se encuentran en ellas), y al identificarlas, también es posible normalizarlas (los muchos ex pressions que se pueden usar para decir, "Senador T. Kennedy"), por lo tanto eliminar duplicados, pero también aumentar la frecuencia de las entidades subyacentes.
- si el corpus está estructurado como una colección de documentos, puede ser útil usar varios trucos relacionados con la TF (frecuencia de los términos) y la IDF (frecuencia inversa de documento)
[Lo siento, tengo que ir, por ahora (además, desea obtener más detalles de sus objetivos específicos, etc.). Voy a tratar de dar más detalles y posteriores pointes]
[Por cierto, quiero conectar aquí respuestas Jonathan Feinberg y Dervin THUNK de este post, ya que proporcionan excelentes punteros, en términos de métodos y herramientas para la tipo de tarea a mano. En particular, NTLK y Python-en-grande proporcionan un marco excelente para experimentar]
Es posible que desee limpiar primero sus datos de entrada eliminando las palabras comunes de "ruido" con una lista de palabras prohibidas. – teabot
@teabot, sí, lidiar con las palabras irrelevantes es importante, pero no debería hacerse hasta que estas palabras hayan servido para otros propósitos. Por ejemplo, si tiene la intención de etiquetar POS el texto de entrada, se requerirán palabras irrelevantes. Incluso sin las técnicas POS-tagging, más simples pueden hacer uso de estas palabras ruidosas para inferir límites de expresión, etc. – mjv
@Kimvais, proporcione más antecedentes sobre el propósito de la gran 'lista de etiquetas'. ¿Es solo para indexar el texto, es para proporcionar una forma de crear nubes de etiquetas, es un paso hacia la categorización de los documentos subyacentes, etc.? Con esta información adicional, los colaboradores de SO podrán responder mejor a esta búsqueda relativamente amplia.Podría ser que todo lo que necesita es Swish-e como lo insinúa la heferav, o podría ser que necesite más sugerencias e ideas sobre cómo adaptar diversas prácticas de PNL para atender una necesidad específica (sin necesariamente "reinventar la rueda"). – mjv