algorithm nlp platform-agnostic

algorithm - ¿Cómo funcionan las frases estadísticamente improbables de Amazon?



nlp platform-agnostic (6)

¿Cómo funciona algo como frases estadísticamente improbables?

Según amazon:

Las frases estadísticamente improbables de Amazon.com, o "SIPs", son las frases más distintivas en el texto de los libros en el programa Search Inside! ™. Para identificar los SIP, nuestras computadoras escanean el texto de todos los libros en la búsqueda interior. programa. Si encuentran una frase que aparece una gran cantidad de veces en un libro en particular en relación con todas las búsquedas internas. Libros, esa frase es un SIP en ese libro.

Los SIP no son necesariamente improbables dentro de un libro en particular, pero son improbables en relación con todos los libros en Search Inside !. Por ejemplo, la mayoría de los SIP para un libro sobre impuestos están relacionados con los impuestos. Pero debido a que mostramos los SIP por orden de su puntaje de improbabilidad, los primeros SIP serán sobre temas de impuestos que este libro menciona con más frecuencia que otros libros de impuestos. Para las obras de ficción, los SIP tienden a ser combinaciones distintivas de palabras que a menudo apuntan a elementos importantes de la trama.

Por ejemplo, para el primer libro de Joel, los SIP son: abstracciones con fugas, texto con antialias, comida para perros propia, recuento de errores, compilaciones diarias, base de datos de errores, programas programados

Una complicación interesante es que estas son frases de 2 o 3 palabras. Esto hace que las cosas sean un poco más interesantes porque estas frases se pueden superponer o contener entre sí.


Como punto de partida, miraría las cadenas de Markov .

Una opción:

  1. construir un corpus de texto a partir del índice completo.
  2. construir un corpus de texto de un solo libro.
  3. para cada frase de m an n, encuentre la probabilidad de que cada corpus la genere.
  4. Seleccione las frases N con la mayor proporción de probabilidades.

Una extensión interesante sería ejecutar un generador de cadenas de Markov en el que su tabla de pesos es un aumento de la diferencia entre el corpus global y el local. Esto generaría una "caricatura" (literalmente) de las idiosincrasias estilísticas del autor.


Estoy bastante seguro de que es la combinación de SIP que identifica el libro como único. En su ejemplo, es muy raro que sea imposible que otro libro tenga "abstracciones con fugas" y "comida para perros" en el mismo libro.

Sin embargo, estoy haciendo una suposición aquí ya que no estoy seguro.


LingPipe tiene un tutorial sobre cómo hacer esto, y se vinculan a las referencias. No discuten las matemáticas detrás de él, pero su código fuente está abierto, por lo que puede buscar en su código fuente.

No puedo decir que sé lo que hace Amazon, porque probablemente lo mantengan en secreto (o al menos no se molestaron en decírselo a nadie).


Lo siento por revivir un hilo viejo, pero llegué aquí por la misma pregunta y encontré que hay un trabajo más nuevo que podría agregar al gran hilo.

Siento que los SIP son más exclusivos de un documento que solo palabras con puntajes altos de TF-IDF. Por ejemplo, en un documento sobre Harry Potter , los términos como Hermione Granger y Hogwarts tienden a ser mejores SIP, mientras que los términos como magia y Londres no lo son. TF-IDF no es bueno para hacer esta distinción.

Me encontré con una definición interesante de SIPs here . En este trabajo, las frases se modelan como n-gramas y su probabilidad de aparición en un documento se calcula para identificar su singularidad.


Probablemente estén usando una variación en el peso de tf-idf , detectando frases que aparecen muchas veces en el libro específico pero pocas veces en todo el cuerpo menos el libro específico. Repita para cada libro.

Por lo tanto, la "improbabilidad" es relativa a todo el cuerpo y podría entenderse como "singularidad" o "lo que hace que un libro sea único en comparación con el resto de la biblioteca".

Por supuesto, sólo estoy adivinando.


Se parece mucho a la forma en que Lucene clasifica los documentos para una consulta de búsqueda determinada. Utilizan una métrica llamada TF-IDF, donde TF es frecuencia de término e idf es frecuencia de documento inversa. El primero clasifica un documento más alto cuanto más aparecen los términos de consulta en ese documento, y el segundo clasifica un documento más alto si tiene términos de la consulta que aparecen con poca frecuencia en todos los documentos. La forma específica en que lo calculan es log (número de documentos / número de documentos con el término), es decir, la inversa de la frecuencia con la que aparece el término.

Entonces, en su ejemplo, esas frases son SIP relacionadas con el libro de Joel porque son frases raras (que aparecen en pocos libros) y aparecen varias veces en su libro.

Edición : en respuesta a la pregunta sobre 2 gramos y 3 gramos, la superposición no importa. Considere la frase "mis dos perros son marrones". Aquí, la lista de 2 gramos es ["mis dos", "dos perros", "los perros son", "son marrones"], y la lista de 3 gramos es ["mis dos perros", "dos perros son "," los perros son marrones "]. Como mencioné en mi comentario, con la superposición obtienes N-1 2 gramos y N-2 3 gramos para un flujo de N palabras. Debido a que 2 gramos solo pueden ser iguales a otros 2 gramos y de la misma manera para 3 gramos, puede manejar cada uno de estos casos por separado. Cuando se procesan 2 gramos, cada "palabra" será un gramo, etc.