- Verstreute Kommentare aus HN-Threads zu Buchempfehlungen wurden gesammelt, um mit der Chat Completions API Titel, Autoren und URLs der häufig empfohlenen Bücher zu extrahieren
- Stand 2023 gab es auf HN etwa 200 Stories, deren Titel „book“ als eigenes Wort enthielten und die nicht auf externe Links verwiesen; verarbeitet wurden Beiträge, die wie Buchempfehlungen wirkten. Die Verarbeitung von 57k Kommentaren kostete mit gpt-3.5-turbo etwa 40 $
- An der Spitze der Auswertung standen seit Langem auf HN wiederholt erwähnte Bücher wie Structure and Interpretation of Computer Programs mit 376 Nennungen, Gödel, Escher, Bach mit 365 Nennungen und How to Win Friends and Influence People mit 292 Nennungen
- In der praktischen Verarbeitung beeinträchtigten ungültiges JSON, Kommentare mit nur Autorennennungen, unterschiedliche Bücher mit gleichem Titel, falsch erkannter Linktext und selbst bei temperature 0 auftretende Nichtdeterministik die Qualität
- Die rohen GPT-Ausgaben und die Eingabe-CSV wurden veröffentlicht; durch Normalisierung wie Kleinschreibung von Titeln, Entfernen eines vorangestellten „the“ und Entfernen von Untertiteln sollten Auslassungen durch abweichende Namensformen reduziert werden
Wie Buchinformationen aus HN-Kommentaren extrahiert wurden
- Die Arbeit begann mit dem Ziel, in Buchempfehlungs-Threads auf HN herauszufinden, welche Bücher am häufigsten empfohlen oder erwähnt werden
- Stand 2023 gab es auf HN fast 200 Stories, deren Titel „book“ als eigenes Wort enthielt und die nicht auf eine andere Seite verlinkten
- Aus den über die HN API bezogenen Daten wurde eine Teilmenge ausgewählt, die wie Threads zu Buchempfehlungen wirkte, und deren Kommentartexte wurden verarbeitet
- Aus jedem Kommentar wurden per Chat Completions API die folgenden Informationen extrahiert
- Buchtitel
- Autor
- URL
Die am häufigsten erwähnten Bücher
- Die in der Top-50-Liste am häufigsten erwähnten Bücher waren:
- Structure and Interpretation of Computer Programs: Abelson and Sussman, 376 Nennungen
- Gödel, Escher, Bach: Douglas Hofstadter, 365 Nennungen
- How to Win Friends and Influence People: Dale Carnegie, 292 Nennungen
- The C Programming Language: Brian Kernighan, Dennis Ritchie, 284 Nennungen
- Dune: Frank Herbert, 261 Nennungen
- Unter den Spitzenplätzen fanden sich neben technischen Büchern auch Romane sowie Bücher zu Philosophie, Psychologie, Geschichte und Gründungsthemen
- Thinking, Fast and Slow: 244 Nennungen
- The Pragmatic Programmer: 203 Nennungen
- Designing Data-Intensive Applications: 153 Nennungen
- Clean Code: 106 Nennungen
- The Elements of Computing Systems: 104 Nennungen
Auswertungsfehler und Datenbereinigung
- In der ersten Liste gab es einige Fehler beim Autor-Matching
- Der Autor von Dune ist nicht Brian Herbert, sondern Frank Herbert
- Meditations stammt nicht von Descartes, sondern von Marcus Aurelius
- Calculus wurde als Buch von Michael Spivak erfasst, in der betreffenden Auswertung waren jedoch auch 14 Nennungen von Apostols Calculus enthalten
- Die SQL-Abfrage musste so geändert werden, dass sie nicht
min(author)für jeden Titel zurückgibt, sondern den häufigsten Autor - Im Update vom 12. Oktober 2023 wurde die Top-50-Liste korrigiert
- Javascript und Calculus wurden als Fehler eingestuft, weil mehrere Bücher mit demselben Namen vermischt worden waren
- Javascript: The Good Parts wurde im Datenverarbeitungscode in „javascript“ umbenannt, es gab aber auch andere Bücher mit demselben Titel
- Nach der Deduplizierung fielen diese Einträge aus den Top 50 heraus
Einschränkungen bei der Nutzung der ChatGPT API
- Fälle, in denen kein gültiges JSON zurückgegeben wurde, traten häufig auf, wenn HN-Kommentare sehr kurz waren, etwa „thanks“, oder als Frage formuliert waren
- In den Antworten tauchten mitunter auch Sätze wie „I apologize for the confusion…“ oder „You’re welcome!“ auf
- Der Prompt war so gestaltet, dass Antworten mit leerem Titel verworfen werden konnten
- Das sollte Probleme reduzieren, bei denen ChatGPT bereits reine Autorennennungen ohne konkreten Buchtitel als Bucherwähnung einbezog
- Die Verarbeitung von 57k Kommentaren kostete mit der gpt-3.5-turbo API etwa 40 $
- Auch bei einer temperature-Einstellung von 0 unterschieden sich die GPT-Ergebnisse von Aufruf zu Aufruf
- Fälle von Nichtdeterminismus bei GPT-4 sind bekannt, aber auch gpt-3.5-turbo zeigte stärkere Schwankungen als frühere GPT-3-Modelle
- Links ließen sich im Text identifizieren, allerdings mussten HTML-Tags entfernt werden, sodass nur die URL übrig blieb
- Andernfalls griff GPT statt der tatsächlichen URL den abgeschnittenen Linktext auf
JSON-Ausgabeformat und Prompt-Bedingungen
- Ein von ChatGPT für einen HN-Kommentar erzeugtes JSON-Beispiel hatte zwar das richtige Format, aber bis auf den Link waren alle Werte falsch
- Die Ausgabe ist ein Array-Format mit den Feldern
match,title,authorundlink - Der Prompt enthielt folgende Bedingungen
- Buchtitel und Autoren im Dokument identifizieren
- die Wörter anzeigen, die für den Titel abgeglichen wurden
- abgekürzte Titel ausschreiben
- wenn nur ein Autor erwähnt wird und kein Buch vorhanden ist,
titleleer lassen - wenn lediglich nach Empfehlungen gefragt wird, ohne ein Buch zu erwähnen, ein leeres Array zurückgeben
- Untertitel nicht einbeziehen
Öffentliche Daten und Titel-Normalisierung
- Die raw data produced by GPT sind nach Titel sortierte Rohdaten der GPT-Ausgabe
- Die Spalte
matchenthält einen Teil des Kommentars, in dem das Buch identifiziert wurde
- Die Spalte
- Auf Buchtitel wurde eine Normalisierung angewendet
- Kleinschreibung
- Entfernen eines vorangestellten „the“ im Titel
- Entfernen von Untertiteln
- Diese Normalisierung sollte verhindern, dass Einträge wegen von GPT erzeugter Namensabweichungen in der Abfrage der Top-Bücher fehlen
- Die Eingabedaten werden im zipped csv format bereitgestellt und ergeben nach dem Entpacken eine Datei von 24 MB
- Den Amazon-URLs in der Tabelle wurde ein Amazon affiliate link zu Lernzwecken hinzugefügt
1 Kommentare
Meinungen auf Hacker News
ChatGPT hat ein paar ausgelassen, vermutlich sogar noch mehr: https://hn.algolia.com/?q=A+non-standard+book+list+for+softw...
In den Kommentaren gibt es noch weitere: https://news.ycombinator.com/item?id=30651273
Diese Website wirkt wie eine clevere Methode, mit Amazon-Affiliate-Links viele Klicks zu erzeugen
Über HN bin ich durch [0b] auf Hacker Recommended Books [0a] gestoßen, habe angefangen, die dort genannten Bücher zu lesen, mehrere ausprobiert und etwa 20 gelesen. Die Erfahrung war sehr gut, ich habe viel Neues gelernt, und einige Bücher haben meinen Horizont erweitert
Wenn man Bücher mag, kann ich sehr empfehlen, auf HN einfach nach books zu suchen und nach dem „Ask HN“-Tag [1] oder einfach nach „books“ zu filtern. Englische Bücher wähle ich inzwischen fast ausschließlich so aus, auch nicht-technische. Ich mache das seit über zwei Jahren und mag die Buchempfehlungen auf HN wirklich sehr
In buchbezogenen HN-Threads haben sich über die Jahre hochwertige Leseempfehlungen vieler Hacker angesammelt; das ist fast eine Goldgrube. Es gibt auch Hacker News Books [2], und die Sektion Top Books of All Time [3] ist ebenfalls einen Blick wert
[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
Also habe ich mit einem 15-seitigen Würfel eine Seite ausgewählt und dann noch einmal gewürfelt, um das Buch auf dieser Seite zu bestimmen. Das Buch, das ich lesen werde, ist The Very Hungry Caterpillar
Das ist keine Kritik an der Site, sondern eher ein Seufzer über mich selbst: Ich speichere solche nützlichen Dienste in bester Absicht und vergesse sie dann trotzdem
Wie man billigen Amazon-Affiliate-Link-Spam noch weiter von Qualität entfernt: Man lässt ihn von „AI“ erzeugen
Ich bin überrascht, dass Charles Petzolds Code es nicht in die Top 50 geschafft hat. Es ist eines der zugänglichsten Bücher, um zu lernen, wie Computer tatsächlich funktionieren
Ich habe Code auf HN oft erwähnt gesehen, aber vielleicht ist meine Stichprobe durch die Links verzerrt, unter denen ich Kommentare gelesen habe
Ich lese es gerade, aber bevor ich mehr als 3–4 Seiten schaffe, geht bei mir das Licht aus, deshalb dauert es ewig
Die zweite Hälfte war ehrlich gesagt anstrengend. Selbst wenn ich „es verstanden habe“, hatte ich die erste Hälfte nicht wirklich auswendig gelernt
Trotzdem gefällt mir der Ansatz, es so zu erklären, als würde man es einem Fünfjährigen beibringen. Heutzutage neigen Leute dazu, Grundlagen nicht als von Natur aus ausreichend komplex zu sehen und sie nur oberflächlich abzuhaken
Dass Knuths Bücher nicht unter den Top 5 sind, ist schon überraschend, und dass Descartes’ Meditations dabei ist, ist sehr überraschend. Selbst in Frankreich liest das heute niemand mehr; vermutlich ist das ein Ergebnis, das mit HN-Beiträgen zum Thema Meditation vermischt wurde.
Und Dune wurde nicht von Franck Herbert geschrieben, sondern von Frank Herbert. Diesem Beitrag fällt es schwer zu glauben, und seit LLMs populär geworden sind, ist im Grunde kaum noch etwas im Internet vertrauenswürdig.
Unabhängig vom Medium und von der jeweiligen Publikation musste man die Integrität von Daten und Methode schon immer überprüfen. Die Verantwortung von Autor und Leser hat sich durch LLMs nicht geändert. Wenn man vor LLMs einfach alles geglaubt hat, hätte man das nicht tun sollen; und wenn man nach LLMs vertrauenswürdigen Autoren nicht mehr glaubt, ist auch das ein Problem.
Ich besitze ein paar Bände, habe sie aber geschenkt bekommen und nie gelesen. Daher überrascht es mich nicht besonders, sie nicht in den Top 5 zu sehen.
Ich verstehe nicht, wozu ChatGPT nötig war. Algolia und Datenanalyse hätten doch gereicht; was war hier die neue und schwierige Aufgabe?
Der Nutzen von HN-Buchempfehlungen liegt eher im Gegenteil. In den Kommentaren weiter unten, die keine Empfehlungspunkte bekommen haben, finden sich Buchempfehlungen, von denen ich noch nie gehört habe, und genau das ist wertvoll. Diese Liste populärer Optionen ist größtenteils vorhersehbar.
Wenn man sich in Beiträge vom Typ „Bitte empfehlt mir Bücher“ vertieft, findet man nahe am Ende wirklich hervorragende Empfehlungen.
Empfindet sonst noch jemand es als Warnsignal, wenn jemand How to Win Friends and Influence People als eines seiner Lieblingsbücher oder als eines der Bücher nennt, die ihn am stärksten geprägt haben?
Wenn man bereits einen Freundeskreis hat und sich keine Sorgen macht, ihn aufrechtzuerhalten, kennt man vermutlich fast alles, was in dem Buch steht. Für jemanden, der immer als Einzelgänger aufgewachsen ist, waren die Ratschläge in diesem Buch wirklich nützlich. Es war wie eine Zusammenfassung von sozialen Fähigkeiten, die ich mit 10 hätte lernen sollen, aber nicht gelernt habe.
Das einzige „Warnsignal“, das ich bei jemandem sehe, der dieses Buch erwähnt, ist, dass er wahrscheinlich – wie ich – irgendwann einmal sozial sehr unbeholfen war. Vielleicht ist er es noch, aber immerhin versucht er, sich zu verbessern.
Die meisten Menschen in meinem Umfeld brauchen dieses Buch wahrscheinlich nicht, und vielleicht wirkt es auf sie ein bisschen albern. Für mich war es aber ein Wendepunkt, und ich vermute, dass es auf HN viele mit ähnlichen Erfahrungen gibt.
Die Meditations in der Liste scheinen, wenn man sich die Rohdaten unten auf der Seite ansieht, nicht auf Descartes’ „Meditations on First Philosophy“ zu verweisen, sondern auf das Werk von Marcus Aurelius.
Das ist nur eine Teilprüfung, keine vollständige Untersuchung. In den Rohdaten gibt es zwar auch viele Erwähnungen von Descartes, aber meistens beziehen sie sich auf andere Werke. Ich halte das für einen interessanten Fehler.
Eine immer bessere Frage, die man sich heutzutage stellen kann, ist: Wie ließe sich das ohne direkten Einsatz von LLMs, noch weitergehend sogar ohne Machine Learning, machen? Danach kann man in einem zweiten Schritt fragen, wie potenzielle Unterstützung durch generative Tools oder Machine Learning diese Lösung verbessern könnte.
Die Realität ist: Mit langweiliger Technik ist es schwer, Aufmerksamkeit und Engagement zu bekommen.
Zu lernen, wie man neue Werkzeuge auf alte Aufgabenarten anwendet, ist ebenfalls nützlich und erhellend.