
[Rubyml | Rubydatascience | Rubyinterop]
Super NLP mit Ruby 
Nützliche Ressourcen für die Textverarbeitung in Ruby
Diese kuratierte Liste umfasst großartige Ressourcen, Bibliotheken und Informationsquellen zur Computerverarbeitung von Texten in menschlichen Sprachen mit der Ruby -Programmiersprache. Dieses Gebiet wird häufig als NLP, Computer -Linguistik, HLT (Human Language Technology) bezeichnet und kann in Verbindung mit künstlicher Intelligenz, maschinellem Lernen, Informationsabruf, Textabbau, Wissensextraktion und anderen verwandten Disziplinen gebracht werden.
Diese Liste stammt aus unserer täglichen Arbeit an Sprachmodellen und NLP -Tools. Lesen Sie, warum diese Liste großartig ist. Unsere FAQ beschreibt die wichtigen Entscheidungen und nützlichen Antworten, an denen Sie interessiert sind.
Jeder Beitrag ist willkommen! Fügen Sie Links über Pull -Anfragen hinzu oder erstellen Sie ein Problem, um eine Diskussion zu starten.
Folgen Sie uns auf Twitter und bitte verbreiten Sie das Wort mit dem #RubyNLP -Hash -Tag!
Inhalt
- Tutorials
- NLP -Pipeline -Unteraufgaben
- Pipeline -Erzeugung
- Mehrzweckmotoren
- Sprachidentifizierung
- Segmentierung
- Lexikalische Verarbeitung
- Stamm
- Lemmatisierung
- Lexikalische Statistiken: Zählen von Typen und Tokens
- Filterungsstoppswörter
- Verarbeitung von Phrasalebene
- Syntaktische Verarbeitung
- Semantische Analyse
- Pragmatische Analyse
- Aufgaben mit hoher Ebene
- Rechtschreibung und Fehlerkorrektur
- Textausrichtung
- Maschinelle Übersetzung
- Stimmungsanalyse
- Zahlen, Daten und Zeitspannen
- Genannte Entitätserkennung
- Text-to-Speech-to-Text
- Dialogagenturen, Assistenten und Chatbots
- Sprachressourcen
- Bibliotheken für maschinelles Lernen
- Datenvisualisierung
- Optische Charaktererkennung
- Textextraktion
- Volltextsuchung, Informationsabruf, Indexierung
- Sprachbewusstseins -String -Manipulation
- Artikel, Beiträge, Gespräche und Präsentationen
- Projekte und Codebeispiele
- Bücher
- Gemeinschaft
- Benötigt deine Hilfe!
- Verwandte Ressourcen
- Lizenz
Tutorials
Bitte helfen Sie uns, diesen Abschnitt auszufüllen! ?
NLP -Pipeline -Unteraufgaben
Eine NLP -Pipeline beginnt mit einem einfachen Text.
Pipeline -Erzeugung
- componosesable_operations - Definition Framework für Operation Pipelines.
- Ruby -Spark - Funkenbindungen mit einer leicht verständlichen DSL.
- PHOBOS - Vereinfachter Ruby -Client für Apache Kafka.
- Parallele - Vorgesetzter für die parallele Ausführung auf mehreren CPUs oder in vielen Threads.
- PWRAKE - Rake -Erweiterungen, um lokale und entfernte Aufgaben parallel auszuführen.
Mehrzweckmotoren
- Open -NLP - Rubinbindungen für das OpenNLP -Toolkit.
- STANFORD-CORE-NLP-Ruby-Bindungen für die Stanford Corenlp-Werkzeuge.
- Treat - Natural Language Processing Framework für Ruby (wie NLTK für Python).
- NLP_TOOLZ - Wrapper über einige OpenNLP -Klassen und den ursprünglichen Berkeley -Parser.
- Open_NLP - Jruby -Bindungen für das OpenNLP -Toolkit.
- Ruby-Spact-Wrapper-Modul für die Spacy NLP-Bibliothek über Pycall.
Online-APIs
- Alchemyapi_Ruby - Legacy Ruby SDK für Alchemyapi/Bluemix.
- Wit -Ruby - Ruby Client Library für die Wit.ai Sprachverständnisplattform.
- WLAPI - Ruby Client Library für Wortschatz Leipzig Web Services.
- Monkeylearn -Ruby - Stimmungsanalyse, Themenmodellierung, Spracherkennung, Bekanntmachung der Entität über einen Ruby -basierten Web -API -Client.
- Google-Cloud-Sprache-Googles natürliche Sprachdienst-API für Ruby.
Sprachidentifizierung
Die Sprachidentifizierung ist einer der ersten entscheidenden Schritte in jeder NLP -Pipeline.
- Scylla - Sprachkategorisierung und Identifizierung.
Segmentierung
Instrumente für Tokenisierung, Wort- und Satzgrenzerkennung und -verdünnung.
- Tokenizer - Einfacher mehrsprachiger Tokenizer. [Tutorial]
- pragmatic_tokenizer - Mehrsprachiger Tokenizer, um eine Zeichenfolge in Token aufzuteilen.
- NLP -Pure - Algorithmen für natürliche Sprachverarbeitung in reinem Ruby mit minimalen Abhängigkeiten.
- Texte - Einfache und anpassbare Texttkenisierungsbibliothek.
- pragmatic_segmenter - Wortgrenze Disambiguation mit vielen Cookies.
- PunkT -Segmentierer - Pure Ruby Imply im PunkT -Segmentierer.
- Tactful_Tokenizer - REGEXP -Basis -Tokenizer für verschiedene Sprachen.
- Scapel - Satzgrenze Disambiguationsinstrument.
Lexikalische Verarbeitung
Stamm
Das Stamm ist der Begriff, der im Informationsabruf verwendet wird, um den Prozess zur Reduzierung von Wortformen auf eine Basisdarstellung zu beschreiben. Das Stamm sollte von der Lemmatisierung unterschieden werden, da stems nicht unbedingt eine sprachliche Motivation haben.
- Ruby-Stemmer-Ruby-Stemmer setzt die Schneeball-API Ruby aus.
- UEA -Stemmer - Konservativer Stemmer für die Suche und Indexierung.
Lemmatisierung
Die Lemmatisierung wird als Prozess des Findens einer Basisform eines Wortes angesehen. Lemmas werden oft in Wörterbüchern gesammelt.
- Lemmatizer - WordNet -basierter Lemmatizer für englische Texte.
Lexikalische Statistiken: Zählen von Typen und Tokens
- WC - Einrichtungen zum Zählen von Wortvorkommen in einem Text.
- WORD_COUNT - Wortzähler für
String und Hash -Objekte. - Words_Counted - Pure Ruby Library Counting Word Statistics mit unterschiedlichen benutzerdefinierten Optionen.
Filterungsstoppswörter
- Stopwords -Filter - Filtern und Stopp das Wort Lexikon basierend auf dem Snowball -Lemmatizer.
Verarbeitung von Phrasalebene
- n_gram - n -Gram Generator.
- Ruby -Ngram - Brechen Sie Wörter und Phrasen in Ngrams.
- Raingrams - Flexible und allgemeine NGRAMS -Bibliothek in reinem Rubin.
Syntaktische Verarbeitung
Wahlkreis Parsen
- STANFORDPARSER - RUBY BASED WRAPPER für den Stanford Parser.
- Rley - Pure Ruby -Implementierung des Earley Parsing -Algorithmus für kontextfreie Wahlkreisgrammatiken.
- RSYNTAXTREE - Visualisierung für syntaktische Bäume in Ruby basierend auf RMagick. [DEP: Imagemagick]
Semantische Analyse
- AMATCH - Satz von fünf Entfernungsarten zwischen Saiten (einschließlich Levenshtein, Verkäufer, Jaro -Winkler, "Pair Distanz").
- Damerau-Levenshtein-Berechnet die Bearbeitungsabstand mit dem Damerau-Levenshtein-Algorithmus.
- Hotwater - Schneller Ruby FFI String Distanzalgorithmen.
- Levenshtein-FFi-Schnelle String-Distanzberechnung unter Verwendung des Damerau-Levenshtein-Algorithmus.
- tf_idf - Term Frequenz / inverse Dokumentfrequenz in reinem Rubin.
- TF-IDF-Ähnlichkeit-Berechnen Sie die Ähnlichkeit zwischen Texten mit TF/IDF.
Pragmatische Analyse
- Sentimentlib - Einfache erweiterbare Stimmungsanalyse Juwel.
Aufgaben mit hoher Ebene
Rechtschreibung und Fehlerkorrektur
- Gingerice - Rechtschreib- und Grammatikkorrekturen über die Ingwer -API.
- Hunspell -i18n - Rubinbindungen an den Standard -Hunspell -Zaubersprüchen.
- FFI -Hunspell - FFI -basierte Rubinbindungen für Hunspell.
- Hunspell - Rubinbindungen an Hunspell über Ruby C api.
Textausrichtung
- Ausrichtung - Ausrichtungsroutinen für zweisprachige Texte (Implementierung von Gale -Church).
Maschinelle Übersetzung
- Google-api-Client-Google API Ruby Client.
- Microsoft_translator - Ruby Client für die Microsoft -Übersetzer -API.
- Terminit - Google übersetzt mit Sprachsynthese in Ihrem Terminal.
- ZIPF - Implementierung von Bleu- und anderen Basisalgorithmen.
Stimmungsanalyse
- Stimmung - Semantische Polarität basierend auf dem Sentiws -Lexikon.
Zahlen, Daten und Zeitspannen
- Chronisch - reines Rubin Natural Language Datum Parser.
- Chronic_between - Einfacher Parser für natürliche Sprache für Datum und Uhrzeit.
- chronic_duration - reiner Ruby -Parser für verstrichene Zeit.
- Kronic - Methoden zum Parsen und Formatieren von Daten der menschlichen lesbaren Daten.
- Nickel - Extrahiert Datums-, Uhrzeit- und Nachrichteninformationen aus natürlich formuliertem Text.
- Tickle - Parser für wiederkehrende und wiederholende Ereignisse.
- Numerizer - Ruby Parser für englische Zahlenausdrücke.
Genannte Entitätserkennung
- RUBY -NER - Named Entity Anerkennung mit Stanford Ner und Ruby.
- Ruby-NLP-Ruby-Bindung für Stanford Pos-Tagger und Name Entityerkenner.
Text-to-Speech-to-Text
- Espeak-Ruby-Small Ruby API zur Verwendung von 'espeak' und 'lame', um Text-to-Speech-MP3-Dateien zu erstellen.
- TTS-Text-to-Speech-Konvertierung mit dem Google Translate-Dienst.
- att_speech - Ruby -Wrapper über die AT & T -Sprach -API für die Sprache zum Text.
- Taschensphinx -Ruby - Taschensphinxbindungen.
Dialogagenturen, Assistenten und Chatbots
- Chatterbot - Unkompliziertes Ruby -basierter Twitter -Bot -Framework, das OAuth zur Authentifizierung verwendet.
- Lita - Hoch erweiterbarer Chat -Operation Bot Framework mit anhaltendem Speicher auf Redis.
Sprachressourcen
- RWordNet - Pure Ruby Self -Inhalt der API -Bibliothek für das Princeton WordNet®.
- WordNet - Performance Tuned Bindings für das Princeton WordNet®.
Bibliotheken für maschinelles Lernen
Algorithmen für maschinelles Lernen in reinem Rubin oder in anderen Programmiersprachen mit geeigneten Bindungen für Ruby geschrieben.
Weitere aktuelle Liste finden Sie in der fantastischen ML mit Ruby-Liste.
- RB -LIBSVM - Stütze Vektormaschinen mit Rubin.
- Weka - Jruby -Bindungen für Weka, verschiedene ML -Algorithmen, die über Weka implementiert sind.
- DecisionTree - Entscheidungsbaum -ID3 -Algorithmus in reinem Ruby [Post] .
- RTIMBL - Speicherbasierte Lernende aus dem TIMBL -Framework.
- Klassifizierer -reborn - Allgemeines Klassifikatormodul, mit dem Bayesian und andere Arten von Klassifikationen ermöglicht werden können.
- LDA -RUBY - Ruby -Implementierung der LDA (Latent Dirichlet Allocation) für die automatische Modellierung und Dokumentenclusterbildung.
- LIBLINEAR RUBY-SWIG-Ruby-Schnittstelle zu libinear (viel effizienter als LIBSVM für die Textklassifizierung).
- Linnaeus - REDIS -BACKED BAYESISCHER -Klassifikator.
- Maxent_string_classifier - Jruby Maximum Entropy Classifier für Zeichenfolgedaten basierend auf dem openNLP Maxent -Framework.
- NAIVE_BAYES - Einfacher naiver Bayes -Klassifizierer.
- NBAYES - Ruby -Implementierung von Naiven Bayes mit vollem Funktionsumfang.
- Omnicat - Generalized Rack Framework für Textklassifizierungen.
- Omnicat -Bayes - Naive Bayes Textklassifizierungsimplementierung als Omnicat -Klassifikatorstrategie.
- Ruby -Fann - Ruby -Bindungen an die schnelle künstliche neuronale Netzwerkbibliothek (FANN).
- Rblearn - Merkmalextraktion und Crossvalidationsbibliothek.
Datenvisualisierung
Weitere Informationen finden Sie im Abschnitt zur Datenvisualisierung in der Data Science mit Ruby -Liste.
Optische Charaktererkennung
- Tesseract -OCR - FFI -Basis -Wrapper über den Tesseract -OCR -Motor.
Textextraktion
- Yomu - Bibliothek zum Extrahieren von Text und Metadaten aus Dateien und Dokumenten mit dem Apache Tika -Inhaltsanalyse -Toolkit.
Volltextsuchung, Informationsabruf, Indexierung
- RSOLR - Ruby and Rails Client Library für Apache Solr.
- Sunspot - Rails Centric Client für Apache Solr.
- Denken -SPHINX - Active Record -Plugin für die Verwendung von Sphinx in (nicht nur) Rails -basierten Projekten.
- Elasticsearch - Ruby Client und API für Elasticsearch.
- Elasticsearch -Rails - Ruby- und Rails -Integrationen für Elasticsearch.
- Google-api-Client-Ruby API-Bibliothek für Google Services.
Sprachbewusstseins -String -Manipulation
Bibliotheken für Sprachbewusstseins -String -Manipulation, dh Suche, Musteranpassung, Fallumwandlung, Transkodierung, reguläre Ausdrücke, die Informationen über die zugrunde liegende Sprache benötigen.
- fuzzy_match - Fuzzy -String -Vergleich mit Entfernungsmessungen und regulärem Ausdruck.
- Fuzzy-String-Match-Fuzzy String Matching Library für Ruby.
- Active_Support - ROR
ActiveSupport Gem hat verschiedene String -Erweiterungen, die den Fall verarbeiten können. - fuzzy_tools - Toolset für Fuzzy -Suchvorgänge in Ruby, die auf Genauigkeit abgestimmt sind.
- u - u erweitert Rubys Unicode -Unterstützung.
- Unicode - Unicode -Normalisierungsbibliothek.
- COMMOMEREGEXRUBY - Finden Sie viele Arten von gemeinsamen Informationen in einer Zeichenfolge.
- regexp -examples - erzeugen Strings, die einem bestimmten regulären Ausdruck entsprechen.
- Verbal_expressions - Machen Sie schwierige reguläre Ausdrücke einfach.
- translit_kit - transliterate hebräisch & jiddische Text in lateinische Zeichen.
- RE2 - Hight -Speed Reguläre Ausdrucksbibliothek für Textmining und Textextraktion.
- REGEX_SAMPLE - Sample String -Erzeugung aus einem bestimmten regulären Ausdruck.
- Iuliia - Transliteration Cyrillic to Latein auf viele mögliche Weise (definiert durch die Referenzimplementierung).
Artikel, Beiträge, Gespräche und Präsentationen
- 2019
- Text aus Bildern mit Ruby von Aonemd extrahieren [Beitrag | Code]
- 2018
- Verarbeitung natürlicher Sprache und Tweet -Sentimentanalyse von Cassandra Corrales [Post]
- 2017
- Die Google NLP -API trifft Ruby von Aja Hammerly [Post]
- Syntax ist nicht alles: NLP für Rubyisten von Aja Hammerly [Folien]
- Scientific Computing on Jruby von Prasun Anand [Folien | Video | Folien | Folien]
- Unicode -Normalisierung in Ruby durch Starr Horne [Post]
- 2016
- Erstellen Sie schnell einen Telegrammbot in Ruby von ardian Haxha [Tutorial]
- Deep Learning: Eine Einführung für Ruby -Entwickler von Geoffrey Litt [Folien]
- Wie ich ein reines Ruby Word2VEC-Programm mehr als 3x schneller von Kei Sawada [Slides] gemacht habe
- Dōmo Arigatō, Mr. Roboto: maschinelles Lernen mit Ruby von Eric Weinstein [Slides | Video]
- 2015
- N-Gram-Analyse zum Spaß und Gewinn von Jesus Castello [Tutorial]
- Maschinelles Lernen einfach mit Ruby von Lorenzo Masini [Tutorial]
- Verwenden von Ruby Machine Learning, um Paris Hilton Zitate von Rick Carlino [Tutorial] zu finden
- Erforschung der Verarbeitung natürlicher Sprache in Ruby von Kevin Dias [Folien]
- Maschinelles Lernen einfach mit Ruby von Lorenzo Masini [Post]
- Praktische Datenwissenschaft in Ruby von Bobby Grayson [Folien]
- 2014
- Natürliche Sprache Parsen mit Ruby von Glauco Custódio [Tutorial]
- Demystifizierende Datenwissenschaft: Analyse der Konferenzgespräche mit Rails und Ngrams von Todd Schneider [Video | Code]
- Verarbeitung natürlicher Sprache mit Ruby von Konstantin Tennhard [Video | Video | Video | Folien]
- 2013
- Wie man 'Go' - Natürliche Sprachverarbeitung in Ruby von Tom Cartwright analysiert [Folien | Video]
- Verarbeitung natürlicher Sprache in Ruby von Brandon Black [Folien | Video]
- Verarbeitung natürlicher Sprache mit Ruby: N-Grams von Nathan Kleyn [Tutorial | Code]
- Suche nach Lovecraft, Teil 1: Eine Einführung in NLP und das Treat Gem von Robert Qualls [Tutorial]
- 2012
- Maschinelles Lernen mit Ruby, Teil 1 von Vasily Vasinov [Tutorial]
- 2011
- Ruby-Einzeiler von Benoit Hamelin [Post]
- Clustering in Ruby von Colin Drake [Post/)]
- 2010
- Bayes_Motel - Bayesianische Klassifizierung für Ruby von Mike Perham [Post]
- 2009
- Portierung des Uea-Lite-Stemmers nach Ruby von Jason Adams [Post]
- NLP -Ressourcen für Ruby von Jason Adams [Post]
- 2008
- Support Vector Machines (SVM) in Ruby von Ilya Grigorik [Post]
- Praktische Textklassifizierung mit Ruby von Gleicon Moraes [Post | Code]
- 2007
- Entscheidungsbaumlernen in Ruby von Ilya Grigorik [Post]
- 2006
- Sprechen Sie meine Sprache: natürliche Sprachverarbeitung mit Ruby von Michael Granger [Folien | Schreiben | Schreiben]
Projekte und Codebeispiele
- Abstand - Implementierungen verschiedener Distanzalgorithmen mit Beispielberechnungen.
- Bezeichnung der Entitätserkennung mit Stanford Ner und Ruby - Ner -Beispielen in Ruby und Java mit einigen Erklärungen.
- Wörter gezählt - Beispiele für anpassbare Wortstatistiken, die von Words_Counted betrieben werden.
- RSYNTAXTREE - Webbasierte Demonstration der syntaktischen Baumvisualisierung.
Bücher
- Miller, Rob. Textverarbeitung mit Ruby: Wert aus den Daten extrahieren, die Sie umgeben. Pragmatische Programmierer, 2015. [Link]
- Watson, Mark. Scripting Intelligence: Web 3.0 Informationssammlung und Verarbeitung. Apress, 2010. [Link]
- Watson, Mark. Praktisches semantisches Web und verknüpfte Datenanwendungen. Lulu, 2010. [Link]
Gemeinschaft
- Reddit
- Stapelüberlauf
- Twitter
Benötigt deine Hilfe!
Alle Projekte in diesem Abschnitt sind sehr wichtig für die Community, brauchen aber mehr Aufmerksamkeit. Wenn Sie Freizeit und Engagement haben, verbringen Sie hier einige Stunden mit dem Code.
- Frettchen - Informationsabruf in C und Ruby.
- Fassen Sie zusammen - Ruby Native Wrapper für den Open -Text -Zusammenfassung.
Verwandte Ressourcen
- Implementierungen für neuronale maschinelle Übersetzung
- Awesome Ruby - Unter anderem eine kurze Liste von NLP -Projekten.
- Ruby NLP-Hochartes Sammlung von Ruby-Bibliotheken für NLP.
- Sprach- und natürliche Sprachverarbeitung - Allgemeine Liste von NLP -bezogenen Ressourcen (hauptsächlich nicht für Ruby -Programmierer).
- Wissenschaftliche Rubin - Lineare Algebra, Visualisierung und wissenschaftliches Computing für Ruby.
- Iruby - Iruby Kernel für Jupyter (Formelly Ipython).
- Awesome OCR - Vielzahl von OCR -Ressourcen (optische Charaktererkennung).
- Awesome TensorFlow - maschinelles Lernen mit Tensorflow -Bibliotheken.
- Imagemagick
Lizenz
Awesome NLP with Ruby von Andrei Beliankou und Mitwirkenden.
Soweit möglich, hat die Person, die CC0 mit Awesome NLP with Ruby in Verbindung gebracht hat, auf alle Urheberrechte und verwandte oder benachbarte Rechte auf Awesome NLP with Ruby verzichtet.
Sie sollten zusammen mit dieser Arbeit eine Kopie des CC0 LegalCode erhalten haben. Wenn nicht, siehe https://creativecommons.org/publicdomain/zero/1.0/.