
Ces dernières années, le traitement du langage naturel (PNL) a connu une croissance rapide de la qualité et de la convivialité, ce qui a contribué à stimuler l'adoption des entreprises de solutions d'intelligence artificielle (IA). Au cours des dernières années, les chercheurs ont appliqué de nouvelles méthodes d'apprentissage en profondeur à la PNL. Les scientifiques des données ont commencé à passer des méthodes traditionnelles aux algorithmes de réseau neuronal profond (SOTA) (SOTA) qui utilisent des modèles linguistiques pré-élaborés sur de grands corpus de texte.
Ce référentiel contient des exemples et des meilleures pratiques pour la construction de systèmes PNL, fournis sous forme de cahiers Jupyter et de fonctions utilitaires. L'objectif du référentiel est sur les méthodes de pointe et les scénarios communs qui sont populaires parmi les chercheurs et les praticiens travaillant sur des problèmes impliquant du texte et de la langue.
L'objectif de ce référentiel est de créer un ensemble complet d'outils et d'exemples qui tirent parti des progrès récents dans les algorithmes PNL, les architectures neuronales et les systèmes d'apprentissage automatique distribués. Le contenu est basé sur nos engagements futurs passés et potentiels avec les clients ainsi que sur la collaboration avec des partenaires, des chercheurs et la communauté open source.
Nous espérons que les outils pourront réduire considérablement le «temps de marché» en simplifiant l'expérience de la définition du problème commercial au développement de la solution par ordres de grandeur. De plus, l'exemple de cahiers servirait de directives et présenterait les meilleures pratiques et l'utilisation des outils dans une grande variété de langues.
À une époque d'apprentissage par transfert, de transformateurs et d'architectures profondes, nous pensons que les modèles pré-étend fournissent une solution unifiée à de nombreux problèmes du monde réel et permettent de gérer facilement différentes tâches et langues. Nous prioriserons donc ces modèles, car ils obtiendront des résultats de pointe sur plusieurs repères NLP comme Glue et Squad Leadboards. Les modèles peuvent être utilisés dans un certain nombre d'applications allant de la classification de texte simple aux robots de chat intelligents sophistiqués.
Notez que pour certains types de problèmes de PNL, vous n'aurez peut-être pas besoin de créer vos propres modèles. Au lieu de cela, des solutions prédéfinies ou facilement personnalisables existent qui ne nécessitent aucune expertise de codage ou d'apprentissage automatique personnalisée. Nous vous recommandons fortement d'évaluer si ceux-ci peuvent résoudre suffisamment votre problème. Si ces solutions ne sont pas applicables ou si la précision de ces solutions n'est pas suffisante, la recours à des approches personnalisées plus complexes et longues peut être nécessaire. Les services cognitifs suivants offrent des solutions simples pour traiter les tâches NLP courantes:
L'analyse de texte est un ensemble d'API REST pré-formé qui peut être appelée pour l'analyse des sentiments, l'extraction des phrases clés, la détection du langage et la détection des entités nommées et plus encore. Ces API fonctionnent hors de la boîte et nécessitent une expertise minimale dans l'apprentissage automatique, mais ont des capacités de personnalisation limitées.
QNA Maker est un service API basé sur le cloud qui vous permet de créer une couche de question et de réponse conversationnelle sur vos données existantes. Utilisez-le pour créer une base de connaissances en extraitant des questions et des réponses de votre contenu semi-structuré, y compris les FAQ, les manuels et les documents.
La compréhension du langage est un service SaaS pour former et déployer un modèle en tant qu'API REST compte tenu d'un ensemble de formation fourni par l'utilisateur. Vous pouvez faire une classification d'intention ainsi que l'extraction des entités nommée en effectuant des étapes simples pour fournir des exemples d'énoncés et les étiqueter. Il soutient l'apprentissage actif, donc votre modèle continue toujours à apprendre et à s'améliorer.
Pour ce référentiel, notre public cible comprend des scientifiques des données et des ingénieurs d'apprentissage automatique avec différents niveaux de connaissances NLP car notre contenu est uniquement source et cible la modélisation personnalisée d'apprentissage automatique. Les utilitaires et les exemples fournis sont destinés à être des accélérateurs de solution pour les problèmes de PNL du monde réel.
Le référentiel vise à étendre les capacités NLP selon trois dimensions distinctes
Nous visons à avoir des exemples de bout en bout de tâches et de scénarios communs tels que la classification du texte, la reconnaissance des entités nommée, etc.
Nous visons à prendre en charge plusieurs modèles pour chacun des scénarios pris en charge. Actuellement, les modèles basés sur les transformateurs sont pris en charge dans la plupart des scénarios. Nous avons travaillé à l'intégration du package Transformers à partir de la face étreinte qui permet aux utilisateurs de charger facilement des modèles pré-entraînés et de les affiner pour différentes tâches.
Nous souscrivons fortement aux principes multi-langues établies par "Emily Bender"
Le référentiel vise à prendre en charge les langues non anglophones dans tous les scénarios. Modèles pré-formés utilisés dans le référentiel tels que Bert, FastText prend en charge 100+ langues hors de la boîte. Notre objectif est de fournir des exemples de bout en bout dans autant de langues que possible. Nous encourageons les contributions communautaires dans ce domaine.
Ce qui suit est un résumé des scénarios NLP couramment utilisés couverts dans le référentiel. Chaque scénario est démontré dans un ou plusieurs exemples de cahier Jupyter qui utilisent la base de code de base des modèles et des utilitaires de référentiel.
| Scénario | Modèles | Description | Langues |
|---|---|---|---|
| Classification de texte | Bert, Distillbert, Xlnet, Roberta, Albert, XLM | La classification du texte est une méthode d'apprentissage supervisée pour apprendre et prédire la catégorie ou la classe d'un document compte tenu de son contenu texte. | Anglais, chinois, hindi, arabe, allemand, français, japonais, espagnol, néerlandais |
| Reconnaissance d'entité nommée | Bert | La reconnaissance de l'entité nommée (NER) est la tâche de classer les mots ou les phrases clés d'un texte en entités d'intérêt prédéfinies. | Anglais |
| Résumé de texte | Bertsumext Berttsumabs Unilm (s2s-ff) Minimil | Le résumé de texte est une tâche de génération de langue pour résumer le texte d'entrée dans un paragraphe de texte plus court. | Anglais |
| Impact | Bert, Xlnet, Roberta | L'implication textuelle est la tâche de classer la relation binaire entre deux textes en langage naturel, le texte et l'hypothèse , pour déterminer si le texte est d'accord avec l' hypothèse ou non. | Anglais |
| Question Répondre | Bidaf, bert, xlnet | La réponse à la question (QA) est la tâche de récupérer ou de générer une réponse valide pour une requête donnée en langage naturel, fournie d'un passage lié à la requête. | Anglais |
| Similitude des phrases | Bert, Gensen | La similitude des phrases est le processus de calcul d'un score de similitude compte tenu d'une paire de documents texte. | Anglais |
| Incorporer | Word2vec texte rapide Gant | L'intégration est le processus de conversion d'un mot ou d'un morceau de texte en un espace vectoriel continu de nombre réel, généralement, en basse dimension. | Anglais |
| Analyse des sentiments | Analyseur de dépendance Gant | Fournit un exemple d'analyse des sentiments basés sur les aspects de train et d'utilisation avec Azure ML et Intel NLP Architect. | Anglais |
Lors de la résolution des problèmes de PNL, il est toujours bon de commencer par les services cognitifs prédéfinis. Lorsque les besoins dépassent les limites du service cognitif prédéfini et lorsque vous souhaitez rechercher des méthodes d'apprentissage automatique personnalisées, vous trouverez ce référentiel très utile. Pour commencer, accédez au guide de configuration, qui répertorie les instructions sur la façon de configurer votre environnement et vos dépendances.
Azure Machine Learning Service est un service cloud utilisé pour former, déployer, automatiser et gérer les modèles d'apprentissage automatique, le tout à large échelle que le cloud fournit. Azureml est présenté dans des cahiers dans différents scénarios pour améliorer l'efficacité du développement de systèmes de langage naturel à grande échelle et pour diverses tâches liées au développement des modèles d'IA comme:
Pour exécuter avec succès ces cahiers, vous aurez besoin d'un abonnement Azure ou vous pouvez essayer Azure gratuitement . Il peut y avoir d'autres services ou produits Azure utilisés dans les ordinateurs portables. L'introduction et / ou la référence de ceux-ci seront fournies dans les cahiers eux-mêmes.
Nous espérons que la communauté open source contribuerait au contenu et apporterait le dernier algorithme SOTA. Ce projet accueille les contributions et les suggestions. Avant de contribuer, veuillez consulter nos directives de contribution.
Bootstrap votre solution de résumé de texte avec la dernière version de NLP-REPES
Annotation de texte facilitée avec Docano
Jumpstart Analyser vos données de texte en hindi à l'aide du référentiel NLP
Accélérer le développement de solutions de traitement du langage naturel avec un apprentissage automatique Azure
Ce qui suit est une liste de référentiels connexes que nous aimons et pensons être utiles pour les tâches NLP.
| Dépôt | Description |
|---|---|
| Transformateurs | Une excellente bibliothèque Pytorch de l'étreinte Face avec les implémentations de modèles populaires basés sur des transformateurs. Nous avons beaucoup utilisé leur package dans ce dépôt et apprécions grandement leurs efforts. |
| Cahiers d'apprentissage machine azure | ML et exemples d'apprentissage en profondeur avec l'apprentissage automatique Azure. |
| Azureml-bert | Recettes de bout en bout pour la pré-formation et le réglage fin à l'aide du service d'apprentissage automatique Azure. |
| MASSE | Masse: séquence masquée à la séquence pré-formation pour la génération de langue. |
| MT-DNN | Réseaux de neurones profonds multi-tâches pour la compréhension du langage naturel. |
| Unilm | Pré-formation du modèle de langue unifiée. |
| Dialogue | Dialogpte: pré-formation générative à grande échelle pour la génération de réponse conversationnelle |
| Construire | Bifurquer | Statut |
|---|---|---|
| CPU Linux | maître | |
| CPU Linux | mise en scène | |
| GPU Linux | maître | |
| GPU Linux | mise en scène |