- 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
- En la lista de los 50 libros principales, los más mencionados fueron los siguientes
- Structure and Interpretation of Computer Programs: Abelson and Sussman, 376 veces
- Gödel, Escher, Bach: Douglas Hofstadter, 365 veces
- How to Win Friends and Influence People: Dale Carnegie, 292 veces
- The C Programming Language: Brian Kernighan, Dennis Ritchie, 284 veces
- Dune: Frank Herbert, 261 veces
- Entre los primeros puestos había no solo libros técnicos, sino también novelas y libros sobre filosofía, psicología, historia y startups
- Thinking, Fast and Slow: 244 veces
- The Pragmatic Programmer: 203 veces
- Designing Data-Intensive Applications: 153 veces
- Clean Code: 106 veces
- The Elements of Computing Systems: 104 veces
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
titlevací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
matchincluye parte de los comentarios donde se identificó un libro
- La columna
- 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
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
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
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
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í
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
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
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.
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.
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.
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í?
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.
¿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?
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.
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.
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.
La realidad es que con tecnología aburrida es difícil conseguir atención y participación.
Aprender a aplicar herramientas nuevas a tipos de tareas antiguas también es útil y revelador.