¿Cómo expreso relaciones sutiles en mis datos?

20

"A" está relacionado con "B" y "C". ¿Cómo demuestro que "B" y "C" podrían, en este contexto, estar relacionadas también?

Ejemplo:

Aquí hay algunos titulares sobre una obra reciente de Broadway:

  1. Glengarry Glen Ross de David Mamet, protagonizada por Al Pacino, se estrena en Broadway
  2. Al Pacino en 'Glengarry Glen Ross': ¿Qué pensaron los críticos?
  3. Al Pacino gana críticas mediocres por su turno en Broadway
  4. Revisión de teatro: Glengarry Glen Ross está vendiendo sus estrellas con fuerza
  5. Glengarry Glen Ross; Oye, ¿Quién mató a las luces Klieg?

Problema:

Ejecutar una coincidencia de cadena difusa sobre estos registros establecerá algunas relaciones, pero no otras, a pesar de que un lector humano podría distinguirlas del contexto en conjuntos de datos mucho más grandes.

¿Cómo encuentro la relación que sugiere que el n. ° 3 está relacionado con el n. ° 4? Ambos se pueden conectar fácilmente al # 1, pero no el uno al otro.

¿Hay un nombre (Googlable) para este tipo de datos o estructura? ¿Qué tipo de algoritmo estoy buscando?

Objetivo:

Dado 1,000 titulares, un sistema que sugiere automáticamente que estos 5 elementos probablemente sean casi lo mismo.

Para ser honesto, ha pasado tanto tiempo desde que programé que no sé cómo articular correctamente este problema. (No sé lo que no sé, si eso tiene sentido).

Este es un proyecto personal y lo estoy escribiendo en Python. ¡Gracias de antemano por cualquier ayuda, consejo y sugerencias!

Chuck H
fuente
1
suena como el análisis del lenguaje natural y / o se requiere alguna otra técnica probabilística
jk.
2
¡Esta es una gran pregunta!
Michael Brown
Creo que he visto sistemas que pueden hacer esto implementados en Prolog.
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Sospecho que estás pensando en la unificación en la programación lógica ...?
Izkata

Respuestas:

14

Se llama análisis de conglomerados , que básicamente agrupa objetos en conglomerados con propiedades similares. Es un gran tema, pero eso debería darle un lugar para comenzar.

Karl Bielefeldt
fuente
7

Estás entrando en el mundo de la semántica. Hay servicios públicos que analizarán el texto y extraerán los conceptos principales (una búsqueda rápida de API semántica resultó algunos) que analizarán un documento de forma gratuita y devolverán los principales temas encontrados, incluyendo personas, lugares, cosas, fechas y conceptos. . Algunos de los mejores volverán en un formato conocido como [RDF]

Si desea construir su propio sistema que pueda hacer esto, el campo es Procesamiento de lenguaje natural y ese es un agujero de conejo muy intrigante para sumergirse.

Michael Brown
fuente
4

Si es posible, obtenga la historia junto con el titular. Los titulares a veces pueden ser "lindos" y hacer solo una referencia tangencial a lo que se está discutiendo. Esto funciona bien con los humanos (porque tienen un contexto global ), pero no tan bien con la PNL.

Como se menciona en la respuesta de Karl Bielefeldt, el agrupamiento es un buen enfoque, pero el Diablo está en los detalles. No solo tiene que elegir un enfoque de agrupación que se adapte a su problema / espacio de usuario, sino que también tiene que descubrir qué se está agrupando.

Mi experiencia es en recuperación de información (IR) de los años 80-90, y nos centramos en la búsqueda de similitudes y la agrupación basada en centroides . Nuestros documentos fueron representados por vectores de atributos ponderados , que es básicamente una lista de términos y su importancia relativa en el documento. Este enfoque puede funcionar (aunque mejor con algunas colecciones que con otras), pero tiene problemas con los titulares cortos, porque carecen de términos clave de vocabulario para unir las cosas. Pero si usa todo el documento, obtendrá una lista de términos mucho más rica (y probablemente un mejor sentido de importancia), y esa lista de términos probablemente hará que la conexión sea más fácil de detectar (es decir, calcular) cuando tenga titulares que sean "linda".

Mi correo electrónico está en mi perfil si desea abordar problemas de generación de vectores, etc.

Peter Rowell
fuente