2012-01-16 12 views
5

Necesito calcular las frecuencias de palabras de un conjunto dado de adjetivos en un gran conjunto de revisiones de soporte al cliente. Sin embargo, no quiero incluir aquellos que son negados.Técnicas para calcular la frecuencia de adjetivo

Por ejemplo, supongamos que mi lista de adjetivos fue: [útil, eficiente, amigable]. Quiero asegurarme de que "amistoso" no se cuente en una frase como "El representante no fue muy amigable".

¿Tengo que hacer un análisis completo de PNL del texto o hay un enfoque más fácil? No necesito una gran precisión.

No estoy nada familiarizado con NLP. Estoy esperando algo que no tenga una curva de aprendizaje tan empinada y no requiera tanto procesamiento.

Gracias

Respuesta

2

Si lo que quieres son frecuencias adjetivas, entonces el problema es relativamente simple, a diferencia de una solución de aprendizaje de máquina brutal, no tan buena.

Wat do?

Marca POS para el texto. Esto anota su texto con etiquetas de parte de discurso, por lo que tendrá una precisión del 95% o más en eso. Puede etiquetar su texto usando el Stanford Parser online para tener una idea. El analizador en realidad también le da la estructura gramatical, pero solo le importa el etiquetado.

También querrá asegurarse de que las oraciones estén divididas correctamente. Para esto necesitas un interruptor de frase. Eso está incluido con software como el analizador de Stanford.

Luego solo divide las oraciones, etiquétalas y cuente todas las cosas con la etiqueta ADJ o cualquier etiqueta que use. Si las etiquetas no tienen sentido, busque el juego de etiquetas Penn Treebank (los Treebanks se usan para entrenar herramientas NLP, y las etiquetas Penn Treebank son las más comunes).

¿Cómo?

Java o Python es el lenguaje de las herramientas de PNL. Python, usa NLTK. Es fácil, bien documentado y bien entendido.

Para Java, tiene GATE, LingPipe y Stanford Parser, entre otros. Me duele mucho usar el analizador de Stanford, afortunadamente sufrí, así que no tienes que hacerlo si eliges seguir ese camino. Vea mi google page para algunos ejemplos de código (en la parte inferior de la página) con el analizador de Stanford.

Das all?

No, es posible que desee detener los adjetivos también- que es donde se obtiene la forma de la raíz de una palabra:

coches -> coche

realidad no puedo pensar en una situación donde esto es necesario con adjetivos, pero podría suceder. Cuando mires tu resultado, será evidente si necesitas hacer esto. Un etiquetador/analizador de TPV/etc obtendrá sus palabras derivadas (también llamadas lemmas).

Más Explicaciones de NLP Ver this question.

enter image description here

+0

Wow, muchas gracias que todo es muy útil. – awinbra

+1

Si solo desea partes de discurso (como un adjetivo?), Será mucho más rápido usar solo un etiquetador de voz parcial (como el Etiquetador de POS de Stanford) en lugar de un analizador completo. Los análisis completos ayudarían a obtener el alcance de negación correcto, pero es posible que pueda manejarlo heurísticamente; busque una negación en algunas palabras anteriores antes de encontrar un signo de puntuación. –

+0

Lo siento, debería haber enojado esa distinción (tagger vs parser vs qué contiene cada paquete de software) – nflacco

2

Depende de la fuente de sus datos. Si las oraciones provienen de algún tipo de generador, probablemente puedas dividirlas automáticamente. De lo contrario, necesitarás PNL, sí.

Analizar correctamente el lenguaje natural prácticamente es un problema abierto. Funciona "en gran medida" para el inglés, en particular porque las oraciones en inglés tienden a ajustarse a la orden de SVO. El alemán, por ejemplo, es bastante desagradable aquí, ya que los diferentes órdenes de palabras transmiten un énfasis diferente (y por lo tanto pueden transmitir diferentes significados, en particular cuando se usa ironía). Además, el alemán tiende a usar cláusulas subordinadas mucho más.

NLP claramente es el camino a seguir. Por lo menos se necesitará un analizador básico. Realmente también depende de su tarea: ¿necesita asegurarse de que todos sean correctos, o que un enfoque probabilístico sea lo suficientemente bueno? ¿Pueden descartarse o alimentarse los casos "difíciles" a un ser humano para su revisión? etc.

+0

Las frases son de forma libre comentarios de texto, por lo que no hay un formato regular para ellos. No necesito asegurarme de que todos sean correctos, un enfoque probabilístico posiblemente sea lo suficientemente bueno. – awinbra

Cuestiones relacionadas