Come posso esprimere relazioni sottili nei miei dati?

20

"A" è relativo a "B" e "C". Come faccio a dimostrare che "B" e "C" potrebbero, anche in questo contesto, essere correlati?

Esempio:

Ecco alcuni titoli di un recente spettacolo di Broadway:

  1. Glengarry Glen Ross di David Mamet, con Al Pacino, si apre a Broadway
  2. Al Pacino in 'Glengarry Glen Ross': cosa pensavano i critici?
  3. Al Pacino ottiene recensioni poco brillanti per il turno di Broadway
  4. Rassegna teatrale: Glengarry Glen Ross sta vendendo le sue stelle difficili
  5. Glengarry Glen Ross; Ehi, chi ha ucciso le luci di Klieg?

Problema:

L'esecuzione di una corrispondenza stringa fuzzy su questi record stabilirà alcune relazioni, ma non altre, anche se un lettore umano potrebbe selezionarle dal contesto in serie di dati molto più grandi.

Come faccio a trovare la relazione che suggerisce # 3 in relazione al # 4? Entrambi possono essere facilmente collegati al numero 1, ma non tra loro.

Esiste un nome (googlable) per questo tipo di dati o struttura? Che tipo di algoritmo sto cercando?

Obiettivo:

Dato 1.000 titoli, un sistema che suggerisce automaticamente che questi 5 elementi sono tutti probabilmente sulla stessa cosa.

Per essere onesti, è passato così tanto tempo da quando ho programmato che non riesco a capire come articolare correttamente questo problema. (Non so cosa non so, se questo ha senso).

Questo è un progetto personale e lo sto scrivendo in Python. Grazie in anticipo per qualsiasi aiuto, consiglio e indicazioni!

    
posta Chuck H 10.12.2012 - 19:19
fonte

3 risposte

14

Si chiama analisi del cluster , che fondamentalmente raggruppa oggetti in cluster con proprietà simili. È un argomento enorme, ma dovrebbe darti un punto di partenza.

    
risposta data 10.12.2012 - 19:51
fonte
7

Stai entrando nel mondo della Semantica. Ci sono servizi pubblici che analizzeranno il testo e tireranno fuori i concetti principali (una rapida ricerca per API semantica ne ha mostrati alcuni) che analizzeranno un documento in formato libero e restituiranno i principali argomenti incontrati tra cui persone, luoghi, cose, date e concetti. Alcuni dei migliori ritorneranno in un formato noto come [RDF]

Se vuoi costruire il tuo sistema che può farlo, il campo è Natural Language Processing e questo è un coniglio molto intrigante per immergersi.

    
risposta data 10.12.2012 - 19:53
fonte
4

Se possibile, prendi la storia insieme al titolo. I titoli a volte possono diventare "carini" e fare solo un riferimento tangenziale a ciò che viene discusso. Funziona bene con gli umani (perché hanno contesto globale ), ma non così bene con la PNL.

Come accennato nella risposta di Karl Bielefeldt, il clustering è un buon approccio, ma il Diavolo è nei dettagli. Non devi solo scegliere un approccio di cluster adatto al tuo problema / spazio utente, devi anche capire che è in cluster.

Il mio background è in Information Retrieval (IR) degli anni '80 -'90, e ci siamo concentrati su ricerca di similarità e clustering basato sul centroide . I nostri documenti erano rappresentati da vettori di attributi ponderati , che è fondamentalmente un elenco di termini e la loro importanza relativa nel doc. Questo approccio può funzionare (anche se meglio con alcune raccolte rispetto ad altri), ma ha problemi con titoli di breve durata, perché mancano termini di vocabolario chiave per legare le cose insieme. Ma se si utilizza l'intero documento, si ottiene un elenco molto più ricco di termini (e probabilmente un migliore senso di importanza) e tale elenco di termini probabilmente renderà la connessione più facile da individuare (cioè calcolare) quando si hanno titoli che sono "cute".

La mia e-mail è nel mio profilo se vuoi entrare in problemi di generazione di vettori, ecc.

    
risposta data 10.12.2012 - 20:56
fonte

Leggi altre domande sui tag