
[Rubyml | Rubydatascience | RubyInterop]
NLP génial avec Ruby 
Ressources utiles pour le traitement du texte dans Ruby
Cette liste organisée comprend des ressources impressionnantes , des bibliothèques, des sources d'information sur le traitement informatique des textes dans les langages humains avec le langage de programmation Ruby. Ce domaine est souvent appelé PNL, linguistique informatique, HLT (technologie du langage humain) et peut être apporté conjointement avec l'intelligence artificielle, l'apprentissage automatique, la récupération de l'information, l'exploitation de texte, l'extraction des connaissances et d'autres disciplines connexes.
Cette liste provient de notre travail quotidien sur les modèles de langue et les outils PNL. Lisez pourquoi cette liste est géniale. Notre FAQ décrit les décisions importantes et les réponses utiles qui pourraient vous intéresser.
Chaque contribution est la bienvenue! Ajoutez des liens via des demandes de traction ou créez un problème pour commencer une discussion.
Suivez-nous sur Twitter et faites passer le mot en utilisant la balise de hachage #RubyNLP !
Contenu
- Tutoriels
- Sous-tâches du pipeline NLP
- Génération de pipelines
- Moteurs polyvalents
- Identification du langage
- Segmentation
- Traitement lexical
- Entièrement
- Lemmatisation
- Statistiques lexicales: comptage des types et des jetons
- Filtrage des mots d'arrêt
- Traitement au niveau phrasal
- Traitement syntaxique
- Analyse de circonscription
- Analyse sémantique
- Analyse pragmatique
- Tâches de haut niveau
- Correction d'orthographe et d'erreur
- Alignement du texte
- Traduction automatique
- Analyse des sentiments
- Nombres, dates et analyses de temps
- Reconnaissance d'entité nommée
- Text-to-disseops
- Agents de dialogue, assistants et chatbots
- Ressources linguistiques
- Bibliothèques d'apprentissage automatique
- Visualisation des données
- Reconnaissance de caractère optique
- Extraction de texte
- Recherche de texte intégral, recherche d'informations, indexation
- Manipulation de cordes consciente du langage
- Articles, articles, conférences et présentations
- Projets et exemples de code
- Livres
- Communauté
- A besoin de votre aide!
- Ressources connexes
- Licence
Tutoriels
Veuillez nous aider à remplir cette section! ?
Sous-tâches du pipeline NLP
Un pipeline NLP commence par un texte brut.
Génération de pipelines
- Composable_Operations - Framework de définition pour les pipelines de fonctionnement.
- Ruby-Spark - Spark Bindings avec un DSL facile à comprendre.
- Phobos - Client Ruby simplifié pour Apache Kafka.
- Parallèle - Superviseur pour l'exécution parallèle sur plusieurs CPU ou dans de nombreux threads.
- PWRAKE - RAKE Extensions pour exécuter des tâches locales et distantes en parallèle.
Moteurs polyvalents
- Open-NLP - Ruby Bindings pour la boîte à outils OpenNLP.
- Stanford-core-nlp - Rubby Bindings for the Stanford Corenlp Tools.
- Treat - Framework de traitement du langage naturel pour Ruby (comme NLTK pour Python).
- NLP_TOOLZ - Wrapper sur quelques classes OpenNLP et l'analyseur Berkeley original.
- Open_NLP - LES RÉMICES JRUBY pour la boîte à outils OpenNLP.
- Ruby-Spacy - Module wrapper pour la bibliothèque NLP Spacy via Pycall.
API en ligne
- alchemyapi_ruby - sdk ruby hérité pour alchemyapi / bluemix.
- WIT-RUBY - Bibliothèque de clients Ruby pour la plate-forme de compréhension du langage WIT.AI.
- WLAPI - Bibliothèque client Ruby pour les services Web de Wortschatz Leipzig.
- Monkeylearn-Ruby - Analyse des sentiments, modélisation de sujets, détection du langage, reconnaissance des entités nommée via un client API Web basé sur Ruby.
- Google-Cloud-Language - API du service de langue naturelle de Google pour Ruby.
Identification du langage
L'identification du langage est l'une des premières étapes cruciales de chaque pipeline NLP.
- Scylla - Catégorisation et identification du langage.
Segmentation
Outils pour la tokenisation, la détection des limites des mots et des phrases et la désambiguïsation.
- Tokenizer - Tokenizer multilingue simple. [Tutoriel]
- Pragmatic_tokenizer - Tokenizer multilingue pour diviser une chaîne en jetons.
- NLP-Pure - Algorithmes de traitement du langage naturel implémentés en rubis pur avec des dépendances minimales.
- TextOKN - bibliothèque de tokenisation texte simple et personnalisable.
- Pragmatic_segmenter - Disambigation des limites du mot avec de nombreux cookies.
- Punkt-Segmenter - Pure Ruby Implémentation du segmenter Punkt.
- Tactful_tokenizer - Tokenizer basé sur Regexp pour différentes langues.
- Scapel - outil de désambiguation des limites de la phrase.
Traitement lexical
Entièrement
La tige est le terme utilisé dans la récupération des informations pour décrire le processus de réduction des formes de mots à une représentation de base. La tige doit être distinguée de la lemmatisation car stems n'ont pas nécessairement une motivation linguistique.
- Ruby-Stemmer - Ruby-Stemmer expose l'API Snowball à Ruby.
- UEA-STEMMER - STEMER CONFIRATIVE pour la recherche et l'indexation.
Lemmatisation
La lemmatisation est considérée comme un processus de recherche d'une forme de base d'un mot. Les lemmes sont souvent collectés dans les dictionnaires.
- Lemmatizer - lemmatizer basé sur WordNet pour les textes anglais.
Statistiques lexicales: comptage des types et des jetons
- WC - Installations pour compter les occurrences des mots dans un texte.
- word_count - compteur de mots pour les objets
String et Hash . - Words_Counted - Pure Bibliothèque Ruby Compter Word Statistics avec différentes options personnalisées.
Filtrage des mots d'arrêt
- Filtre de mots arrêtés - Filtre et arrêt du lexique Word basé sur le lemmatizer en boule de neige.
Traitement au niveau phrasal
- n_gram - générateur n-gram.
- Ruby-ngram - briser les mots et les phrases en ngrams.
- Rainrams - Bibliothèque NGRAMS flexible et à usage général écrit en Ruby Pure.
Traitement syntaxique
Analyse de circonscription
- StanfordParser - Emballage basé à Ruby pour l'analyseur de Stanford.
- Rley - Pure Implémentation Ruby de l'algorithme d'analyse Earley pour les grammaires de circonscription sans contexte.
- RSYntaxtree - Visualisation pour les arbres syntaxiques dans Ruby sur la base de Rmagick. [DEP: ImageMagick]
Analyse sémantique
- Amatch - Ensemble de cinq types de distance entre les chaînes (y compris Levenshtein, Venders, Jaro-Winkler, «Pair Distance»).
- Damerau-Levenshtein - calcule la distance de modification à l'aide de l'algorithme de Damerau-Levenshtein.
- Hotwater - Algorithmes de distance de modification de la chaîne FFI RUBY FAST.
- Levenshtein-FFI - Calcul de distance de modification de chaîne rapide, en utilisant l'algorithme de Damerau-Levenshtein.
- TF_IDF - Fréquence de terme / Fréquence de document inverse dans Ruby pur.
- TF-IDF-Similarité - Calculez la similitude entre les textes à l'aide de TF / IDF.
Analyse pragmatique
- SentimentLib - Gemme d'analyse des sentiments extensible simple.
Tâches de haut niveau
Correction d'orthographe et d'erreur
- Gingerrice - Corrections d'orthographe et de grammaire via l'API du gingembre.
- Hunspell-I18N - Rubis Bindings au vérificateur orthographique standard de Hunpell.
- FFI-Hunspell - Rubis Basés FFI pour Hunpell.
- HUNSPELL - Ruby Beau à Hunspell via Ruby C API.
Alignement du texte
- Alignement - Routines d'alignement pour les textes bilingues (implémentation de Gale Church).
Traduction automatique
- Google-API-Client - Client Google API Ruby.
- Microsoft_translator - Ruby Client pour l'API Microsoft Traductor.
- Termit - Google Translate avec la synthèse de la parole dans votre terminal.
- ZIPF - Implémentation de BLEU et d'autres algorithmes de base.
Analyse des sentiments
- STIMMMAN - POLARITÉ SEMANTIQUE BASÉE SUR LE lexique Sentiws.
Nombres, dates et analyses de temps
- Chronique - Pure Ruby Natural Language Date Parser.
- Chronic_between - analyseur de langage naturel Ruby simple pour les gammes de dattes et de temps.
- Chronic_Duration - Pure Ruby Parser pour le temps écoulé.
- Kronic - Méthodes d'analyse et de mise en forme des dates lisibles humaines.
- Nickel - Extrait les informations sur la date, l'heure et les messages à partir du texte Naturalement libellé.
- Tickle - analyseur pour les événements récurrents et répétés.
- Numizer - Ruby Parser pour les expressions numériques anglaises.
Reconnaissance d'entité nommée
- Ruby-ner - Reconnaissance d'entités nommée avec Stanford Ner et Ruby.
- Ruby-NLP - Ruby Binding pour Stanford Pos-Tagger et Name Entity Reconnateur.
Text-to-disseops
- ESPEAK-RUBY - Small Ruby API pour utiliser «Espeak» et «Lame» pour créer des fichiers MP3 text-to-discours.
- TTS - Conversion text-to-discours à l'aide du service Google Translate.
- att_speech - Ruby Wrapper sur l'API de la parole AT&T pour la parole au texte.
- POCHETSPHINX-RUBY - POCHETSPHINX RESTAGES.
Agents de dialogue, assistants et chatbots
- Chatterbot - Framework de bot Twitter basé sur Ruby à Ruby, en utilisant OAuth pour s'authentifier.
- LITA - Framework de bot de fonction de chat hautement extensible écrit avec un stockage persistant sur redis.
Ressources linguistiques
- RWORDNET - Bibliothèque API auto-contenue Pure Ruby pour le Princeton WordNet®.
- WordNet - Lignets réglés de performances pour Princeton WordNet®.
Bibliothèques d'apprentissage automatique
Algorithmes d'apprentissage automatique dans Ruby pure ou écrit dans d'autres langages de programmation avec des liaisons appropriées pour Ruby.
Pour plus de liste à jour, veuillez consulter la liste de Ruby Awesome ML avec Ruby.
- RB-LIBSVM - Machines vectorielles de prise en charge avec Ruby.
- WEKA - LES RESSAGES JRUBY POUR WEKA, différents algorithmes ML implémentés via Weka.
- DecisionTree - Decision Tree ID3 Algorithme in Pure Ruby [Post] .
- RTIMBL - Apprenants basés sur la mémoire du cadre TIMBL.
- Classificateur-ré-né - module général de classificateur pour permettre à la bayésie et à d'autres types de classifications.
- LDA-RUBY - Implémentation Ruby de la LDA (allocation latente Dirichlet) pour la modélisation automatique des sujets et le regroupement de documents.
- LIBLINEAR-RUBY-SWIG - Ruby Interface à Liblinéaire (beaucoup plus efficace que LiBSVM pour la classification du texte).
- Linnaeus - classificateur bayésien soutenu par Redis.
- Maxent_string_classifier - JRuBy Classificateur d'entropie maximale pour les données de chaîne, basé sur le framework maxent OpenNLP.
- Naive_Bayes - Classificateur Naive Bayes simple.
- NBAYES - Implémentation rubis complète de Bayes naïve.
- Omnicat - Framework de rack généralisé pour les classifications de texte.
- omnicat-bayes - implémentation de classification du texte naïf de Bayes comme stratégie de classificateur omnicat.
- Ruby-Fann - Ruby Bindings à la Fast Artificial Neural Network Library (FANN).
- RBLearn - Bibliothèque d'extraction et d'intervalidation de fonctionnalités.
Visualisation des données
Veuillez vous référer à la section de visualisation des données sur la liste des données de la science des données avec Ruby.
Reconnaissance de caractère optique
- Emballage basé sur Tesseract-OCR - FFI sur le moteur Tesseract OCR.
Extraction de texte
- YOMU - Bibliothèque pour extraire du texte et des métadonnées à partir de fichiers et de documents à l'aide de la boîte à outils d'analyse du contenu Apache Tika.
Recherche de texte intégral, recherche d'informations, indexation
- RSOLR - Bibliothèque client Ruby et Rails pour Apache Solr.
- Client centré sur les rails pour Apache Solr.
- Penser-Sphinx - Plugin d'enregistrement actif pour l'utilisation de Sphinx dans (pas seulement) des projets basés sur des rails.
- Elasticsearch - Ruby Client et API pour Elasticsearch.
- Elasticsearch-Rails - Ruby et Rails Integrations pour Elasticsearch.
- Google-API-Client - Bibliothèque API Ruby pour Google Services.
Manipulation de cordes consciente du langage
Bibliothèques pour la manipulation de chaînes de rendez-vous de langage, IE Search, Pattern Matching, Conversion de cas, transcodage, expressions régulières qui ont besoin d'informations sur la langue sous-jacente.
- FUZZY_MATCH - Comparaison Fuzzy String avec les mesures de distance et l'expression régulière.
- Fuzzy-String Match - Fuzzy String Matching Library for Ruby.
- Active_Support - ROR
ActiveSupport Gem a diverses extensions de chaîne qui peuvent gérer le cas. - Fuzzy_Tools - Set-outil pour les recherches Fuzzy dans Ruby à l'écoute de la précision.
- U - U étend le support Unicode de Ruby.
- Unicode - bibliothèque de normalisation Unicode.
- CommonregexRuby - Trouvez de nombreux types d'informations courantes dans une chaîne.
- Regexp-Examples - Générez des chaînes qui correspondent à une expression régulière donnée.
- Verbal_Expressions - faciliter les expressions régulières difficiles.
- Translit_kit - Transliterate Hébrew & Yiddish Text en caractères latins.
- RE2 - bibliothèque d'expression régulière de Hight-Speed pour l'exploitation de texte et l'extraction de texte.
- regex_sample - Échantillon de génération de chaîne à partir d'une expression régulière donnée.
- iuliia - translittération cyrillique en latin de nombreuses manières possibles (définie par l'implémentation de référence).
Articles, articles, conférences et présentations
- 2019
- Extraction du texte d'images utilisant Ruby par aonemd [Post | code]
- 2018
- Traitement du langage naturel et analyse des sentiments de tweet par Cassandra Corrales [Post]
- 2017
- L'API Google NLP rencontre Ruby par AJA Hammerly [Post]
- La syntaxe n'est pas tout: NLP pour Rubyists par AJA Hammerly [diapositives]
- L'informatique scientifique sur JRuby par Prasun Anand [diapositives | Vidéo | Diapositives | Diapositives]
- Normalisation Unicode dans Ruby par Starr Horne [post]
- 2016
- Créez rapidement un bot télégramme dans Ruby par Ardian Haxha [tutoriel]
- Deep Learning: une introduction pour les développeurs de rubis de Geoffrey Litt [Tlides]
- Comment j'ai rendu un programme Word2Vec pur-Ruby plus de 3x plus vite par Kei Sawada [diapositives]
- Dōmo arigatō, M. Roboto: Machine Learning with Ruby par Eric Weinstein [Diapositives | vidéo]
- 2015
- Analyse N-gram pour le plaisir et le profit de Jésus Castello [tutoriel]
- L'apprentissage automatique est simple avec Ruby par Lorenzo Masini [tutoriel]
- Utiliser Ruby Machine Learning pour trouver des citations de Paris Hilton par Rick Carlino [Tutorial]
- Explorer le traitement du langage naturel dans Ruby par Kevin Dias [diapositives]
- L'apprentissage automatique est simple avec Ruby par Lorenzo Masini [Post]
- Science des données pratique dans Ruby par Bobby Grayson [toboggans]
- 2014
- Analyse du langage naturel avec Ruby par Glauco Custódio [Tutoriel]
- Démystifier la science des données: analyser les discussions de conférence avec Rails et Ngrams par Todd Schneider [vidéo | code]
- Traitement du langage naturel avec Ruby par Konstantin Tennhard [vidéo | Vidéo | Vidéo | Diapositives]
- 2013
- Comment analyser «Go» - Traitement du langage naturel dans Ruby par Tom Cartwright [Diapositives | vidéo]
- Traitement du langage naturel dans Ruby par Brandon Black [Diapositives | vidéo]
- Traitement du langage naturel avec Ruby: N-grammes par Nathan Kleyn [Tutoriel | code]
- Recherche de Lovecraft, partie 1: Une introduction à NLP et The Treat Gem de Robert Qualls [Tutoriel]
- 2012
- Apprentissage automatique avec Ruby, première partie de Vasily Vasinov [Tutoriel]
- 2011
- Ruby One-liners de Benoit Hamelin [Post]
- Clustering in Ruby par Colin Drake [Post /)]
- 2010
- BAYES_MOTEL - Classification bayésienne pour Ruby par Mike Perham [Post]
- 2009
- Portant la tige UEA-Lite à Ruby par Jason Adams [Post]
- Ressources NLP pour Ruby par Jason Adams [Post]
- 2008
- Support Vector Machines (SVM) dans Ruby par Ilya Grigorik [POST]
- Classification pratique du texte avec Ruby par Gleicon Moraes [Post | code]
- 2007
- Apprentissage des arbres de décision dans Ruby par Ilya Grigorik [Post]
- 2006
- Parlez ma langue: Traitement du langage naturel avec Ruby par Michael Granger [Diapositives | écriture | écriture]
Projets et exemples de code
- Aller à la distance - Implémentations de divers algorithmes de distance avec des calculs d'exemples.
- Nommé la reconnaissance des entités avec Stanford Ner et Ruby - NER Exemples dans Ruby et Java avec quelques explications.
- Mots comptés - Exemples de statistiques de mots personnalisables alimentées par Words_Counted.
- RSYntaxtree - Démonstration Web basée sur la visualisation de l'arbre syntaxique.
Livres
- Miller, Rob. Traitement de texte avec Ruby: Extraire la valeur des données qui vous entoure. Programmeurs pragmatiques, 2015. [Lien]
- Watson, Mark. Intelligence de script: collecte et traitement des informations Web 3.0. Apress, 2010. [Lien]
- Watson, Mark. Web sémantique pratique et applications de données liées. Lulu, 2010. [Lien]
Communauté
- Reddit
- Débordement de pile
- Gazouillement
A besoin de votre aide!
Tous les projets de cette section sont vraiment importants pour la communauté mais ont besoin de plus d'attention. S'il vous plaît, si vous avez du temps libre et que le dévouement passe quelques heures sur le code ici.
- Ferret - Responsable des informations en C et Ruby.
- Résumez - Ruby Native Wrapper pour un résumé de texte ouvert.
Ressources connexes
- Implémentations de traduction des machines neurales
- Awesome Ruby - Parmi d'autres articles impressionnants, une courte liste de projets liés à la PNL.
- Ruby NLP - Collection à la pointe de la technologie de bibliothèques Ruby pour NLP.
- Traitement de la parole et du langage naturel - Liste générale des ressources liées à la PNL (principalement pas pour les programmeurs Ruby).
- Ruby scientifique - Algèbre linéaire, visualisation et informatique scientifique pour Ruby.
- Iruby - noyau iruby pour Jupyter (Formelly Ipython).
- Awesome OCR - multitude de ressources OCR (reconnaissance des caractères optiques).
- Tensorflow génial - Apprentissage automatique avec bibliothèques TensorFlow.
- ImageMagick
Licence
Awesome NLP with Ruby par Andrei Beliankou et contributeurs.
Dans la mesure du possible en vertu de la loi, la personne qui a associé CC0 à Awesome NLP with Ruby a renoncé à tous les droits d'auteur et aux droits connexes ou voisins à Awesome NLP with Ruby .
Vous devriez avoir reçu une copie du CC0 LegalCode avec ce travail. Sinon, voir https://creativecommons.org/publicdomain/zero/1.0/.