Comment exprimer des relations subtiles dans mes données?

20

"A" est lié à "B" et "C". Comment puis-je montrer que "B" et "C" pourraient, dans ce contexte, être également liés?

Exemple:

Voici quelques titres sur une récente pièce de Broadway:

  1. Glengarry Glen Ross de David Mamet, avec Al Pacino, ouvre à Broadway
  2. Al Pacino dans 'Glengarry Glen Ross': Qu'en ont pensé les critiques?
  3. Al Pacino gagne des critiques ternes pour le virage de Broadway
  4. Revue de théâtre: Glengarry Glen Ross vend ses étoiles dur
  5. Glengarry Glen Ross; Hé, qui a tué les lumières de Klieg?

Problème:

L'exécution d'une correspondance de chaîne floue sur ces enregistrements établira certaines relations, mais pas d'autres, même si un lecteur humain pourrait les extraire du contexte dans des ensembles de données beaucoup plus vastes.

Comment puis-je trouver la relation qui suggère que le n ° 3 est lié au n ° 4? Les deux peuvent être facilement connectés au n ° 1, mais pas l'un à l'autre.

Existe-t-il un nom (googlable) pour ce type de données ou de structure? Quel type d'algorithme est-ce que je recherche?

Objectif:

Compte tenu de 1 000 titres, un système qui suggère automatiquement que ces 5 articles sont probablement tous à peu près la même chose.

Pour être honnête, cela fait si longtemps que je n'ai pas programmé comment articuler correctement ce problème. (Je ne sais pas ce que je ne sais pas, si cela a du sens).

Il s'agit d'un projet personnel et je l'écris en Python. Merci d'avance pour toute aide, conseil et pointeurs!

Chuck H
la source
1
sonne comme l'analyse du langage naturel et / ou une autre technique probabiliste est nécessaire
jk.
2
C'est une excellente question!
Michael Brown
Je pense que j'ai vu des systèmes qui peuvent le faire implémentés dans Prolog.
FrustratedWithFormsDesigner
1
@FrustratedWithFormsDesigner Je soupçonne que vous songez à l' unification dans la programmation logique ..?
Izkata

Réponses:

14

Cela s'appelle l' analyse de cluster , qui regroupe essentiellement des objets en clusters avec des propriétés similaires. C'est un sujet énorme, mais cela devrait vous donner un point de départ.

Karl Bielefeldt
la source
7

Vous entrez dans le monde de la sémantique. Il existe des services publics qui analyseront le texte et sortiront les principaux concepts (une recherche rapide de l' API sémantique a révélé quelques-uns) qui analyseront un document de forme libre et retourneront les principaux sujets rencontrés, y compris les personnes, les lieux, les choses, les dates et les concepts . Certains des meilleurs reviendront dans un format appelé [RDF]

Si vous voulez construire votre propre système qui peut le faire, le champ est Traitement du langage naturel et c'est un trou de lapin très intrigant à plonger.

Michael Brown
la source
4

Dans la mesure du possible, retrouvez l'histoire avec le titre. Les titres peuvent parfois devenir «mignons» et ne faire qu'une référence tangentielle à ce qui est discuté. Cela fonctionne bien avec les humains (car ils ont un contexte mondial ), mais pas si bien avec la PNL.

Comme mentionné dans la réponse de Karl Bielefeldt, le clustering est une bonne approche, mais le diable est dans les détails. Vous devez non seulement choisir une approche de clustering qui convient à votre problème / espace utilisateur, vous devez également comprendre ce qui est en cluster.

Mon expérience se situe dans la recherche d'informations (IR) des années 80 et 90, et nous nous sommes concentrés sur la recherche de similitudes et le regroupement basé sur les centroïdes . Nos documents étaient représentés par des vecteurs d'attributs pondérés , qui sont essentiellement une liste de termes et leur importance relative dans le document. Cette approche peut fonctionner (bien que mieux avec certaines collections que d'autres), mais elle a des problèmes avec des titres courts et mignons, car ils manquent de termes de vocabulaire clés pour lier les choses ensemble. Mais si vous utilisez l'ensemble du document, vous obtenez une liste de termes beaucoup plus riche (et probablement un meilleur sens de l'importance), et cette liste de termes facilitera probablement la connexion (c.-à-d. Le calcul) lorsque vous avez des titres qui sont "mignonne".

Mon e-mail est dans mon profil si vous souhaitez vous lancer dans des problèmes de génération de vecteurs, etc.

Peter Rowell
la source