Code de recherche en langage naturel est sur GitHub, forum Q & A session, Facebook nouveau saut d'étude

Xiao contrôle à partir du bas de la non-Temple encastré

rapports Qubit | Numéro public QbitAI

« Comment désactiver ou masquer le clavier logiciel Android? »

Si vous êtes une entrée de développeur Android, allez sur Stack Overflow forum pour trouver un problèmes de développement Android très populaire, et bientôt il y aura d'autres ont affiché un morceau de code.

problèmes de programmation Rencontrés, un programmeur est probablement la première pensée est d'aller aux résultats de la recherche du forum, puis recherchez la réponse dans le code.

Cependant, il y a beaucoup de questions populaires, et ne seront généralement pas discuter dans les forums, si vous pouvez rapidement trouver des réponses dans la grande base de code GitHub très bien.

Pour cette raison, Facebook a développé un outil de recherche de code, peut être le traitement du langage naturel (NLP) et la recherche d'information technologie (IR) est directement appliquée au texte source.

Cet outil est appelé Code de nerf Recherche (Le NCS), qui accepte des requêtes en langage naturel, récupère et renvoie les fragments de code pertinents directement à partir de la bibliothèque GitHub.

En plus des NCS, il y a une nouvelle augmentation des performances de supervision des données réseau UNIF .

hachoir à petite échelle

L'utilisation de Facebook sur Stack Overflow Android développé pour évaluer la performance de NCS, pour voir si le modèle se trouve dans la bonne réponse de GitHub.

Dans les données d'évaluation Stack Overflow mis 287 questions, les 10 premiers résultats de NCS capables de répondre correctement aux questions 175 ont représenté plus de 60% de l'ensemble des données. Par rapport à la technologie de recherche d'information traditionnelle BM25, il a une très grande amélioration.

Nous NCS et UNIF et Stack ensembles de données d'évaluation Débordement sont comparés, ont confirmé UNIF amélioré nettement plus que le nombre de questions répondues NCS.

Les résultats montrent une meilleure surveillance de la technologie de recherche de performance au moment d'obtenir un bon corpus de formation peut fournir.

Par exemple, la requête de recherche « comment quitter l'application et l'écran principal, » ce problème, NCS retour:

showHomeScreenDialog public void (vue View) { Intention nextScreen = nouvelle intention (getApplicationContext (), HomeScreenActivity.class); startActivity (nextScreen); }

Le UNIF fournit un code plus approprié extrait:

clickExit public void (point MenuItem) { intention d'intention = new intention (Intent.ACTION_MAIN); intent.addCategory (Intent.CATEGORY_HOME); intent.setFlags (Intent.FLAG_ACTIVITY_NEW_TASK); metr.stop (); startActivity (intention); terminer (); }

principe

Facebook à l'aide des outils d'IA open source FastText, Faiss et PyTorch, NCS et UNIF requête en langage naturel exprimé en tant que vecteur et segments de code, et de former le réseau, de sorte que les fragments de code et des requêtes sémantiquement similaires sont étroitement liés dans le vecteur représente un espace vectoriel.

Ces modèles peuvent être trouvés directement à partir du corpus extrait de code programmeur répondre efficacement aux questions.

NCS

NCS modèle sémantique en utilisant le programme acquis intégré dans l'espace vectoriel ayant une des entités sémantiques similaires proches les uns des autres caractéristiques souhaitables. Dans l'exemple ci-dessous, il y a deux codes différents, ils sont associés à fermer ou masquer le clavier Android. Parce qu'ils ont une signification sémantique similaire, même si elles ne sont pas identiques au code, puis la distance dans l'espace vectoriel est également très proche.

Facebook utilise ce concept pour construire le modèle NCS. À un niveau élevé, chacun des segments de code du procédé de génération de modèle de granularité de niveau espace vectoriel intégré. Après la construction du modèle, une carte de requête pour le même espace vectoriel, la distance de vecteur utilisé pour estimer le segment de code de corrélation et les requêtes.

Pour générer un modèle, NCS doit extraire le mot, mot de construction intégré dans, puis construire le plongement du document.

Pour générer une représentation vectorielle du code, le code source Facebook sous forme de texte, et des extraits des catégories grammaticales suivantes: le nom de la méthode, l'invocation de la méthode, l'énumération, littéraux et commentaires chaîne. Nous avons ensuite selon les conventions standards anglais (tels que les espaces, ponctuation) et signe de ponctuation liée code eux.

Par exemple, la méthode du corps de figure ci-dessus « pxToDp », le code source peut être considérée comme un ensemble de mots: « La conversion px px dp dp est l'accès aux ressources, acquérir les indicateurs d'affichage. »

FastText Intégrer à construire mot vocabulaire tous les mots dans le corpus. FastText en utilisant deux couches de réseau neuronal de calcul dense représentation vectorielle, le réseau peut être formé sans surveillance sur un large corpus.

Le UNIF est une extension de NCS, lorsque les données surveillées peuvent être utilisés pour la formation, peut être utilisé pour améliorer les performances.

26109 la plus populaire sélection sur le projet GitHub Android directement dans le corpus de recherche sur notre NCS modèle de formation sans supervision. Il est également devenu NCS code de retour corpus de recherche de fragments.

Comme modèle UNIF, mes problèmes d'extraction Facebook titres et extraits Stack Overflow forum pour obtenir l'ensemble de données. Après avoir utilisé divers problèmes de filtrage heuristique, enfin obtenir 451.000 échantillons de formation.

Documents Adresse:

https://arxiv.org/pdf/1905.03813.pdf

- complet  -

recrutement sincère

Qubits recrutent éditeur / journaliste, basé à Zhongguancun de Beijing. Nous attendons de talent, des étudiants enthousiastes de nous rejoindre! Détails, s'il vous plaît interface de dialogue qubit numéro public (QbitAI), réponse mot "recrutement".

Qubit QbitAI · manchettes sur la signature de

' « suivre les nouvelles technologies AI dynamiques et de produits
La fourchette de prix de 5.37-8.77 dix mille yuans modèles 2019 officiellement répertoriés en Chine V3
Précédent
« Pokémon » violent et le dragon d'or géant étrange, comme si la guerre ne repose pas sur Mega facile à utiliser?
Prochain
Zhao Wei a été aux États-Unis! Dix mille hauts en tricot et pantalon mélanger match, faire les jeunes ne perdrai pas fille d'âge
Vous pouvez télécharger directement! Microsoft a publié l'outil de ligne de commande succulente, GitHub a break 40006 étoilé
poulet flamme « Pokémon » à la fin la force? Mega Battle, sinon aussi bon à utiliser?
Après Flextronics a refusé de retourner l'équipement: Huawei va fermer son usine expulsé de la chaîne d'approvisionnement
Cette discrète entreprise Shanghai AI, remportant une couronne sur CVPR
aujourd'hui Po Chun E100 officiellement répertoriés sur le prix du préversion Juillet dix mille 3,98 à 4,88 yuans
nouvelle voiture Mazda supprimer l'écran tactile, un accident a attiré une salve d'applaudissements
Ctrip « voiture exclusive » expansion significative au cours de l'année couvrant les grandes villes du pays
Quatrième version du logiciel et le système d'intégration du matériel de paradigme: AI n'a pas considéré la force compter sur pile matérielle, la principale transformation de l'entreprise traditionne
Machine « sang » est apparu sur la nature: une vie de poisson faux dépend 36 heures sans batterie à l'état solide
Laser stands chose de Han! Non seulement le visage de performance également mis en doute la fraude financière! Cours de l'action une fois de plus est tombé à acheter « explosion » étrangers
apparence plus jeune de la nouvelle Nissan Sylphy inscrite le 16 Juillet