Exemples + code, vous ne serez pas avoir peur d'une étude approfondie de la construction de la recherche de code bibliothèque encore

Note de réseau Lei Feng: Cet article est une compilation de technologie blog AI Yanxishe, le titre original Comment créer langage naturel sémantique Rechercher arbitraire des objets avec l'apprentissage en profondeur, auteur Hamel Husain.

Traduction | Tao Zhao Pengfei Wang Xingyu correction d'épreuves | Liu Jiao finition | MY

Cet article présente une fin à l'exemple de fin de la façon dont vous pouvez construire un objets système de recherche sémantique. auteur du projet est Hamel Husain et Ho-Hsiang Wu.

images Hubot

La motivation du projet:

Il est indéniable que le moteur de recherche moderne est très puissant: vous pouvez toujours recueillir des informations sur Internet à la connaissance. Le seul inconvénient est que ce n'est pas une panacée. Dans de nombreux cas, la recherche est aussi stricte recherche par mot clé, ou encore lorsque l'objet est pas de texte, la recherche sera d'aucune utilité. De plus, la recherche par mot clé stricte ne permet pas aux utilisateurs de la recherche sémantique, qui signifie que vous ne pouvez pas interroger les informations pertinentes.

Aujourd'hui, nous partageons une étude de faisabilité minimum reproductible du produit, afin d'expliquer comment un objet ! Plus précisément, nous allons vous montrer comment créer un système de code python recherche sémantique - mais la méthode peut également être étendue à la recherche d'une autre entité (comme une image ou un clip audio)

Pourquoi la recherche sémantique alors comment excitant? Prenons l'exemple suivant.

code Python pour la recherche sémantique. * S'il vous plaît se référer au texte de la responsabilité

La figure requête de recherche est présentée « Ping REST résultats api et de retour. » Cependant, la recherche peut renvoyer un résultat raisonnable, même si le code et les commentaires les résultats ne contiennent pas le mot Ping, REST ou api.

Cela démontre la puissance de recherche sémantique: En plus de mot-clé, ce qui signifie que nous pouvons aussi rechercher le contenu, ce qui maximise les possibilités pour les utilisateurs de trouver les informations souhaitées. La recherche sémantique est important - par exemple, ce processus de recherche permettra aux développeurs de code de recherche dans le référentiel, même si elles ne sont pas familiers avec la syntaxe du code au sujet, ou ne pas entrer le mot-clé correct. Plus important encore, vous pouvez promouvoir cette méthode pour rechercher d'autres objets, tels que des images, audio et autres contenus que nous n'avons pas encore pensé.

Si ce n'est pas assez d'excitation, alors maintenant vous montrer le système après avoir terminé la lecture de ce tutoriel peut être construit:

Parfois, quand je ne peux pas construire un beau site, je voudrais utiliser les ordinateurs portables Jupyter et les capacités magiques pour créer des présentations personnalisées. Ceci est une méthode rapide pour un travail de démonstration interactive.

La compréhension intuitive du processus de construction d'un vecteur d'espace partagé

Avant d'entrer dans les détails techniques, sur la meilleure façon de parvenir à la recherche sémantique a une compréhension intuitive. L'idée de base est de rechercher du texte et des objets (le code) que nous voulons rechercher une représentation partagée dans le même espace vectoriel, comme suit:

Exemples: 2 et le texte devrait être similaire au vecteur de code représenté, car ils sont directement liés

L'objectif est de cartographier le code à l'espace vectoriel en langage naturel, après la distance de similarité cosinus métrique, décrit le concept du même groupe (texte, code) groupe vecteur de la plus récente, quel que soit le (texte, code) vecteur plus loin.

Il y a plusieurs façons d'atteindre cet objectif, cependant, nous allons démontrer des méthodes d'utilisation modèle de pré-formation. Ce modèle a extrait du code, et pour affiner le modèle pour cela, de sorte que le potentiel de la cartographie de code espace fonction de vecteur à un langage naturel. Note: nous utilisons le terme dans le vecteur et insérer ce tutoriel en alternance.

connaissances requises

Avant de lire ce tutoriel, nous vous recommandons de vous familiariser avec les éléments suivants:

  • Séquence modèle de séquence: la connaissance est utile de revoir le tutoriel avant.

  • Lisez attentivement ce document et de bien comprendre les méthodes qui y sont énoncés. Nous avons utilisé un concept similaire dans cet article.

Vue d'ensemble:

Ce tutoriel est divisé en cinq étapes spécifiques. Ces étapes sont présentées ci-dessous, il peut servir de référence utile lorsque vous lisez le tutoriel. Lorsque vous avez terminé le tutoriel, regarder en arrière à ce tableau vous aidera à en apprendre davantage sur la façon dont toutes les étapes sont regroupées.

Mind Map ce tutoriel. Version HD ici

5.1 chaque étape correspondant au bloc-notes ici Jupyter. Nous allons discuter chaque étape en détail plus loin.

La première partie - données d'acquisition et d'analyse

Les premières notes de la partie

La collection de Google de données dans la communauté open source GitHub, et le stocker dans le BigQuery. Ceci est un bien des données publiques établies pour une variété de projets scientifiques de données intéressantes, y compris ce projet! Lorsque vous avez signé pour compte Google Cloud, vous obtiendrez 300 $, ce qui est suffisant pour interroger les données nécessaires à cet exercice. L'acquisition de données est très pratique car vous pouvez utiliser la requête SQL pour sélectionner le type de fichier et autres métadonnées relatives à l'entrepôt de chercher, comme le nombre de soumis et le nombre de grèves et d'autres étoiles.

Notes décrit les étapes de l'acquisition de données. Heureusement, le nombre de bovins équipe Google Kubeflow ont terminé ces étapes, et les données que vous le stocker à proximité de la nécessité de la pratique à l'utilisation, voir les informations.

Après avoir recueilli les données, nous avons besoin de résoudre ces fichiers (code, chaîne de documentation) groupe sous la forme de données. Pour ce tutoriel, l'unité de code peut être une fonction de niveau supérieur peut être une méthode. Nous voulons recueillir ces ensembles de données comme modèle de données de formation, le modèle peut se résumer (trop précis, nous le dirons à nouveau) code. Nous voulons également supprimer tous les commentaires dans le code, ne laissant que le code lui-même. Cela semble être une tâche ardue. Mais dans la bibliothèque de ast bibliothèque standard Python, qui peut être utilisé pour extraire, les méthodes et la chaîne de documentation. Nous pouvons convertir le code en premier arbre de syntaxe abstraite, puis rallumez le code de package Astor, qui supprimera les commentaires dans le code. Ce tutoriel ne concerne pas le principe de livres de grammaire abstraits et des outils connexes, mais ceux-ci sont des sujets très intéressants.

Scène À propos de cette utilisation de code, comme indiqué dans les notes

Afin de préparer le modèle de données, nous séparons les données dans la formation ensemble, validation et de test. Nous enregistrons aussi le fichier original (nous nommerons la lignée), afin d'enregistrer l'origine de chaque groupe (code, chaîne de documentation). Enfin, nous appliquons le même code de conversion ne contient pas les chaînes de documentation, et maintenus séparés, parce que nous voulons aussi pouvoir rechercher ces codes.

Partie II: Construction du code en utilisant le modèle de dispositif inductif Seq2Seq

Partie 2 notes

Conceptuellement, nous pouvons construire un Seq2Seq modèle pour résumer le code et GitHub question summarizer exactement la même chose que nous avons décrit avant - nous utilisons code python en place des problèmes de données d'origine, et d'utiliser plutôt le titre d'émission de docstring.

Cependant, la question du texte différence GitHub est que le code ne fait pas partie du langage naturel. Pour bénéficier du code de l'information, nous pouvons introduire l'optimisation dans des domaines spécifiques, tels que les LSTMs à base d'arbres indices et grammaire perceptibles (tokens de syntaxe au courant). Pour simplifier, dans ce code tutoriel nous en tant que traitement du langage naturel (enfin obtenu des résultats raisonnables).

......

Vous voulez continuer à lire, s'il vous plaît passer à notre communauté AI Yanxishe: https: //club.leiphone.com/page/TextTranslation/707

Plus de contenu passionnant de faire l'IA Yanxishe.

Les différents domaines, y compris la vision par ordinateur, la sémantique de la parole, la chaîne de blocs, pilote automatique, l'exploration de données, le contrôle intelligent, langages de programmation et d'autres mises à jour quotidiennement.

Fin du téléphone peut analyser un accès de code à deux dimensions

Lei Feng Lei Feng net net

Nouveau film Année "Detective Pu", a joué la subversion Jackie Chan show Big Brother est pas le même!
Précédent
"Select Car 9 h" EXAMEN DES QUESTIONS Q5 et GLC qui choisir?
Prochain
Google, Amazon incendie complète, une guerre sans précédent à puce AI
Qui Chen Jinfei qui? Quelle est la relation avec Liu Yifei Chen Jinfei
La cinquième génération Nissan Serena déclaration Figure technologie de pilote automatique de conduite
La gamme complète de Samsung paravents équipés Xiaolong 855, source de firmware introuvable Orion 9820!
Apple Fan Bingbing a été supprimé le jeu de la passion est intolérable
Jingdong Concours de photographie Awards, votre participation encore plus excitante
Nike Cortez 45 ans comme une main de maître dans la main pour créer la série ne sont pas noter, ce qui est l'artiste qui?
système géant lacrymogène annuel, « vux Corée du Nord pour passer la soirée » 22 Février Ne pas oublier Rencontrez basculement « tap » forte « Amway » attentes
Biographie BMW directeur du design de quitter ses fonctions a écrit une variété de véhicules lourds
filiales mines ou impact négatif significatif sur la performance, les actions minières Société Générale pour être cool?
mise à jour MIX microblogging mil soupçonné Préchauffez nouveau volume MIX3 d'équipement peut être la version 5G peu!
Roi du kit de héros de la gloire Yujiebingqing - Yuji Raiders