Le livre "Data mining. Récupération d'informations sur Facebook, Twitter, LinkedIn, Instagram, GitHub »

image Salut, habrozhiteli! Dans les entrailles des réseaux sociaux populaires - Twitter, Facebook, LinkedIn et Instagram - les dépôts d'informations les plus riches sont cachés. À partir de ce livre, les chercheurs, analystes et développeurs apprendront comment extraire ces données uniques à l'aide de code Python, d'un bloc-notes Jupyter ou de conteneurs Docker. Tout d'abord, vous vous familiariserez avec les fonctionnalités des réseaux sociaux les plus populaires (Twitter, Facebook, LinkedIn, Instagram), les pages Web, les blogs et les flux, les e-mails et GitHub. Commencez ensuite l'analyse des données en utilisant l'exemple de Twitter. Lisez ce livre à:

  • Découvrez le paysage moderne des réseaux sociaux;
  • Apprenez à utiliser Docker pour fonctionner facilement avec les codes fournis dans le livre;
  • Découvrez comment adapter et livrer du code au référentiel ouvert GitHub;
  • Apprenez à analyser les données collectées à l'aide des capacités de Python 3;
  • Maîtriser les techniques d'analyse avancées telles que TFIDF, similitude cosinus, analyse de collocation, détection de clic et reconnaissance de formes;
  • Apprenez à créer de superbes visualisations de données à l'aide de Python et JavaScript.

Extrait. 4.3. Une brève introduction aux techniques de clustering de données


Maintenant que nous avons une idée de la façon d'accéder à l'API LinkedIn, nous allons passer à une analyse spécifique et discuter en détail du clustering [Ce type d'analyse est aussi souvent appelé la méthode de la coïncidence approximative , de la correspondance floue et / ou de la déduplication - ndlr ] - la méthode d'apprentissage automatique sans professeur, considéré comme essentiel dans tout ensemble d'outils d'analyse de données. L'algorithme de clustering prend une collection d'éléments et les divise en plus petites collections (clusters) selon un critère conçu pour comparer les éléments de la collection.

Le clustering est une méthode fondamentale d'analyse des données, afin que vous puissiez en obtenir une image plus complète, ce chapitre comprend des notes de bas de page et des notes décrivant l'appareil mathématique sous-jacent. C'est bien si vous essayez de comprendre ces détails, mais pour utiliser avec succès les méthodes de clustering, vous n'avez pas besoin de comprendre toutes les subtilités et, bien sûr, vous n'êtes pas obligé de les comprendre la première fois. Vous devrez peut-être réfléchir un peu pour digérer certaines informations, surtout si vous n'avez pas de formation mathématique.

Par exemple, si vous envisagez de déménager dans une autre ville, vous pouvez essayer de combiner les contacts LinkedIn par région géographique afin de mieux évaluer les opportunités économiques disponibles. Nous reviendrons sur cette idée un peu plus tard, mais pour l'instant nous allons brièvement discuter de certaines des nuances associées au clustering.

Lors de la mise en œuvre de solutions aux problèmes de clustering des données de LinkedIn ou d'autres sources, vous rencontrerez à plusieurs reprises au moins deux sujets principaux (une discussion du troisième est donnée dans l'encadré «Le rôle de la réduction de la dimensionnalité dans le clustering» ci-dessous).

Normalisation des données
Même lorsque vous utilisez une très bonne API, les données sont rarement fournies dans le format dont vous avez besoin - il faut souvent plus qu'une simple conversion pour mettre les données sous une forme adaptée à l'analyse. Par exemple, les utilisateurs de LinkedIn accordent certaines libertés lors de la description de leurs publications, il n'est donc pas toujours possible d'obtenir des descriptions parfaitement normales. Un gestionnaire peut choisir le nom de «directeur technique en chef», un autre - le nom le plus ambigu «TRP», et le troisième peut décrire la même position différemment. Ci-dessous, nous reviendrons sur le problème de la normalisation des données et implémenterons un modèle de traitement de certains aspects de celles-ci dans les données LinkedIn.

Définition d'affinité
Ayant un ensemble d'éléments bien normalisés, vous souhaiterez peut-être évaluer la similitude de deux d'entre eux, qu'il s'agisse des noms de postes ou d'entreprises, des descriptions d'intérêts professionnels, des noms géographiques ou de tout autre domaine dont les valeurs peuvent être représentées dans un texte arbitraire. Pour ce faire, vous devez définir une heuristique qui évalue la similitude de deux valeurs quelconques. Dans certaines situations, la définition de la similitude est assez évidente, mais dans d'autres, elle peut être lourde de difficultés.

Par exemple, la comparaison de la durée totale de service de deux personnes se fait par de simples opérations d'addition, mais la comparaison de caractéristiques professionnelles plus larges, telles que les «capacités de leadership», de manière entièrement automatisée peut être un véritable défi.

Le rôle de la réduction de la dimensionnalité dans le clustering


La normalisation des données et la détermination de la similitude sont deux sujets principaux que vous rencontrerez dans le clustering à un niveau abstrait. Mais il y a un troisième sujet - la réduction de la dimensionnalité, qui devient pertinente dès que l'échelle des données cesse d'être triviale. Pour regrouper des éléments dans un ensemble à l'aide d'une métrique de similitude, il est idéalement souhaitable de comparer chaque élément avec tous les autres éléments. Dans ce cas, dans le pire des cas, pour un ensemble de n éléments, vous devrez calculer le degré de similitude environ n 2 fois pour comparer chacun des n éléments avec n –1 autres éléments.

En informatique, cette situation est appelée le problème de complexité quadratique et est généralement notée O (n 2 ) ; dans les conversations, il est généralement appelé le «problème de croissance quadratique du grand O». Les problèmes O (n 2 ) deviennent insolubles pour de très grandes valeurs n , et dans la plupart des cas, le terme insoluble signifie que vous devez attendre «trop longtemps» pour que la solution soit calculée. «Trop long» - cela peut prendre des minutes, des années ou des époques, selon la nature de la tâche et ses limites.

Un examen des méthodes de réduction de la dimensionnalité dépasse le cadre de la discussion actuelle, nous notons donc qu'une méthode typique de réduction de la dimensionnalité implique l'utilisation d'une fonction pour organiser les éléments `` assez similaires '' en un nombre fixe de groupes afin que les éléments de chaque groupe puissent être pleinement considérés comme similaires. La réduction des dimensions est souvent non seulement une science, mais aussi un art, et est généralement considérée comme une information confidentielle ou un secret commercial par les organisations qui l'utilisent avec succès pour obtenir un avantage concurrentiel.

Les méthodes de clustering sont la partie principale de l'arsenal d'outils de tout spécialiste de l'analyse de données, car dans presque tous les secteurs - du renseignement militaire à la conception bancaire et paysagère - vous devrez peut-être analyser une quantité vraiment énorme de données relationnelles non standard, et la croissance du nombre de postes vacants de spécialistes selon les années précédentes en témoignent clairement.

En règle générale, une entreprise crée une base de données pour collecter des informations, mais tous les champs ne peuvent pas contenir de valeurs d'un ensemble prédéfini. Cela peut être dû à la logique incomplètement pensée de l'interface utilisateur de l'application, à l'incapacité de prédéterminer toutes les valeurs acceptables ou à la nécessité de donner aux utilisateurs la possibilité de saisir n'importe quel texte comme ils le souhaitent. Quoi qu'il en soit, le résultat est toujours le même: vous obtenez une grande quantité de données non standardisées. Même si dans un certain champ au total N différentes valeurs de chaîne peuvent être stockées, certaines d'entre elles signifieront en fait le même concept. Les doublons peuvent se produire pour diverses raisons - en raison d'erreurs d'orthographe, de l'utilisation d'abréviations ou d'abréviations, ainsi que de différents registres de caractères.

Comme mentionné ci-dessus, il s'agit d'une situation classique qui survient lors de l'analyse des données de LinkedIn: les utilisateurs peuvent saisir leurs informations sous forme de texte libre, ce qui entraîne inévitablement une augmentation des variations. Par exemple, si vous décidez de rechercher votre réseau professionnel et de déterminer où travaillent la plupart de vos contacts, vous devrez considérer les options couramment utilisées pour écrire les noms des entreprises. Même les noms de société les plus simples peuvent avoir plusieurs options que vous rencontrerez presque certainement (par exemple, "Google" - une forme abrégée de "Google, Inc."), et vous devrez considérer toutes ces options afin de les amener à une forme standard. Lors de la normalisation des noms de sociétés, un bon point de départ peut être de normaliser les abréviations dans des noms tels que LLC et Inc.

4.3.1. Normalisation des données pour l'analyse


En tant qu'introduction nécessaire et utile à l'étude des algorithmes de clustering, nous considérons quelques situations typiques que vous pouvez rencontrer lors de la résolution du problème de normalisation des données de LinkedIn. Dans cette section, nous implémentons un modèle standard de normalisation des titres d'entreprise et d'emploi. Dans le cadre d'un exercice plus avancé, nous aborderons également brièvement la question de la désambiguïsation et du géocodage des noms de lieux à partir d'un profil LinkedIn. (Autrement dit, nous essaierons de convertir les noms de lieux des profils LinkedIn, tels que «Greater Nashville Area», en coordonnées qui peuvent être cartographiées.)

Le principal résultat des efforts de normalisation des données est la capacité de prendre en compte et d'analyser des caractéristiques importantes et d'utiliser des méthodes d'analyse avancées, telles que le clustering. Dans le cas des données de LinkedIn, nous étudierons des fonctionnalités telles que les publications et les emplacements géographiques.

Normalisation et comptage d'entreprises


Essayons de standardiser les noms des entreprises de votre réseau professionnel. Comme décrit ci-dessus, vous pouvez extraire des données de LinkedIn de deux manières principales: par programme, en utilisant l'API LinkedIn ou en utilisant le mécanisme d'exportation d'un réseau professionnel sous la forme d'un carnet d'adresses, qui comprend des informations de base telles que le nom, le poste, la société et les coordonnées.

Imaginez que nous avons déjà un fichier CSV avec des contacts exportés depuis LinkedIn, et maintenant nous pouvons normaliser et afficher les entités sélectionnées, comme indiqué dans l'exemple 4.4.

Comme décrit dans les commentaires à l'intérieur des exemples, vous devez renommer le fichier CSV avec les contacts que vous avez exportés de LinkedIn, en suivant les instructions de la section «Téléchargement du fichier d'informations de contact sur LinkedIn» et le copier dans un répertoire spécifique où le code du programme peut le trouver.

Exemple 4.4 Normalisation simple des abréviations dans les noms d'entreprises


import os import csv from collections import Counter from operator import itemgetter from prettytable import PrettyTable #    LinkedIn: https://www.linkedin.com/psettings/member-data. #  , LinkedIn       , #    .      # resources/ch03-linkedin/. CSV_FILE = os.path.join("resources", "ch03-linkedin", 'Connections.csv') #   ,    #  .     #     . transforms = [(', Inc.', ''), (', Inc', ''), (', LLC', ''), (', LLP', ''), (' LLC', ''), (' Inc.', ''), (' Inc', '')] companies = [c['Company'].strip() for c in contacts if c['Company'].strip() != ''] for i, _ in enumerate(companies): for transform in transforms: companies[i] = companies[i].replace(*transform) pt = PrettyTable(field_names=['Company', 'Freq']) pt.align = 'l' c = Counter(companies) [pt.add_row([company, freq]) for (company, freq) in sorted(c.items(), key=itemgetter(1), reverse=True) if freq > 1] print(pt) 

Voici les résultats d'une simple analyse de fréquence:

image

Python prend en charge la possibilité de passer des arguments aux fonctions en déréférençant une liste et / ou un dictionnaire, ce qui est parfois très pratique, comme le montre l'exemple 4.4. Par exemple, appeler f (* args, ** kw) équivaut à appeler f (1, 7, x = 23), où args est défini comme une liste d'arguments [1,7] et kw comme un dictionnaire {'x': 23}. D'autres conseils de programmation Python se trouvent à l'annexe B.

Gardez à l'esprit que pour gérer des situations plus complexes, par exemple, pour normaliser différents noms de la même entreprise qui ont changé au fil du temps, comme O'Reilly Media, vous devrez écrire du code plus complexe. Dans ce cas, le nom de cette société peut être représenté par O'Reilly & Associates, O'Reilly Media, O'Reilly, Inc. ou tout simplement O'Reilly [S'il vous semble que de grandes difficultés vous attendent, imaginez quel type de travail les spécialistes Dun & Bradstreet ont dû faire (http://bit.ly/1a1m4Om), spécialisé dans le catalogage des informations et confronté à la tâche de compilation et accompagné d'un registre avec les noms des sociétés dans différentes langues du monde - ed. ].

À propos des auteurs


Matthew Russell (@ptwobrussell) est un spécialiste de premier plan du Middle Tennessee. Au travail, il essaie d'être un leader, aide les autres à devenir des leaders et crée des équipes très efficaces pour résoudre des problèmes complexes. En dehors du travail, il réfléchit à la réalité, pratique un individualisme prononcé et se prépare à l'apocalypse zombie et à la rébellion des machines.

Mikhail Klassen, @MikhailKlassen est un spécialiste principal du traitement et de l'analyse des données chez Paladin AI, une start-up qui crée des technologies d'apprentissage adaptatif. Il détient un doctorat en astrophysique de l'Université McMaster et un baccalauréat en physique appliquée de l'Université Columbia. Michael aime les problèmes d'intelligence artificielle et l'utilisation d'outils d'analyse de données à de bonnes fins. Lorsqu'il ne fonctionne pas, il lit ou voyage généralement.

»Plus d'informations sur le livre sont disponibles sur le site Web de l'éditeur
» Contenu
» Extrait

25% de réduction sur les colporteurs - Data Mining

Lors du paiement de la version papier du livre, un livre électronique est envoyé par e-mail.

Source: https://habr.com/ru/post/fr466729/


All Articles