2 puntos por GN⁺ 2023-10-05 | 1 comentarios | Compartir por WhatsApp
  • Reúne comentarios dispersos en hilos de recomendaciones de libros de HN y usa la Chat Completions API para extraer título, autor y URL de los libros recomendados con más frecuencia
  • Tomó como objetivo unas 200 historias de HN de 2023 cuyo título contenía “book” como palabra independiente y que no enlazaban a páginas externas; procesar 57k comentarios costó alrededor de $40 con gpt-3.5-turbo
  • En los primeros lugares del conteo aparecen libros mencionados repetidamente durante años en HN, como Structure and Interpretation of Computer Programs con 376 menciones, Gödel, Escher, Bach con 365 y How to Win Friends and Influence People con 292
  • En el procesamiento real, la calidad se vio afectada por JSON incorrecto, comentarios que solo mencionaban al autor, libros distintos con el mismo título, lectura errónea del texto de enlaces y la no determinación que persistía incluso con temperature 0
  • Publica la salida bruta de GPT y el CSV de entrada, y busca reducir omisiones por diferencias de nombres mediante normalización como pasar títulos a minúsculas, quitar “the” al inicio y eliminar subtítulos

Cómo extraer información de libros desde comentarios de HN

  • El trabajo comenzó al leer hilos de recomendaciones de libros en HN, con el objetivo de ver qué libros eran los más recomendados o mencionados
  • En 2023, HN tenía casi 200 historias cuyo título incluía “book” como palabra separada y que no enlazaban a otra página
  • De los datos obtenidos desde la API de HN, se eligió el subconjunto que parecía corresponder a hilos de recomendaciones de libros y se procesó el texto de los comentarios
  • De cada comentario, la Chat Completions API extraía la siguiente información
    • título del libro
    • autor
    • URL

Los libros más mencionados

Errores de agregación y limpieza de datos

  • La lista inicial tenía algunos errores de asociación de autores
    • El autor de Dune no era Brian Herbert sino Frank Herbert
    • Meditations no era de Descartes sino de Marcus Aurelius
    • Calculus quedó asociado a un libro de Michael Spivak, pero ese conteo también incluía 14 menciones de Calculus de Apostol
  • La consulta SQL tuvo que cambiarse para devolver el autor más frecuente de cada título, en lugar de min(author)
  • En una actualización del 12 de octubre de 2023, se corrigió la lista de los 50 principales
    • Javascript y Calculus se consideraron errores porque mezclaban varios libros con el mismo nombre
    • Javascript: The Good Parts pasó a llamarse “javascript” en el código de procesamiento de datos, pero también había otros libros con ese mismo título
    • Tras eliminar duplicados, esos elementos salieron del top 50

Limitaciones reveladas al usar la API de ChatGPT

  • Los casos en que no se devolvía JSON válido solían darse cuando el comentario de HN era corto, como “thanks”, o tenía forma de pregunta
    • A veces en la respuesta se mezclaban frases como “I apologize for the confusion…” o “You’re welcome!”
  • El prompt estaba diseñado para descartar respuestas con el título vacío
    • Era una medida para reducir el problema de que ChatGPT incluyera como mención de libro comentarios donde solo se mencionaba al autor sin un título específico
  • Procesar 57k comentarios costó unos $40 con la API de gpt-3.5-turbo
  • Incluso con temperature configurada en 0, los resultados de GPT cambiaban entre llamadas
    • Aunque ya se conocían casos de no determinación en GPT-4, gpt-3.5-turbo también mostró una variabilidad mayor que los modelos GPT-3 anteriores
  • Los enlaces podían identificarse en el texto, pero había que quitar las etiquetas HTML y dejar solo la URL
    • De lo contrario, GPT tomaba texto recortado del enlace en vez de la URL real

Formato de salida JSON y condiciones del prompt

  • Un ejemplo de JSON generado por ChatGPT para un comentario de HN tenía el formato correcto, pero todos los valores salvo el enlace eran incorrectos
  • La salida tiene formato de arreglo con los campos match, title, author, link
  • El prompt incluía las siguientes condiciones
    • identificar títulos de libros y autores en el documento
    • mostrar la palabra con la que se hizo la coincidencia del título
    • expandir títulos abreviados
    • si solo se menciona al autor y no el libro, dejar title vacío
    • si solo se pide una recomendación sin mencionar un libro, devolver un arreglo vacío
    • no incluir subtítulos

Datos publicados y normalización de títulos

  • raw data produced by GPT son los datos brutos de salida de GPT ordenados por título
    • La columna match incluye parte de los comentarios donde se identificó un libro
  • A los títulos de libros se les aplicó normalización
    • convertir a minúsculas
    • eliminar “the” al inicio del título
    • eliminar subtítulos
  • Esta normalización busca reducir los casos en que faltan elementos en la consulta de libros principales por diferencias de nombres generadas por GPT
  • Los datos de entrada se ofrecen en zipped csv format, y al descomprimirlos se obtiene un archivo de 24 MB
  • Las URL de Amazon de la tabla incluyen un Amazon affiliate link con fines de aprendizaje

1 comentarios

 
GN⁺ 2023-10-05
Opiniones de Hacker News
  • A ChatGPT se le escaparon algunos, y probablemente sean más: https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
    También hay más en los comentarios: https://news.ycombinator.com/item?id=30651273
    Este sitio web parece una forma astuta de generar muchos clics con enlaces de afiliado de Amazon

    • ¿Todavía hay gente ganando dinero con el programa de afiliados de Amazon? Pensé que eso ya se había acabado hace como 10 años
  • En HN conocí Hacker Recommended Books [0a] a través de [0b], empecé a leer los libros que aparecen ahí, probé varios y leí unos 20. La experiencia fue muy buena, aprendí muchas cosas nuevas y algunos libros me ampliaron la forma de pensar
    Si te gustan los libros, recomiendo mucho buscar simplemente books en HN y filtrar por la etiqueta "Ask HN" [1], o solo por "books". Los libros en inglés ahora los elijo casi siempre así, y lo mismo con los que no son técnicos. Llevo más de 2 años haciéndolo y de verdad me encantan las recomendaciones de libros de HN
    Los hilos de HN sobre libros acumulan lecturas de alta calidad de muchos hackers a lo largo de los años, así que son casi una mina de oro. También está Hacker News Books [2], y vale la pena ver la sección Top Books of All Time [3]
    [0a]: https://hacker-recommended-books.vercel.app/category/0/all-t...
    [0b]: https://news.ycombinator.com/item?id=28595967
    [1]: https://hn.algolia.com/?q=Ask+HN+books
    [2]:https://hackernewsbooks.com
    [3]: https://hackernewsbooks.com/top-books-on-hacker-news

    • Hoy decidí empezar a leer un libro recomendado por HN. En el enlace [0a] elegí los últimos 6 meses, y había 58 páginas de recomendaciones, con 15 libros por página
      Así que elegí una página con un dado de 15 caras y luego volví a tirar para elegir un libro de esa página. El libro que me tocará leer es The Very Hungry Caterpillar
    • https://news.ycombinator.com/item?id=28595967 ("Show HN: 40k HN comments mentioning books, extracted using deep learning") es excelente, y todavía lo uso con regularidad
    • “Hacker Recommended Books” me pareció tan útil que intenté guardarlo como marcador en mi cuenta de pinboard, y me apareció “guardado hace 2 años
      No es una crítica al sitio; más bien es un lamento sobre mí mismo, que guardo con buena intención la existencia de servicios así y luego los olvido
  • Cómo hacer que el spam barato de enlaces de afiliado de Amazon se aleje aún más de la calidad: generándolo con “IA”

  • Me sorprende que Code, de Charles Petzold, no haya entrado en el top 50. Es uno de los libros más accesibles para aprender cómo funcionan realmente las computadoras
    He visto muchas menciones de Code en HN, aunque mi muestra puede estar sesgada hacia los enlaces con comentarios que leí

    • Es un libro fantástico para la gente que tiene problemas para dormir. No sabía que se pudiera convertir un tema tan interesante como los fundamentos de cómo funciona una computadora en algo tan sin vida y aburrido, ni que hicieran falta tantas palabras para hacerlo
      Lo estoy leyendo ahora, pero se me apaga la luz antes de pasar de 3 o 4 páginas, así que me está tomando muchísimo tiempo
    • Ese libro tiene algo de “dibuje el resto del caballo”. Es un gran libro, pero en la segunda mitad el autor asume que no solo entendiste la primera mitad, sino que además memorizaste los componentes, de modo que el resto de la explicación tiene que caber en la memoria de trabajo para tener sentido
      La segunda mitad, sinceramente, se me hizo difícil. Porque, aunque “lo entendí”, no memoricé bien la primera mitad
      Aun así, me gusta el enfoque de enseñar como si se lo explicaras a un niño de 5 años. Hoy en día la gente tiende a pasar por alto lo básico, sin verlo como algo inherentemente lo bastante complejo
    • Me encanta ese libro. Es el libro que recomiendo a personas no técnicas que quieren entender la teoría de cómo funciona todo el conjunto
    • Según mi sitio HNLikes.com, este libro es el segundo enlace de Amazon que más aparece en comentarios de HN
    • Está en la cima de la lista Hacker News All Time Top Books a la que hizo referencia rito más arriba
  • Sorprende que los libros de Knuth no estén en el top 5, y también sorprende mucho que esté Meditations de Descartes. Es un libro que ya nadie lee ni siquiera en Francia, así que probablemente sea un resultado mezclado con posts de HN relacionados con la meditación.
    Además, Dune no lo escribió Franck Herbert, sino Frank Herbert. Cuesta confiar en este artículo y, desde que los LLM se popularizaron, en la práctica se volvió difícil confiar en casi cualquier cosa que se sube a internet.

    • Este artículo agregó los datos originales proporcionados por GPT, lo que permite verificar la integridad de los datos. Desde el punto de vista metodológico, por eso es confiable.
      Sin importar el medio o la publicación, siempre había que verificar la integridad de los datos y los métodos. La responsabilidad del autor y del lector no cambió antes o después de los LLM. Si antes de los LLM creías todo por sentado, no deberías haberlo hecho; y si después de los LLM no puedes confiar en autores confiables, eso también es un problema.
    • Meditations on First Philosophy, de Descartes, es uno de los libros más importantes de la historia del pensamiento occidental. Decir “ya nadie lo lee ni siquiera en Francia” es parecido a decir que The Origin of Species es irrelevante porque no viste a nadie leyéndolo en el metro de Londres.
    • La obra de Knuth es como The Power Broker en el campo del urbanismo: un canon del sector, pero cercano a esos libros que poca gente realmente leyó.
      Tengo varios tomos, pero me los regalaron y nunca los he leído. Por eso no me sorprende mucho no verlo en el top 5.
    • El nombre del autor de Meditations está mal. El enlace lleva al libro correcto, pero ese es Meditations de Marcus Aurelius.
    • Parece que está mal atribuido a Descartes. El enlace va a Marcus Aurelius.
  • No veo por qué era necesario ChatGPT. Con Algolia y análisis de datos habría bastado; ¿qué había de nuevo y difícil aquí?

    • Sería increíble analizar, con base en sus comentarios, qué inclinaciones tienen los usuarios que recomendaron cada libro. Por ejemplo, mostrar porcentajes como “el 80% de las personas que recomendaron a Ayn Rand tienden a ser de derecha”.
  • La razón por la que las recomendaciones de libros de HN son útiles es más bien la contraria. En los comentarios de más abajo que no recibieron tantos votos hay recomendaciones de libros de los que nunca había oído hablar, y ahí está el valor. Esta lista de opciones populares es en gran medida predecible.
    Si te metes en posts de “recomiéndenme libros”, cerca del final puedes encontrar recomendaciones realmente excelentes.

    • Con la música pasa lo mismo. Ve a un lugar donde la gente hable de las bandas que te gustan y baja hasta que veas nombres que nunca hayas escuchado.
  • ¿A alguien más le parece una señal de alerta que alguien mencione How to Win Friends and Influence People como uno de sus libros favoritos o de los que más lo influyeron?

    • No lo creo. He visto mucho esa reacción en personas que en realidad no leyeron el libro. La gente piensa que trata sobre técnicas de manipulación, pero en realidad es una guía muy básica para hacer y conservar amigos.
      Si ya tienes un grupo de amigos y no te preocupa mantenerlo, probablemente ya sabes casi todo lo que aparece en el libro. Como alguien que creció siempre sintiéndose solitario, sus consejos me resultaron realmente útiles. Era como un resumen de habilidades sociales que debería haber aprendido a los 10 años, pero no aprendí.
      La única “señal de alerta” que veo en alguien que menciona este libro es que, como yo, probablemente en algún momento fue muy torpe socialmente. Quizá todavía lo sea, pero al menos está intentando mejorar.
    • Tiene un gran impacto para personas con ansiedad social, en el espectro autista, o una mezcla de ambas. Este libro me enseñó a conversar con la gente y me ayudó a pasar de una fuerte ansiedad social y aislamiento a una vida en la que podía hablar con otros seres humanos y conocerlos.
      La mayoría de las personas a tu alrededor no necesitará este libro y quizá hasta les parezca algo tonto. Pero para mí fue un punto de inflexión, y sospecho que en HN hay muchas personas con experiencias similares.
    • No. Es una lectura sólida sobre el comportamiento humano.
  • El Meditations de la lista, si uno mira los datos originales al final de la página, parece referirse a la obra de Marcus Aurelius, no a “Meditations on First Philosophy” de Descartes.
    Es solo una verificación parcial, no una revisión exhaustiva. En los datos originales también hay muchas menciones a Descartes, pero en general son sobre otras obras. Me parece un error interesante.

  • Una pregunta cada vez mejor para hacerse hoy en día es esta: ¿cómo podría hacer esto sin usar directamente un LLM, e incluso sin aprendizaje automático? Luego, como segundo paso, uno puede preguntar cómo el apoyo potencial de herramientas generativas o de aprendizaje automático podría mejorar esa solución.

    • Hice una versión de esto con tecnología aburrida (Postgres, Django, Python). Contaba cuántas veces aparecían en comentarios de HN no solo enlaces a libros, sino también videos de YouTube, artículos de arXiv, etc., y también hacía varios cálculos sobre la persona que publicaba el enlace y las respuestas a ese enlace.
      La realidad es que con tecnología aburrida es difícil conseguir atención y participación.
    • Creo que muchas de las tareas básicas que se hacen con LLM también son posibles sin aprendizaje automático. Aun así, lo interesante es aprender a hacer cosas divertidas con LLM, y que el techo es mucho más alto que con los métodos tradicionales.
      Aprender a aplicar herramientas nuevas a tipos de tareas antiguas también es útil y revelador.