【发布时间】:2011-11-28 01:02:51
【问题描述】:
是否有任何 Ruby gem 或其他用于文本分析的?词频、模式检测等(最好懂法语)
【问题讨论】:
是否有任何 Ruby gem 或其他用于文本分析的?词频、模式检测等(最好懂法语)
【问题讨论】:
词频的泛化是语言模型,例如uni-grams(= 单个词的频率)、bi-grams(= 词对的频率)、tri-grams(= 世界三元组的频率),...,一般来说:n-grams
您应该寻找现有的语言模型工具包——在这里重新发明轮子不是一个好主意。
有一些标准工具包可用,例如来自 CMU Sphinx 团队和 HTK。
这些工具包通常是用 C 编写的(为了速度!!因为您必须处理庞大的语料库)并生成标准输出格式的 ARPA n-gram 文件(这些文件通常是文本格式)
查看以下线程,其中包含更多详细信息和链接:
Building openears compatible language model
一旦您使用这些工具包之一生成了语言模型,您将需要一个 Ruby Gem 以使语言模型在 Ruby 中可访问,或者您需要将 ARPA 格式转换为您自己的格式。
adi92 的帖子列出了更多 Ruby NLP 资源。
您也可以通过 Google 搜索“ARPA 语言模型”了解更多信息
最后请检查Google's online N-gram tool。他们根据他们数字化的书籍构建了 n-gram - 也提供法语和其他语言版本!
【讨论】:
The Mendicant Bug: NLP Resources for Ruby
包含许多有用的 Ruby NLP 链接。
我很久以前就尝试过使用 Ruby Linguistics 的东西,但记得有很多问题......我不建议跳进去。
如果您的大部分文本分析都涉及计算 ngram 和朴素贝叶斯等内容,我建议您自己进行。 Ruby 有很好的基本库和对正则表达式的强大支持,所以这不应该是那么棘手,而且你可以更容易地根据你试图解决的问题的特质来调整东西。
与斯坦福解析器 gem 一样,它可以使用 Java 库从 Ruby 中解决您的问题,但这可能很棘手,因此可能不是解决问题的最佳方法。
【讨论】:
出于这个原因,我写了 gem words_counted。您可以在rubywordcount.com 上查看演示。它有很多你提到的分析功能,还有一个主机更多。 API 有很好的文档记录,可以在 Github 上的自述文件中找到。
【讨论】: