2010-03-14 11 views
19

No sé si StackOverflow cubre NLP, así que voy a dar una oportunidad. Estoy interesado en encontrar la relación semántica de dos palabras de un dominio específico, es decir, "calidad de imagen" y "ruido". Estoy investigando para determinar si las revisiones de las cámaras son positivas o negativas para un atributo particular de la cámara. (como la calidad de imagen en cada una de las revisiones).PNL: ¿algún método fácil y bueno para encontrar similitud semántica entre palabras?

Sin embargo, no todo el mundo utiliza la exacta redacción misma "calidad de imagen" en los mensajes, así que estoy a ver si hay una manera para mí para construir algo así:

"calidad de imagen", que incluye ("ruido", "color", "nitidez", etc, etc.) para que pueda envolver todo dentro de un gran paraguas.

Estoy haciendo esto para otro idioma, por lo que Wordnet no es necesariamente útil. Y no, no trabajo para Google o Microsoft, así que tampoco tengo datos del comportamiento de clic de las personas como datos de entrada.

Sin embargo, tengo una gran cantidad de texto, pos-etiquetados, etc. segmentados

+0

Sería útil si pudiera decir más acerca de los datos con los que está trabajando y la tarea exacta que le gustaría realizar. ¿Estás tratando de clasificar los contenidos de las revisiones individuales como positivas o negativas? O bien, ¿está asumiendo que las revisiones ya están etiquetadas como positivas o negativas y está tratando de averiguar qué atributos de la cámara conducen a los sentimientos del usuario sobre el producto (por ejemplo, el producto recibió 1 de 5 estrellas, y el el usuario menciona "calidad de imagen" en la revisión, por lo que puede inferir que la calidad de la imagen es mala)? – dmcer

+0

Vaya. Confundido PNL/Procesamiento de lenguaje natural con PNL/Programación neurolingüística. Mi error. –

+0

1) Me gustaría encontrar la clasificación paraguas de los términos: como la forma en que múltiples atributos pertenecen realmente a la misma categoría (supongo que esto es clasificación entonces?) Solo he tratado la clasificación mediante el método de aprendizaje automático, que dudo mucho que pueda aplicar a NLP 2) Quiero básicamente algo que me diga la similitud entre dos términos conceptuales: "foco" vs "Detalles" debe ser mayor que "peso de la cámara" vs "flash" – sadawd

Respuesta

2

Tome un vistazo a indexación semántica latente http://en.wikipedia.org/wiki/Latent_semantic_indexing que se refiere específicamente a su problema. Sin embargo, debe encontrar la forma de correlacionar estos metaconceptos con sentimientos positivos o negativos. El análisis de sentimientos http://en.wikipedia.org/wiki/Sentiment_analysis debería ayudarlo.

+1

Aquí hay un buen recurso para aprender realmente LSI (si está dispuesto a realizar algún trabajo) http://nlp.stanford.edu/IR-book/pdf/18lsi.pdf – bernie2436

5

Salida distancia Google similitud - http://arxiv.org/abs/cs.CL/0412098 por ejemplo. si muchas páginas web los incluyen a ambos, probablemente estén relacionados.

programa de demostración en http://mechanicalcinderella.com

Aparte de eso, se podría tratar de traducir un proyecto como WordNet ((traductor Google podría ayudar), o iniciar una ontología de colaboración.

+0

En esa demostración, la conexión de (programación, animal) es más fuerte que la conexión de (programación, html)) http://www.mechanicalcinderella.com/index.php?inset%5B%5D=animal&inset%5B%5D=html & inserción% 5B% 5D = & inserción% 5B% 5D = & inserción% 5B% 5D = & inatr% 5B% 5D = programación & inatr% 5B% 5D = & inatr% 5B% 5D = & inatr% 5B% 5D = & inatr% 5B% 5D = & domena = # resultados – Mher

+0

http://mechanicalcinderella.com roto ahora –

4

el fin de encontrar similitud semántica entre palabras, un word space model debería ser el truco.Este modelo se puede implementar de manera muy fácil y eficiente. Lo más probable es que desee implementar algún tipo de reducción de dimensionalidad. El más fácil que puedo pensar es Random Indexing, que se ha utilizado ampliamente en NLP.

Una vez que tenga su modelo de espacio de palabra, puede calcular distancias (p. distancia del coseno) entre las palabras. En dicho modelo, debe obtener los resultados que mencionó anteriormente (la distancia entre "enfoque" y "Detalles" debe ser mayor que "peso de la cámara" frente a "flash").

Espero que esto ayude!

+0

ambos enlaces rotos ahora – snoram

2

Vi word2vec en HackerNews hace un par de semanas, se ve bastante cerca de lo que quieres.

1

Word-Space es definitivamente el camino a seguir aquí. Si LSA va a ralentizar su aplicación y si la semántica en la indexación aleatoria es demasiado superficial, debería considerar api.cortical.io. Esta API REST puede proporcionarle la representación semántica de huellas dactilares de cualquier palabra. Esta huella semántica contiene todos los diferentes contextos a los que pertenecen las palabras. Puedes desambiguar cualquier palabra con una llamada como "órgano" regresa (músculo, piano, iglesia, membresía ...) Y para cada uno de los contextos puedes obtener términos contextuales: "piano" dará (órgano, clarinete, violín, flauta, chelo, composiciones, clavecín, orquestal) En cuanto a su último aspecto, estas huellas dactilares semánticas son completamente independientes del lenguaje. Actualmente cortical.io API cubre: inglés, español, francés, alemán, danés, árabe, ruso, chino. Se publicarán más idiomas hasta el final de 2014.

Cuestiones relacionadas