【问题标题】:Ruby Text AnalysisRuby 文本分析
【发布时间】:2011-11-28 01:02:51
【问题描述】:

是否有任何 Ruby gem 或其他用于文本分析的?词频、模式检测等(最好懂法语)

【问题讨论】:

    标签: ruby text analysis


    【解决方案1】:

    词频的泛化是语言模型,例如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 - 也提供法语和其他语言版本!

    【讨论】:

    • 非常感谢您的回答,我会检查这些资源。但是这两个答案都倾向于鼓励我管理自己的日常生活。也许缩小他们一点。
    • 要创建关于 n-gram 的可靠统计,您将需要一个或多个非常大的文本数据训练语料库......例如给定时间段内所有 WSJ 文章的集合可能就是这样的语料库。处理如此大量的数据非常耗时。总的来说,我喜欢 Ruby,但对于这项任务,专用的 C 工具可能更适合。累积统计信息后,您可以在 Ruby 程序中使用生成的 N-Gram - 这会占用大量内存,但不会占用大量时间。
    • 那些训练语料库通常是特定领域的..确保您有大量可用的此类文本数据,否则您的语言模型将过度拟合..这意味着它不会泛化到新数据而且基本上没用..
    • 我的要求没那么苛刻。我只需要对文本进行基本分析。我可以这样做,最常用的词、音节计数、统计比较等。我不需要上下文、语义或任何东西。只需对词汇有基本的了解,就能够识别复数、简单的拼写错误、单词相似性等。
    • 还有模式。像“美国”、“法兰西共和国”这样的成语或组合词(我提到法语了吗?)你们非常有帮助,谢谢。
    【解决方案2】:

    The Mendicant Bug: NLP Resources for Ruby 包含许多有用的 Ruby NLP 链接。
    我很久以前就尝试过使用 Ruby Linguistics 的东西,但记得有很多问题......我不建议跳进去。

    如果您的大部分文本分析都涉及计算 ngram 和朴素贝叶斯等内容,我建议您自己进行。 Ruby 有很好的基本库和对正则表达式的强大支持,所以这不应该是那么棘手,而且你可以更容易地根据你试图解决的问题的特质来调整东西。

    与斯坦福解析器 gem 一样,它可以使用 Java 库从 Ruby 中解决您的问题,但这可能很棘手,因此可能不是解决问题的最佳方法。

    【讨论】:

    • 是的,我在搜索时看到了 Java 的东西。看起来很有趣,但见鬼,我是 Ruby 粉丝 ^^ 希望有一些简单的东西可以节省我开发简单分析、统计等所需的时间。谢谢你的回答。
    【解决方案3】:

    出于这个原因,我写了 gem words_counted。您可以在rubywordcount.com 上查看演示。它有很多你提到的分析功能,还有一个主机更多。 API 有很好的文档记录,可以在 Github 上的自述文件中找到。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-05-04
      • 2010-10-10
      • 2019-06-04
      相关资源
      最近更新 更多