Skip to content

NLP with Ruby

Awesome Support Me

[RubyML | RubyDataScience | RubyInterop]

> 在 Ruby 中进行文本处理的有用资源

这个精选列表包括 awesome 有关文本计算处理的资源、图书馆、信息源 在人类语言中 Ruby programming language. 该字段通常被称为 NLP, Computational Linguistics, HLT (人类语言技术) 并可与 Artificial Intelligence, Machine Learning, Information Retrieval, Text Mining, Knowledge Extraction 及其他相关学科.

此列表来自我们在语言模型和 NLP 工具方面的日常工作. Read why 这个列表很棒. 我们 FAQ 描述了 您可能感兴趣的重要决定和有用的答案.

✨ 每个 contribution 欢迎! 通过pull添加链接 请求或创建问题以开始讨论.

跟着我们 Twitter and please spread the word using the #RubyNLP hash tag!

✨ Tutorials

请帮助我们填写此部分! :笑脸:

NLP Pipeline Subtasks

NLP 管道以纯文本开始.

Pipeline Generation

Multipurpose Engines

On-line APIs

Language Identification

语言识别是每个 NLP 管道中的第一个关键步骤之一.

  • scylla - 语言分类和识别.

Segmentation

标记化、单词和句子边界检测和消歧的工具.

Lexical Processing

Stemming

词干提取是信息检索中用来描述信息检索过程的术语 将字形简化为某种基本表示形式. 应区分词干 from Lemmatization 因为“茎”不一定有 语言动机.

  • ruby-stemmer - Ruby-Stemmer 将 SnowBall API 公开给 Ruby.
  • uea-stemmer - 用于搜索和索引的保守词干分析器.

Lemmatization

词形还原被认为是寻找单词基本形式的过程. 引理 经常收录在字典中.

  • lemmatizer - 基于 WordNet 的英文文本 Lemmatizer.

Lexical Statistics: Counting Types and Tokens

  • wc - 计算文本中单词出现次数的工具.
  • word_count - StringHash 对象的单词计数器.
  • words_counted - 纯 Ruby 库使用不同的自定义选项统计单词.

Filtering Stop Words

Phrasal Level Processing

  • n_gram - N-Gram 生成器.
  • ruby-ngram - 将单词和短语分解为 ngram.
  • raingrams - 用纯 Ruby 编写的灵活且通用的 ngrams 库.

Syntactic Processing

Constituency Parsing

Semantic Analysis

  • amatch - 字符串之间的五种距离类型集(包括 Levenshtein、Sellers、Jaro-Winkler、“对距离”).
  • damerau-levenshtein - 使用 Damerau-Levenshtein 算法计算编辑距离.
  • hotwater - 快速 Ruby FFI 字符串编辑距离算法.
  • levenshtein-ffi - 快速字符串编辑距离计算,使用 Damerau-Levenshtein 算法.
  • tf_idf - 纯 Ruby 中的词频/逆文档频率.
  • tf-idf-similarity - 使用 TF/IDF 计算文本之间的相似度.

Pragmatical Analysis

High Level Tasks

Spelling and Error Correction

Text Alignment

  • alignment - 双语文本对齐例程(Gale-Church 实现).

Machine Translation

Sentiment Analysis

Numbers, Dates, and Time Parsing

  • chronic - 纯 Ruby 自然语言日期解析器.
  • chronic_between - 用于日期和时间范围的简单 Ruby 自然语言解析器.
  • chronic_duration - 经过时间的纯 Ruby 解析器.
  • kronic - 解析和格式化人类可读日期的方法.
  • nickel - 从自然措辞的文本中提取日期、时间和消息信息.
  • tickle - 用于重复发生和重复事件的解析器.
  • numerizer - 用于英语数字表达式的 Ruby 解析器.

Named Entity Recognition

  • ruby-ner - 使用 Stanford NER 和 Ruby 进行命名实体识别.
  • ruby-nlp - 用于 Stanford Pos-Tagger 和名称实体识别器的 Ruby 绑定.

Text-to-Speech-to-Text

  • espeak-ruby - 用于利用“espeak”和“lame”创建文本转语音 mp3 文件的小型 Rub​​y API.
  • tts - 使用谷歌翻译服务的文本到语音转换.
  • att_speech - AT&T Speech API 上的 Ruby 包装器,用于语音到文本.
  • pocketsphinx-ruby - Pocketsphinx 绑定.

Dialog Agents, Assistants, and Chatbots

  • chatterbot - 简单的基于 ruby​​ 的 Twitter Bot 框架,使用 OAuth 进行身份验证.
  • lita - 高度可扩展的聊天操作机器人框架,使用持久存储编写 Redis.

Linguistic Resources

Machine Learning Libraries

Machine Learning 算法 in pure Ruby or written in other programming languages with appropriate bindings 对于红宝石.

有关更多最新列表,请查看 [Awesome ML with Ruby][ml-with-ruby] 列表.

Data Visualization

请参阅 Data Visualization [Data Science with Ruby][ds-with-ruby] 列表部分.

Optical Character Recognition

Text Extraction

  • yomu - 用于从文件和文档中提取文本和元数据的库 使用 Apache Tika 内容分析工具包.

Full Text Search, Information Retrieval, Indexing

Language Aware String Manipulation

用于语言感知字符串操作的库,即搜索、模式匹配、 需要有关信息的大小写转换、转码、正则表达式 底层语言.

  • fuzzy_match - 模糊字符串与距离度量和正则表达式的比较.
  • fuzzy-string-match - Ruby 的模糊字符串匹配库.
  • active_support - RoR ActiveSupport gem 有各种可以处理大小写的字符串扩展.
  • fuzzy_tools - Ruby 中的模糊搜索工具集已针对准确性进行了调整.
  • u - U 扩展了 Ruby 的 Unicode 支持.
  • unicode - Unicode 规范化库.
  • CommonRegexRuby - 在一个字符串中查找很多种常见的信息.
  • regexp-examples - 生成与给定正则表达式匹配的字符串.
  • verbal_expressions - 使困难的正则表达式变得简单.
  • translit_kit - 将希伯来语和意第绪语文本音译为拉丁字符.
  • re2 - 用于文本挖掘和文本提取的高速正则表达式库.
  • regex_sample - 从给定的正则表达式生成样本字符串.
  • iuliia — 以多种可能的方式将西里尔字母音译为拉丁字母(由 reference implementation).

Articles, Posts, Talks, and Presentations

Projects and Code Examples

Books

  • Miller, Rob. 使用 Ruby 进行文本处理:从您周围的数据中提取价值. 实用程序员,2015 年. [link]
  • Watson, Mark. 脚本智能:Web 3.0 信息收集和处理. 美联社,2010 年. [link]
  • Watson, Mark. 实用语义网和关联数据应用程序. Lulu,2010 年. [link]

Community

Needs your Help!

本节中的所有项目对社区都非常重要,但需要 更多的关注. 如果您有空闲时间和奉献精神,请花几个小时 在这里的代码上.

License

Creative Commons Zero 1.0 Awesome NLP with Ruby by Andrei BeliankouContributors.

在法律允许的范围内,将 CC0 与 Awesome NLP with Ruby 放弃了所有版权和相关或相邻的权利 到 Awesome NLP with Ruby.

您应该已经收到一份 CC0 合法代码的副本以及此 工作. 如果没有,请参阅https://creativecommons.org/publicdomain/zero/1.0/ .

[红宝石]:https://www.ruby-lang.org/en/ 【动机】:https://github.com/arbox/nlp-with-ruby/blob/master/motivation.md

[ds-with-ruby]:https://github.com/arbox/data-science-with-ruby [ml-with-ruby]:https://github.com/arbox/machine-learning-with-ruby [更改-pr]:https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md