
[Rubyml | Rubydatascience | Rubyinterop]
NLP incrível com rubi 
Recursos úteis para processamento de texto em rubi
Esta lista com curadoria compreende recursos impressionantes , bibliotecas, fontes de informação sobre o processamento computacional de textos em idiomas humanos com a linguagem de programação do Ruby. Esse campo é frequentemente referido como PNL, lingüística computacional, HLT (tecnologia de linguagem humana) e pode ser trazida em conjunto com inteligência artificial, aprendizado de máquina, recuperação de informações, mineração de texto, extração de conhecimento e outras disciplinas relacionadas.
Esta lista vem do nosso trabalho diário em modelos de idiomas e ferramentas de PNL. Leia por que esta lista é incrível. Nossas perguntas frequentes descrevem as decisões importantes e as respostas úteis nas quais você pode estar interessado.
Toda contribuição é bem -vinda! Adicione links por meio de solicitações de tração ou crie um problema para iniciar uma discussão.
Siga -nos no Twitter e espalhe a palavra usando a tag #RubyNLP hash!
Conteúdo
- Tutoriais
- Subtaras de pipeline de NLP
- Geração de pipeline
- Motores multiuso
- Identificação do idioma
- Segmentação
- Processamento lexical
- Stemming
- Lematização
- Estatísticas lexicais: contando tipos e tokens
- Filtrando palavras de parada
- Processamento de nível frasal
- Processamento sintático
- Grupo constituinte Analisando
- Análise semântica
- Análise Pragmática
- Tarefas de alto nível
- Ortografia e correção de erros
- Alinhamento de texto
- Tradução da máquina
- Análise de sentimentos
- Números, datas e tempo analisando
- Reconhecimento de entidade nomeado
- Texto para falar em texto
- Agentes de diálogo, assistentes e chatbots
- Recursos linguísticos
- Bibliotecas de aprendizado de máquina
- Visualização de dados
- Reconhecimento óptico de caracteres
- Extração de texto
- Pesquisa completa de texto, recuperação de informações, indexação
- Manipulação de string consciente da linguagem
- Artigos, postagens, palestras e apresentações
- Projetos e exemplos de código
- Livros
- Comunidade
- Precisa da sua ajuda!
- Recursos relacionados
- Licença
Tutoriais
Por favor, ajude -nos a preencher esta seção! ?
Subtaras de pipeline de NLP
Um pipeline de NLP começa com um texto simples.
Geração de pipeline
- Composable_operations - estrutura de definição para pipelines de operação.
- Ruby -Spark - Liglas de faísca com um DSL fácil de entender.
- Phobos - cliente Ruby simplificado para Apache Kafka.
- Paralelo - Supervisor para execução paralela em várias CPUs ou em muitos threads.
- PWRAKE - Extensões de rake para executar tarefas locais e remotas em paralelo.
Motores multiuso
- Open -NLP - Ligações de rubi para o OpenNLP Toolkit.
- Stanford-Core-NLP-Ruby Bindings for the Stanford Corenlp Tools.
- Tratar - Estrutura de processamento de linguagem natural para Ruby (como NLTK para Python).
- NLP_TOOLZ - Wrapper sobre algumas classes OpenNLP e o analisador original de Berkeley.
- Open_NLP - Jruby Bindings para o OpenNLP Toolkit.
- Ruby-Spacy-Módulo de invólucro para biblioteca Spacy NLP via Pycall.
APIs on-line
- ALCHEMYAPI_RUBY - Legacy Ruby SDK para Alchemyapi/Bluemix.
- Wit -Ruby - Biblioteca de clientes Ruby para a plataforma Wit.ai Language Unding.
- WLAPI - Biblioteca de clientes Ruby para Wortschatz Leipzig Web Services.
- MonkeyLearn -Ruby - Análise de sentimentos, modelagem de tópicos, detecção de idiomas, nomeado reconhecimento de entidades por meio de um cliente da Web baseado em Ruby.
- Google-Cloud-Language-API de serviço de linguagem natural do Google para Ruby.
Identificação do idioma
A identificação do idioma é uma das primeiras etapas cruciais em cada pipeline da PNL.
- Scylla - Categorização e identificação de idiomas.
Segmentação
Ferramentas para tokenização, palavra e detecção de limites e desambiguação.
- Tokenizer - tokenizador multilíngue simples. [tutorial]
- Pragmatic_tokenizer - Tokenizer multilíngue para dividir uma corda em tokens.
- NLP -Pure - Algoritmos de processamento de linguagem natural implementados em rubi puro com dependências mínimas.
- Textoken - Biblioteca de tokenização de texto simples e personalizável.
- PRAGMATIC_SEGENER - LIMITENTE DE Word Desambiguação com muitos cookies.
- Punkt -segmento - Implementação pura do rubi do segmento punkt.
- TATTY_TOKenizer - Tokenizer baseado em regexp para diferentes idiomas.
- SCAPEL - Ferramenta de desambiguação de limite da frase.
Processamento lexical
Stemming
STEMMING é o termo usado na recuperação de informações para descrever o processo para reduzir formas de palavras a alguma representação básica. O caule deve ser distinguido da lematização, uma vez que stems não são necessariamente têm motivação linguística.
- RUBY-STEMMER-Ruby-STOMMER expõe a API da bola de neve ao Ruby.
- UEA -STEMMER - Encontro conservador para pesquisa e indexação.
Lematização
A lematização é considerada um processo de encontrar uma forma básica de uma palavra. Os lemas são frequentemente coletados em dicionários.
- Lemmatizer - Lematizador baseado em WordNet para textos em inglês.
Estatísticas lexicais: contando tipos e tokens
- WC - Instalações para contar ocorrências de palavras em um texto.
- Word_Count - Word Counter for
String e Hash Objects. - Words_Counted - Biblioteca Pure Ruby Counting Statistics Word com diferentes opções personalizadas.
Filtrando palavras de parada
- Stopwords -filter - filtre e pare o léxico de palavras com base no lematizador da bola de neve.
Processamento de nível frasal
- N_GRAM - GRAMENTO N GRAM.
- Rubi -ngram - quebre palavras e frases em ngrams.
- RAINGRAMS - Biblioteca Ngrams flexível e de uso geral escrito em Pure Ruby.
Processamento sintático
Grupo constituinte Analisando
- StanfordParser - invólucro baseado em rubi para o analisador de Stanford.
- RLEY - Implementação pura do rubi do algoritmo Earley Parsing para gramáticas constituintes sem contexto.
- rsyntaxtree - visualização para árvores sintáticas no rubi baseado em rmagick. [Dep: ImageMagick]
Análise semântica
- Amatch - Conjunto de cinco tipos de distância entre as cordas (incluindo Levenshtein, Sellers, Jaro -Winkler, 'Distância do par').
- Damerau-Levenshtein-calcula a distância de edição usando o algoritmo Damerau-Levenshtein.
- Água -quente - Rubi Ruby FFI Editar algoritmos de distância.
- Levenshtein-FFI-Computação de distância de edição rápida de edição, usando o algoritmo Damerau-Levenshtein.
- TF_IDF - Frequência de termo / frequência do documento inverso no rubi puro.
- TF-IDF-similaridade-Calcule a semelhança entre os textos usando TF/IDF.
Análise Pragmática
- SentimentLib - Gem de análise de sentimentos extensíveis simples.
Tarefas de alto nível
Ortografia e correção de erros
- Gingerice - Correções de ortografia e gramática através da API de gengibre.
- HUNSPELL -I18N - RUBY LINDAÇÕES PARA O PANTELA HUNSPELL CHELECTER.
- FFI -HUNSPELL - LINHAS DE RUBY BATELADORES DE FFI PARA HUNSPELL.
- HUNSPELL - RUBY LINDAS A HUNSPELL VIA RUBY C API.
Alinhamento de texto
- Alinhamento - Rotinas de alinhamento para textos bilíngues (implementação de Gale -Church).
Tradução da máquina
- Google-Api-Client-Google API Ruby Client.
- Microsoft_Translator - Ruby Client para a API do Microsoft Translator.
- TERMIT - O Google traduz com a síntese de fala em seu terminal.
- ZIPF - Implementação de Bleu e outros algoritmos básicos.
Análise de sentimentos
- Stimmung - Polaridade semântica com base no Lexicon Sentiws.
Números, datas e tempo analisando
- analisador crônico - rubi puro idioma natural data.
- crônico_between - analisador simples de linguagem natural rubi para intervalos de data e hora.
- crônico_duration - analisador de rubi puro por tempo decorrido.
- Kronic - Métodos para analisar e formatar datas legíveis humanas.
- Níquel - Extratos Data, hora e informações da mensagem do texto natural.
- Tickle - analisador para eventos recorrentes e repetidos.
- Numerizador - analisador Ruby para expressões de números em inglês.
Reconhecimento de entidade nomeado
- Ruby -ir - Nomeado reconhecimento de entidade com Stanford Ner e Ruby.
- Ruby-NLP-Rubi-Ligação para Stanford Pos-Tagger e reconhecedor de entidade.
Texto para falar em texto
- Espeak-Ruby-API Small Ruby para utilizar 'Espeak' e 'Lame' para criar arquivos MP3 de texto para fala.
- TTS-Conversão de texto em fala usando o Serviço do Google Translate.
- ATT_SPEECH - Ruby Wrapper sobre a API de fala da AT&T para falar em texto.
- Pocketsphinx -Ruby - Pocketsphinx ligações.
Agentes de diálogo, assistentes e chatbots
- Chatterbot - Estrutura de bot do Twitter Ruby direta, usando OAuth para autenticar.
- LITA - Estrutura de operação de bate -papo altamente extensível escrita com armazenamento persistente no redis.
Recursos linguísticos
- RWordNet - Biblioteca API Pure Ruby Self Consend para o Princeton WordNet®.
- WordNet - Desempenho ligações sintonizadas para o Princeton WordNet®.
Bibliotecas de aprendizado de máquina
Algoritmos de aprendizado de máquina em rubi puro ou escritos em outras linguagens de programação com ligações apropriadas para o rubi.
Para uma lista mais atualizada, consulte o ML incrível com a lista de rubi.
- RB -LIBSVM - Máquinas vetoriais de suporte com Ruby.
- Weka - Jruby Bindings para Weka, diferentes algoritmos ML implementados através de Weka.
- DecisionTree - Algoritmo da árvore de decisão ID3 em rubi puro [post] .
- Rtimbl - alunos baseados em memória da estrutura TIMBL.
- Módulo Classificador Geral de Classificador - Módulo Geral para permitir que os tipos bayesianos e outros classificações.
- LDA -Ruby - Implementação do Ruby da LDA (Alocação Latente de Dirichlet) para modelagem de tópicos automáticos e cluster de documentos.
- Liblinear-ruby-swig-interface Ruby para Liblinear (muito mais eficiente que o LIBSVM para classificação de texto).
- Linnaeus - Classificador Bayesiano apoiado por Redis.
- maxent_string_classifier - Classificador de entropia máximo jruby para dados de string, com base na estrutura Maxent OpenNLP.
- NEVE_BAYES - Classificador simples de Bayes ingênuo.
- NBAYES - Implementação completa de rubi de Ruby de Bayes ingênuo.
- OMNICAT - Estrutura generalizada do rack para classificações de texto.
- Omnicat -Bayes - Implementação de classificação de texto em Bayes ingênua como uma estratégia de classificador Omnicat.
- Ruby -Fann - Ruby Bindings à rápida biblioteca de rede neural artificial (FANN).
- RBLEARN - Biblioteca de extração eValidação de recursos.
Visualização de dados
Consulte a seção de visualização de dados sobre a Lista de Ciência dos Dados com Ruby.
Reconhecimento óptico de caracteres
- Wrapper baseado em FFI de Tesseract -ocr sobre o mecanismo TESSERACT OCR.
Extração de texto
- YOMU - Biblioteca para extrair texto e metadados de arquivos e documentos usando o kit de ferramentas Apache Tika Content Analysis.
Pesquisa completa de texto, recuperação de informações, indexação
- RSOLR - Biblioteca de clientes Ruby and Rails para Apache Solr.
- Solspot - Cliente centrado no Rails para Apache Solr.
- Thinking -Sphinx - plug -in de registro ativo para usar SPHINX em (não apenas) projetos baseados em trilhos.
- Elasticsearch - Cliente Ruby e API para Elasticsearch.
- Elasticsearch -Rails - Integrações de rubi e trilhos para o Elasticsearch.
- Google-Api-Client-Biblioteca API Ruby para serviços do Google.
Manipulação de string consciente da linguagem
Bibliotecas para manipulação de strings, ou seja, correspondência de padrões, conversão de casos, transcodificação, expressões regulares que precisam de informações sobre o idioma subjacente.
- Fuzzy_match - Comparação de cordas difusas com medidas de distância e expressão regular.
- Fuzzy-String-Match-Biblioteca combinando de cordas difusas para Ruby.
- Active_support - ROR
ActiveSupport Gem possui várias extensões de string que podem lidar com o caso. - Fuzzy_tools - conjunto de ferramentas para pesquisas difusas no Ruby Tuned para precisão.
- u - u estende o suporte do Unicode de Ruby.
- Biblioteca de normalização Unicode - Unicode.
- CommonRegexruby - Encontre muitos tipos de informações comuns em uma string.
- Regexp -Exemplos - Gere strings que correspondem a uma determinada expressão regular.
- Verbal_expressões - facilite as expressões regulares.
- translit_kit - transliterate hebraw & iiddish text em caracteres latinos.
- Re2 - Biblioteca de expressão regular de velocidade de alta velocidade para mineração de texto e extração de texto.
- regex_sample - amostra de geração de string de uma dada expressão regular.
- IULIIA - Transliteração cirílica para latim de muitas maneiras possíveis (definido pela implementação de referência).
Artigos, postagens, palestras e apresentações
- 2019
- Extração de texto de imagens usando ruby por AonEMD [post | código]
- 2018
- Processamento de linguagem natural e análise de sentimentos de tweet por Cassandra Corrales [POST]
- 2017
- A API do Google NLP encontra Ruby por Aja Hammerly [POST]
- Sintaxe não é tudo: PNL para Rubyists by Aja Hammerly [slides]
- Computação científica em Jruby por Prasun Anand [slides | vídeo | Slides | slides]
- UNICODE Normalização em Ruby por Starr Horne [Post]
- 2016
- Crie rapidamente um bot de telegrama em Ruby por Ardian Haxha [tutorial]
- Aprendizagem profunda: uma introdução para os desenvolvedores de rubi de Geoffrey Litt [slides]
- Como eu fiz um programa Word2vec puro-puro mais de 3x mais rápido por Kei Sawada [slides]
- Dōmo Arigatō, Sr. Roboto: aprendizado de máquina com Ruby por Eric Weinstein [Slides | vídeo]
- 2015
- Análise de n-gramas por diversão e lucro por Jesus Castello [tutorial]
- O aprendizado de máquina simplificou com Ruby por Lorenzo Masini [tutorial]
- Usando o Ruby Machine Learning para encontrar citações de Paris Hilton de Rick Carlino [tutorial]
- Explorando o processamento de linguagem natural em Ruby por Kevin Dias [slides]
- O aprendizado de máquina simplificou com Ruby por Lorenzo Masini [Post]
- Ciência de dados práticos em Ruby de Bobby Grayson [slides]
- 2014
- Linguagem Natural Parsing com Ruby por Glauco Custód [Tutorial]
- Desmistificação Ciência dos Dados: Analisando conversas na conferência com Rails e Ngrams por Todd Schneider [Vídeo | código]
- Processamento de linguagem natural com Ruby por Konstantin Tennhard [Vídeo | vídeo | vídeo | slides]
- 2013
- Como analisar 'Go' - Processamento de linguagem natural em Ruby por Tom Cartwright [Slides | vídeo]
- Processamento de linguagem natural em Ruby por Brandon Black [slides | vídeo]
- Processamento de linguagem natural com Ruby: n-Grams de Nathan Kleyn [Tutorial | código]
- Buscando Lovecraft, Parte 1: Uma Introdução à PNL e à Gem do Tratado de Robert Qualls [Tutorial]
- 2012
- Aprendizado de máquina com Ruby, parte um de Vasily Vasinov [tutorial]
- 2011
- Ruby One-Liners de Benoit Hamelin [Post]
- Clustering em Ruby por Colin Drake [post/)]
- 2010
- Bayes_motel - Classificação Bayesiana para Ruby por Mike Perham [Post]
- 2009
- Portando o UEA-Lite Stemmer para Ruby por Jason Adams [Post]
- Recursos de PNL para Ruby por Jason Adams [POST]
- 2008
- Máquinas vetoriais de suporte (SVM) em Ruby por Ilya Grigorik [POST]
- Classificação prática de texto com Ruby por Gleicon Moraes [Post | código]
- 2007
- Aprendizagem de árvores de decisão em Ruby por Ilya Grigorik [Post]
- 2006
- Fale minha língua: Processamento de linguagem natural com Ruby por Michael Granger [Slides | Redação | Redação]
Projetos e exemplos de código
- Indo a distância - implementações de vários algoritmos de distância com cálculos de exemplo.
- Nomeado reconhecimento de entidades com os exemplos de Stanford Ner e Ruby - Ner em Ruby e Java com algumas explicações.
- Palavras contadas - Exemplos de estatísticas de palavras personalizáveis alimentadas por words_counted.
- Rsyntaxtree - Demonstração baseada na Web da visualização sintática da árvore.
Livros
- Miller, Rob. Processamento de texto com rubi: extraia o valor dos dados que o rodeia. Programadores pragmáticos, 2015. [Link]
- Watson, Mark. Inteligência de script: coleta e processamento de informações da Web 3.0. Apress, 2010. [Link]
- Watson, Mark. Web semântico prático e aplicativos de dados vinculados. Lulu, 2010. [Link]
Comunidade
- Reddit
- Pilha estouro
- Twitter
Precisa da sua ajuda!
Todos os projetos nesta seção são realmente importantes para a comunidade, mas precisam de mais atenção. Por favor, se você tiver tempo livre e dedicação gasta algumas horas no código aqui.
- Ferret - Recuperação de informações em C e Ruby.
- Summarize - Ruby Native Wrapper para Summarizador de texto aberto.
Recursos relacionados
- Implementações de tradução para máquinas neurais
- Awesome Ruby - Entre outros itens incríveis, uma pequena lista de projetos relacionados à PNL.
- Ruby NLP-coleção de bibliotecas Ruby de última geração para NLP.
- PROCESSÃO DO SOBELA E LANGURA NATURAL - Lista geral de recursos relacionados à PNL (principalmente não para programadores de rubi).
- Rubi científico - álgebra linear, visualização e computação científica para rubi.
- IRUBY - IRUBY KERNEL PARA JUPYTER (FORLELLY IPYTHON).
- OCR impressionante - Multidão de recursos OCR (Optical Caractery Reconhecimento).
- Awesome TensorFlow - Aprendizado de máquina com bibliotecas de tensorflow.
- Imagemagick
Licença
Awesome NLP with Ruby de Andrei Beliankou e colaboradores.
Na medida do possível, a pessoa, a pessoa que associou o CC0 a Awesome NLP with Ruby renunciou a todos os direitos autorais e direitos relacionados ou vizinhos à Awesome NLP with Ruby .
Você deveria ter recebido uma cópia do CC0 LegalCode junto com este trabalho. Caso contrário, consulte https://creativecommons.org/publicdomain/zero/1.0/.