Ruby中的自然语言处理

Joe*_*ert 64 ruby nlp artificial-intelligence

我正在寻找一些句子分析(主要是针对Twitter应用程序)并推断出一些一般特征.Ruby中有这种东西有什么好的自然语言处理库吗?

类似于是否有一个很好的自然语言处理库,但对于Ruby.我更喜欢非常一般的东西,但是任何领导都会受到赞赏!

use*_*029 61

三个优秀且成熟的NLP包是Stanford Core NLP,Open NLPLingPipe.有针对Stanford Core NLP工具(GPL许可证)以及OpenNLP工具(Apache许可证)的Ruby绑定.

在更具实验性的方面,我维护了一个在GPL下发布的文本检索,提取和注释工具包(Treat),它为几乎所有与Ruby存在的NLP相关的gem提供了一个通用的API.以下的Treat的功能列表也可以作为与Ruby 1.9兼容的稳定自然语言处理宝石的良好参考.

  • 文本分割器和断词(punkt-segmenter,tactful_tokenizer,srx-english,scalpel)
  • 英语,法语和德语的自然语言解析器以及英语(stanford-core-nlp)的命名实体提取.
  • 单词变形和接合(linguistics),词干(ruby-stemmer,uea-stemmer,lingua等)
  • WordNet的接口(rwordnet),POS标注器(rbtagger,engtagger等)
  • 语言(whatlanguage),日期/时间(chronic,kronic,nickel),关键字(lda-ruby)萃取.
  • 使用索引和全文搜索(ferret)进行文本检索.
  • 命名实体extract(stanford-core-nlp).
  • 使用决策树(decisiontree),MLP(ruby-fann),SVM(rb-libsvm)和线性分类(tomz-liblinear-ruby-swig)进行基本机器学习.
  • 文本相似性度量(levenshtein-ffi,fuzzy-string-match,tf-idf-similarity).

不包括在Treat中,但与NLP相关:hotwater(字符串距离算法),yomu(用于阅读.doc,.docx,.pages,.odt,.rtf,.pdf的Apache Tiki的绑定器),graph-rank(实现) GraphRank).


Ale*_*lli 23

Ruby语言学中有一些东西和一些链接,但它似乎并没有接近NLTK对于Python来说.


jsh*_*hen 11

您始终可以使用jruby并使用java库.

编辑:能够在jvm上本地执行ruby并轻松利用java库是rubyists的一大优势.这是一个很好的选择,应该在这种情况下考虑.

在JAVA中使用哪个NLP工具包?

  • 你不应该只说你应该使用java库,而是使用哪些java库.它们可能根本不存在,因为读者可能都知道. (4认同)

Joe*_*ert 9

我发现一个很好的文章详细介绍了Ruby的一些NLP算法在这里.这包括词干分析器,日期时间解析器和语法分析器.


zan*_*bri 6

TREAT - Text REtrieval和Annotation Toolkit - 是我所知道的最全面的Ruby工具包:https://github.com/louismullie/treat/wiki/


Rau*_*eta 5

还要考虑使用像MonkeyLearn这样的SaaS API .您可以通过机器学习轻松训练文本分类器并通过API进行集成.有一个Ruby SDK可用.

除了创建自己的分类器,您还可以选择预先创建的模块,用于情感分析,主题分类,语言检测等.我们还有关键字提取和实体等提取器,我们将不断添加更多公共模块.

其他不错的功能:

  • 您有一个GUI来创建/测试算法.
  • 算法在我们的云计算平台上运行得非常快.
  • 您可以与Ruby或任何其他编程语言集成.


dia*_*ks2 5

我在 GitHub 上维护了一份Ruby 自然语言处理资源(库、API 和演示文稿)列表,其中涵盖了此处其他答案中列出的库以及一些其他库。