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

Stemming is the term used in information retrieval to describe the process for 将字形缩减为某种基本表示. 应该区分词干 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 - Break words and phrases into ngrams.
  • raingrams - 用纯Ruby编写的灵活通用的ngrams库.

Syntactic Processing

Constituency Parsing

Semantic Analysis

  • amatch - 字符串之间的五种距离类型集(包括Levenshtein,卖家,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 - 小型Ruby API,用于利用“espeak”和“lame”创建文本到语音的mp3文件.
  • tts - 使用Google翻译服务进行文字转语音转换.
  • att_speech - 用于语音到文本的AT&T Speech API的Ruby包装器.
  • pocketsphinx-ruby - Pocketsphinx绑定.

Dialog Agents, Assistants, and Chatbots

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

Linguistic Resources

Machine Learning Libraries

Machine Learning 算法 在纯Ruby中或用其他编程语言编写适当的绑定 对于Ruby.

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

Data Visualization

请参考 Data Visualization 关于[带有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 - RoRActiveSupport gem有各种可以处理大小写的字符串扩展.
  • fuzzy_tools - 用于Ruby中模糊搜索的工具集调整了准确性.
  • u - U扩展了Ruby的Unicode支持.
  • unicode - Unicode规范化库.
  • CommonRegexRuby - 在字符串中查找许多常见信息.
  • regexp-examples - 生成与给定正则表达式匹配的字符串.
  • verbal_expressions - 使困难的正则表达变得容易
  • translit_kit - 将希伯来语和意第绪语音译成拉丁字符.
  • re2 - 用于文本挖掘和文本提取的高速正则表达式库.
  • regex_sample - 从给定的正则表达式生成样本字符串.

Articles, Posts, Talks, and Presentations

Projects and Code Examples

Books

  • Miller, Rob. Text处理Ruby:从你周围的数据中提取价值. 务实的程序员,2015年. [link]
  • Watson, Mark. Scripting Intelligence:Web 3.0信息收集和处理. APRESS,2010. [link]
  • Watson, Mark. Practical Semantic Web和Linked Data Applications. Lulu,2010. [link]

Community

Needs your Help!

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

License

[Creative Commons Zero 1.0](https://creativecommons.org/publicdomain/zero/1.0/令人敬畏的NLP with Ruby by Andrei BeliankouContributors.

在法律允许的范围内,与CC0相关联的人 “令人敬畏的NLP与Ruby”已放弃所有版权及相关或相邻权利 用“红宝石”来实现“令人敬畏的NLP”.

您应该已经收到了CC0 legalcode的副本 工作. 如果没有,请参阅 https://creativecommons.org/publicdomain/zero/1.0/ .

[ruby]:https://www.ruby-lang.org/en/ [动机]:https://github.com/arbox/nlp-with-ruby/blob/master/motivation.md [faq]:https://github.com/arbox/nlp-with-ruby/blob/master/FAQ.md [ds-with-ruby]:https://github.com/arbox/data-science-with-ruby [ml-with-ruby]:https://github.com/arbox/machine-learning-with-ruby [change-pr]:https://github.com/RichardLitt/knowledge/blob/master/github/amending-a-commit-guide.md