我期待做一些句子分析(主要针对twitter应用程序)并推断出一些一般特征。 Ruby中有这种类型的任何好的自然语言处理库吗?Ruby中的自然语言处理
类似于Is there a good natural language processing library,但是对于Ruby。我更喜欢一般的东西,但任何线索感谢!
我期待做一些句子分析(主要针对twitter应用程序)并推断出一些一般特征。 Ruby中有这种类型的任何好的自然语言处理库吗?Ruby中的自然语言处理
类似于Is there a good natural language processing library,但是对于Ruby。我更喜欢一般的东西,但任何线索感谢!
有一些东西在Ruby Linguistics和其中的一些链接,尽管它似乎并没有接近NLTK的Python版本。
你需要更具体地了解这些“一般特征”是什么。
在NLP中,一个句子的“一般特征”可能意味着一百万个不同的事物 - 情感分析(即说话者的态度),基本的词性标注,使用人称代词,句子是否包含主动或被动动词,什么是动词的时态和语态...
我不介意你是否模糊地描述它,但如果我们不知道你在问什么,这是不太可能的,我们可以是特定的帮助你。
我的一般建议,特别是对于NLP,你应该得到最适合这项工作的工具,而不是将自己限制为一种特定的语言。限制自己使用某种特定的语言对于一些普遍工具在任何地方都可以实现的任务来说都很好,但是NLP不是其中的一种。
与Twitter一起工作的另一个问题是大量的句子会以一种奇怪而奇妙的方式被压缩或压缩 - 大多数NLP工具都没有受过培训。为了帮助那里,NUS SMS Corpus包括“约10000学生收集的SMS消息”。由于类似的限制和使用,分析可能有助于您使用Twitter进行探索。
如果您更具体,我会尝试列出一些有用的工具。
您可以随时使用jruby并使用java库。
编辑:能够在jvm上本地执行ruby并轻松利用java库是rubyists的一大优点。这是一个很好的选择,应该在这种情况下考虑。
您不应该只是说应该使用java库,而应该使用哪些java库。因为读者可能知道,它们甚至可能不存在。 – 2010-12-03 17:33:25
http://stackoverflow.com/questions/895893/which-nlp-toolkit-to-use-in-java – jshen 2012-04-26 20:35:07
我发现一个很好的文章,详细说明红宝石here一些NLP算法。这包括词干分析器,日期时间分析器和语法分析器。
我会看看Mark Watson的免费书Practical Semantic Web and Linked Data Applications, Java, Scala, Clojure, and JRuby Edition。他使用java,clojure,ruby和scala编写了有关NLP的章节。他还提供了所需资源的链接。
TREAT - 文本检索和注释工具包 - 是最全面的工具包,我所知道的对Ruby:https://github.com/louismullie/treat/wiki/
三个优,成熟NLP包Stanford Core NLP,Open NLP和LingPipe。有Ruby绑定到Stanford Core NLP工具(GPL许可证)以及OpenNLP工具(Apache许可证)。
在事物的更实验方面,我维护一个在GPL下发布的Text Retrieval, Extraction and Annotation Toolkit(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
等)rwordnet
),POS标注器(rbtagger
,engtagger
等)whatlanguage
),日期/时间(chronic
,kronic
,nickel
),关键字(lda-ruby
)提取。ferret
)。stanford-core-nlp
)。 (decisiontree
),MLP(ruby-fann
),SVM(rb-libsvm
)和线性分类(tomz-liblinear-ruby-swig
)的基本机器学习。levenshtein-ffi
,,tf-idf-similarity
)。不包括在治疗,但相关的NLP:hotwater(字符串距离算法),yomu(粘合剂到Apache忻用于读取.DOC,.DOCX,.PAGES,的.odt,.RTF,.PDF), graph-rank(GraphRank的实现)。
试试这个
https://github.com/louismullie/stanford-core-nlp
关于斯坦福核心NLP宝石
这种宝石提供了高层次的Ruby绑定到斯坦福核心NLP包,集自然语言处理的符号化工具,句子分词,词性标注,词形和英语,法语和德语的解析。该软件包还为英语提供了命名实体识别和共识解决方案。
http://nlp.stanford.edu/software/corenlp.shtml 演示页 http://nlp.stanford.edu:8080/corenlp/
还要考虑使用SaaS的API,如MonkeyLearn。您可以使用机器学习轻松地训练文本分类器,并通过API进行集成。有一个Ruby SDK可用。
除了创建自己的分类器,您还可以选择预先创建的模块进行情感分析,主题分类,语言检测等。 我们也有提取器,如关键字提取和实体,我们将继续添加更多的公共模块。
很好的特性:
对于寻找更轻量级和简单实施的人来说,这个选项对我来说效果很好。
我保持Ruby Natural Language Processing resources(库,API和演示文稿)在GitHub上的列表覆盖在这里其他的答案,以及一些其他的库列出的库。
为什么不试试wit.ai?这是一项免费的外部服务。我写了一个封装了它们功能的gem:[wit_bot](// bensites.com/wit_bot) – 2016-04-03 22:19:17