
Hallo habrozhiteli! In den Eingeweiden beliebter sozialer Netzwerke - Twitter, Facebook, LinkedIn und Instagram - sind die reichsten Informationsvorkommen verborgen. In diesem Buch lernen Forscher, Analysten und Entwickler, wie diese eindeutigen Daten mithilfe von Python-Code, einem Jupyter Notebook oder Docker-Containern extrahiert werden. Zunächst lernen Sie die Funktionen der beliebtesten sozialen Netzwerke (Twitter, Facebook, LinkedIn, Instagram), Webseiten, Blogs und Feeds, E-Mails und GitHub kennen. Starten Sie dann die Datenanalyse am Beispiel von Twitter. Lesen Sie dieses Buch an:
- Erfahren Sie mehr über die moderne Landschaft sozialer Netzwerke.
- Erfahren Sie, wie Sie Docker verwenden, um mit den im Buch enthaltenen Codes einfach zu arbeiten.
- Erfahren Sie, wie Sie Code anpassen und an das offene GitHub-Repository senden.
- Erfahren Sie, wie Sie die mit den Funktionen von Python 3 gesammelten Daten analysieren.
- Beherrschen Sie fortgeschrittene Analysetechniken wie TFIDF, Kosinusähnlichkeit, Kollokationsanalyse, Klickerkennung und Mustererkennung.
- Erfahren Sie, wie Sie mit Python und JavaScript wunderschöne Datenvisualisierungen erstellen.
Auszug. 4.3. Eine kurze Einführung in Datenclustertechniken
Nachdem wir eine Vorstellung davon haben, wie wir auf die LinkedIn-API zugreifen können, gehen wir zu einer bestimmten Analyse über und diskutieren das
Clustering im Detail. [Diese Art der Analyse wird häufig auch als
ungefähre Zufalls- ,
Fuzzy-Matching- und / oder
Deduplizierungsmethode bezeichnet.] - Die Methode des maschinellen Lernens ohne Lehrer. wird in jeder Reihe von Datenanalysetools als wesentlich angesehen. Der Clustering-Algorithmus nimmt eine Sammlung von Elementen und unterteilt sie nach einem Kriterium, das zum Vergleichen der Elemente in der Sammlung dient, in kleinere Sammlungen (Cluster).
Clustering ist eine grundlegende Methode zur Datenanalyse, damit Sie sich ein vollständigeres Bild davon machen können. Dieses Kapitel enthält Fußnoten und Notizen, die den zugrunde liegenden mathematischen Apparat beschreiben. Es ist gut, wenn Sie versuchen, diese Details zu verstehen, aber um die Clustering-Methoden erfolgreich zu verwenden, müssen Sie nicht alle Feinheiten verstehen, und natürlich müssen Sie sie nicht beim ersten Mal verstehen. Möglicherweise müssen Sie ein wenig nachdenken, um einige Informationen zu verarbeiten, insbesondere wenn Sie keine mathematische Ausbildung haben.
Wenn Sie beispielsweise in eine andere Stadt ziehen möchten, können Sie versuchen, LinkedIn-Kontakte nach geografischen Regionen zu kombinieren, um die verfügbaren wirtschaftlichen Möglichkeiten besser einschätzen zu können. Wir werden etwas später auf diese Idee zurückkommen, aber im Moment werden wir einige der Nuancen, die mit Clustering verbunden sind, kurz diskutieren.
Bei der Implementierung von Lösungen für die Probleme beim Clustering von Daten aus LinkedIn oder anderen Quellen werden Sie wiederholt auf mindestens zwei Hauptthemen stoßen (eine Diskussion des dritten Themas finden Sie in der Seitenleiste „Die Rolle der Dimensionsreduzierung beim Clustering“ weiter unten).
DatennormalisierungSelbst wenn Sie eine sehr gute API verwenden, werden Daten selten in dem von Ihnen benötigten Format bereitgestellt. Oft ist mehr als eine einfache Konvertierung erforderlich, um die Daten in eine für die Analyse geeignete Form zu bringen. Beispielsweise erlauben LinkedIn-Benutzer bestimmte Freiheiten bei der Beschreibung ihrer Beiträge, sodass es nicht immer möglich ist, ganz normale Beschreibungen zu erhalten. Ein Manager kann den Namen "Chief Technical Director" wählen, ein anderer - der mehrdeutige Name "TRP", und der dritte kann dieselbe Position irgendwie anders beschreiben. Im Folgenden werden wir auf das Problem der Datennormalisierung zurückkommen und eine Vorlage für die Verarbeitung bestimmter Aspekte davon in LinkedIn-Daten implementieren.
AffinitätsdefinitionMit einer Reihe gut normalisierter Elemente möchten Sie möglicherweise die Ähnlichkeit von zwei Elementen bewerten, sei es die Namen von Positionen oder Unternehmen, Beschreibungen beruflicher Interessen, geografische Namen oder andere Felder, deren Werte in einem beliebigen Text dargestellt werden können. Dazu müssen Sie eine Heuristik definieren, die die Ähnlichkeit zweier beliebiger Werte bewertet. In einigen Situationen ist die Definition von Ähnlichkeit ziemlich offensichtlich, in anderen kann sie jedoch mit einigen Schwierigkeiten behaftet sein.
Zum Beispiel wird der Vergleich der Gesamtdienstzeit von zwei Personen durch einfache Additionsoperationen durchgeführt, aber der vollständig automatisierte Vergleich breiterer beruflicher Merkmale wie „Führungsqualitäten“ kann eine ziemliche Herausforderung sein.
Die Rolle der Dimensionsreduktion bei der Clusterbildung
Die Normalisierung von Daten und die Bestimmung der Ähnlichkeit sind zwei Hauptthemen, denen Sie beim Clustering auf abstrakter Ebene begegnen werden. Es gibt jedoch ein drittes Thema - die Reduzierung der Dimensionalität, die relevant wird, sobald der Umfang der Daten nicht mehr trivial ist. Um Elemente in einer Menge unter Verwendung einer Ähnlichkeitsmetrik zu gruppieren, ist es idealerweise wünschenswert, jedes Element mit jedem anderen Element zu vergleichen. In diesem Fall müssen Sie im schlimmsten Fall für eine Menge von n Elementen den Ähnlichkeitsgrad ungefähr n 2 Mal berechnen, um jedes der n Elemente mit n –1 anderen Elementen zu vergleichen.
In der Informatik wird diese Situation als quadratisches Komplexitätsproblem bezeichnet und üblicherweise als O (n 2 ) bezeichnet ; In Gesprächen wird es normalerweise als „quadratisches Wachstumsproblem des großen O“ bezeichnet. O (n 2 ) -Probleme werden für sehr große n- Werte unlösbar, und in den meisten Fällen bedeutet der Begriff unlösbar , dass Sie „zu lange“ warten müssen, bis die Lösung berechnet ist. "Zu lang" - es kann Minuten, Jahre oder Epochen sein, abhängig von der Art der Aufgabe und ihren Einschränkungen.
Eine Überprüfung der Dimensionsreduktionsmethoden würde den Rahmen der aktuellen Diskussion sprengen. Daher stellen wir nur fest, dass bei einer typischen Dimensionsreduktionsmethode eine Funktion verwendet wird, um „ziemlich ähnliche“ Elemente in einer festen Anzahl von Gruppen zu organisieren, sodass die Elemente in jeder Gruppe vollständig als ähnlich betrachtet werden können. Dimensionsreduktion ist oft nicht nur eine Wissenschaft, sondern auch eine Kunst und wird von Organisationen, die sie erfolgreich nutzen, um sich einen Wettbewerbsvorteil zu verschaffen, normalerweise als vertrauliche Information oder Geschäftsgeheimnis angesehen.
Clustering-Methoden sind der Hauptbestandteil des Arsenals an Tools eines jeden Datenanalysespezialisten, da Sie in fast jeder Branche - von militärischen Geheimdiensten bis hin zu Bank- und Landschaftsgestaltung - möglicherweise eine wirklich große Menge nicht standardmäßiger relationaler Daten analysieren müssen und die Anzahl der Stellenangebote von Spezialisten entsprechend zunimmt frühere Jahre sind ein klarer Beweis dafür.
In der Regel erstellt ein Unternehmen eine Datenbank, um Informationen zu sammeln. Möglicherweise enthält jedoch nicht jedes Feld Werte aus einem vordefinierten Satz. Dies kann auf die unvollständig durchdachte Logik der Benutzeroberfläche der Anwendung, die Unfähigkeit, alle akzeptablen Werte vorab zu bestimmen, oder die Notwendigkeit zurückzuführen, Benutzern die Möglichkeit zu geben, beliebigen Text nach Belieben einzugeben. Wie dem auch sei, das Ergebnis ist immer das gleiche: Sie erhalten eine große Menge nicht standardisierter Daten. Selbst wenn in einem bestimmten Feld insgesamt
N verschiedene Zeichenfolgenwerte gespeichert werden können, bedeuten einige von ihnen tatsächlich dasselbe Konzept. Duplikate können aus verschiedenen Gründen auftreten - aufgrund von Rechtschreibfehlern, der Verwendung von Abkürzungen oder Abkürzungen sowie unterschiedlichen Zeichenregistern.
Wie oben erwähnt, ist dies eine klassische Situation, die bei der Analyse von Daten von LinkedIn auftritt: Benutzer können ihre Informationen in Freitextform eingeben, was zwangsläufig zu einer Zunahme von Abweichungen führt. Wenn Sie sich beispielsweise dazu entschließen, Ihr berufliches Netzwerk zu durchsuchen und festzustellen, wo die meisten Ihrer Kontakte funktionieren, müssen Sie häufig verwendete Optionen zum Schreiben von Firmennamen in Betracht ziehen. Selbst die einfachsten Firmennamen können mehrere Optionen haben, auf die Sie mit ziemlicher Sicherheit stoßen werden (z. B. "Google" - eine abgekürzte Form von "Google, Inc."), und Sie müssen alle diese Optionen berücksichtigen, um sie in eine Standardform zu bringen. Bei der Standardisierung von Firmennamen kann ein guter Ausgangspunkt darin bestehen, Abkürzungen in Namen wie LLC und Inc. zu normalisieren.
4.3.1. Normalisierung von Daten zur Analyse
Als notwendige und nützliche Einführung in das Studium von Clustering-Algorithmen betrachten wir einige typische Situationen, die bei der Lösung des Problems der Normalisierung von Daten von LinkedIn auftreten können. In diesem Abschnitt implementieren wir eine Standardvorlage zum Normalisieren von Unternehmens- und Berufsbezeichnungen. Als fortgeschrittenere Übung werden wir auch kurz auf das Problem der Begriffsklärung und Geokodierung von Ortsnamen aus einem LinkedIn-Profil eingehen. (Das heißt, wir werden versuchen, Ortsnamen aus LinkedIn-Profilen wie "Greater Nashville Area" in Koordinaten zu konvertieren, die zugeordnet werden können.)
Das Hauptergebnis der Bemühungen zur Normalisierung von Daten ist die Fähigkeit, wichtige Merkmale zu berücksichtigen und zu analysieren und fortschrittliche Analysemethoden wie Clustering zu verwenden. Bei Daten von LinkedIn werden Funktionen wie Beiträge und geografische Standorte untersucht.
Normalisierung und Unternehmenszählung
Versuchen wir, die Namen von Unternehmen aus Ihrem professionellen Netzwerk zu standardisieren. Wie oben beschrieben, können Sie Daten auf zwei Arten aus LinkedIn extrahieren: programmgesteuert, mithilfe der LinkedIn-API oder mithilfe des Exportmechanismus eines professionellen Netzwerks in Form eines Adressbuchs, das grundlegende Informationen wie Name, Position, Unternehmen und Kontaktinformationen enthält.
Stellen Sie sich vor, wir haben bereits eine CSV-Datei mit Kontakten, die aus LinkedIn exportiert wurden, und jetzt können wir die ausgewählten Entitäten normalisieren und anzeigen, wie in Beispiel 4.4 gezeigt.
Wie in den Kommentaren in den Beispielen beschrieben, müssen Sie die CSV-Datei mit den Kontakten, die Sie aus LinkedIn exportiert haben, gemäß den Anweisungen im Abschnitt „Herunterladen der Kontaktinformationsdatei auf LinkedIn“ umbenennen und in ein bestimmtes Verzeichnis kopieren, in dem der Programmcode sie finden kann.
Beispiel 4.4 Einfache Normalisierung von Abkürzungen in Firmennamen
import os import csv from collections import Counter from operator import itemgetter from prettytable import PrettyTable
Das Folgende sind die Ergebnisse einer einfachen Frequenzanalyse:

Python unterstützt die Möglichkeit, Argumente an Funktionen zu übergeben, indem eine Liste und / oder ein Wörterbuch dereferenziert werden. Dies ist manchmal sehr praktisch, wie in Beispiel 4.4 gezeigt. Der Aufruf von f (* args, ** kw) entspricht beispielsweise dem Aufruf von f (1, 7, x = 23), wobei args als Liste von Argumenten [1,7] und kw als Wörterbuch {'x': 23} definiert ist. Weitere Python-Programmiertipps finden Sie in Anhang B.
Beachten Sie, dass Sie komplexere Situationen schreiben müssen, um komplexere Situationen zu bewältigen, z. B. um verschiedene Namen desselben Unternehmens zu normalisieren, die sich im Laufe der Zeit geändert haben, z. B. O'Reilly Media. In diesem Fall kann der Name dieses Unternehmens als O'Reilly & Associates, O'Reilly Media, O'Reilly, Inc. dargestellt werden. oder einfach nur O'Reilly [Wenn Ihnen große Schwierigkeiten bevorstehen, stellen Sie sich vor, welche Art von Arbeit die Dun & Bradstreet-Spezialisten zu leisten hatten (http://bit.ly/1a1m4Om), die sich auf die Katalogisierung von Informationen spezialisiert haben und vor der Aufgabe stehen, und zu kompilieren begleitet von einem Register mit Firmennamen in verschiedenen Sprachen der Welt
. ].
Über Autoren
Matthew Russell (@ptwobrussell) ist ein führender Spezialist aus Middle Tennessee. Bei der Arbeit versucht er, eine Führungskraft zu sein, hilft anderen, Führungskraft zu werden, und bildet hochwirksame Teams, um komplexe Probleme zu lösen. Außerhalb der Arbeit reflektiert er die Realität, praktiziert ausgeprägten Individualismus und bereitet sich auf die Zombie-Apokalypse und den Aufstand der Maschinen vor.
Mikhail Klassen, @MikhailKlassen, ist ein leitender Spezialist für Datenverarbeitung und -analyse bei Paladin AI, einem Start-up-Unternehmen, das adaptive Lerntechnologien entwickelt. Er hat einen Doktortitel in Astrophysik von der McMaster University und einen Bachelor in angewandter Physik von der Columbia University. Michael mag Probleme mit künstlicher Intelligenz und den Einsatz von Datenanalysewerkzeugen für gute Zwecke. Wenn es nicht funktioniert, liest es normalerweise oder reist.
»Weitere Informationen zum Buch finden Sie auf
der Website des Herausgebers»
Inhalt»
Auszug25% Rabatt auf Gutschein für Händler -
Data MiningNach Bezahlung der Papierversion des Buches wird ein elektronisches Buch per E-Mail verschickt.