2010-01-05 10 views
26

Come funziona qualcosa come le frasi statisticamente improbabili?Come funzionano le frasi statisticamente improbabili di Amazon?

secondo Amazon:

di Amazon.com statisticamente improbabile frasi, o "SIP", sono le più frasi distintive nel testo di libri nel cercare dentro ™ programma!. Per identificare i SIP, i nostri computer scansionano il il testo di tutti i libri nella ricerca Inside! programma. Se trovano una frase che si verifica un gran numero di volte in un libro particolare relativo a tutti Cerca dentro! libri, quella frase è un SIP in quel libro.

SIP non sono necessariamente improbabili all'interno di un particolare libro, ma sono improbabili relative a tutti i libri di Ricerca All'interno !. Ad esempio, la maggior parte dei SIP per un libro sulle tasse sono correlati alle tasse. Tuttavia, poiché vengono visualizzati i SIP nell'ordine del loro punteggio di improbabilità, i primi SIP saranno nei temi fiscali che questo libro menziona più spesso di altri libri delle imposte. Per le opere di narrativa, i SIP tendono a essere parole distintive combinazioni che spesso suggeriscono gli elementi di trama importanti .

Per esempio, per il primo libro di Gioele, i SIP sono: astrazioni che perde, testo con antialiasing, il cibo proprio cane, conteggio dei bug, costruisce tutti i giorni, database dei bug, gli orari di software

Una complicazione interessante è che questi sono frasi di 2 o 3 parole. Ciò rende le cose un po 'più interessanti perché queste frasi possono sovrapporsi o contenerle a vicenda.

risposta

16

È molto simile al modo in cui Lucene classifica i documenti per una determinata query di ricerca. Usano una metrica chiamata TF-IDF, dove TF è frequenza di termine e idf è frequenza di documento inversa. Il primo classifica un documento più alto, più i termini di ricerca appaiono in quel documento e quest'ultimo classifica un documento più alto se ha termini della query che appaiono di rado su tutti i documenti. Il modo specifico con cui lo calcolano è log (numero di documenti/numero di documenti con il termine) - cioè, l'inverso della frequenza che il termine appare.

Quindi nel tuo esempio, quelle frasi sono SIP relative al libro di Joel perché sono frasi rare (che appaiono in pochi libri) e compaiono più volte nel suo libro.

Modifica: in risposta alla domanda su 2 grammi e 3 grammi, la sovrapposizione non ha importanza. Considera la frase "i miei due cani sono marroni". Qui, la lista dei 2 grammi è ["i miei due", "due cani", "i cani sono", "sono marroni"], e l'elenco dei 3 grammi è ["i miei due cani", "due cani sono "," i cani sono marroni "]. Come ho detto nel mio commento, con la sovrapposizione ottieni N-1 2-grammi e N-2 3-grammi per un flusso di N parole. Poiché 2 grammi possono equivalere solo a 2 grammi e allo stesso modo a 3 grammi, puoi gestire ciascuno di questi casi separatamente. Durante l'elaborazione di 2 grammi, ogni "parola" sarà di 2 grammi, ecc.

+0

è un po 'più complicato di così, perché le frasi possono essere lunghe 2 o 3 parole, che potrebbero sovrapporsi o contenerle. tf-idf viene solitamente descritto solo con termini singoli. –

+0

Non sono sicuro che importi così tanto, soprattutto se limitato a frasi di lunghezza 3 o inferiore. Per un flusso di testo di token N, hai N-1 bigrams e N-1 trigram.Ovviamente, un bigram sarà uguale a un altro bigram, e allo stesso modo per un trigramma, quindi è possibile calcolare le misure IDF di bigram e trigram tanto velocemente quanto lo si potrebbe fare per le parole. – danben

+0

@ ʞɔıu: Di solito è descritto in termini singoli, ma non è necessario applicarlo in questo modo. Ecco perché ho accennato a "una variazione" nella mia risposta. la spiegazione di Danub lo copre. –

1

Sono quasi certo che sia la combinazione di SIP che identificano il libro come unico. Nel tuo esempio è quasi impossibile che un altro libro abbia "astrazioni che perdono" e "cibo per cani" nello stesso libro.

Qui sto facendo un'ipotesi perché non lo so per certo.

10

Probabilmente stanno usando una variazione sul peso tf-idf, rilevando le frasi che si verificano un numero elevato di volte nel libro specifico ma poche volte in tutto il corpus meno il libro specifico. Ripeti per ogni libro.

Quindi "improbabilità" è relativa all'intero corpus e potrebbe essere intesa come "unicità" o "ciò che rende un libro unico rispetto al resto della biblioteca".

Naturalmente, sto solo supponendo.

5

Come punto di partenza, guarderei a Markov Chains.

Una possibilità:

  1. costruire un corpus di testo dal indice completo.
  2. crea un corpus di testo da un solo libro.
  3. per ogni frase di frase da m a n, trovare la probabilità che ogni corpo lo generi.
  4. selezionare le frasi N con il più alto rapporto di probabilità.

Un'estensione interessante sarebbe quella di eseguire un generatore di catene Markov in cui la tabella dei pesi è un ingrandimento della differenza tra il corpus globale e locale. Ciò genererebbe una "caricatura" (letteralmente) delle idiosincrasie stilistiche dell'autore.

+0

Sarebbe interessante vedere come questo si paragona al metodo lucene di cui sopra. – Kevin

+0

Sospetto che potrebbe essere equivalente se il corpus viene creato utilizzando una finestra almeno finché le frasi vengono considerate. – BCS

5

LingPipe ha un tutorial su come eseguire questa operazione e si collegano ai riferimenti. Non discutono della matematica che c'è dietro, ma il loro codice sorgente è aperto in modo da poter guardare nel loro codice sorgente.

Non posso dire di sapere cosa fa Amazon, perché probabilmente lo tengono segreto (o almeno non si sono presi la briga di dirlo a nessuno).

2

Scusa per aver ripristinato un thread precedente, ma sono arrivato qui per la stessa domanda e ho scoperto che c'è un lavoro più recente che potrebbe aggiungere alla grande discussione.

Ritengo che i SIP siano più specifici di un documento rispetto alle parole con alti punteggi TF-IDF. Ad esempio, in un documento su Harry Potter, termini come Hermione Granger e Hogwarts tendono ad essere SIP migliori dove, come termini come magia e Londra non lo sono. TF-IDF non è bravo a fare questa distinzione.

Mi sono imbattuto in un'interessante definizione di SIP here. In questo lavoro, le frasi sono modellate come n-grammi e la loro probabilità di accadimento in un documento è calcolata per identificare la loro unicità.