【问题标题】:Use ruby to create a list of commonly used words or phrases使用 ruby​​ 创建常用单词或短语的列表
【发布时间】:2013-05-22 18:35:48
【问题描述】:

寻找一些关于从 nosql 数据库中的一堆条目中生成常用单词和短语列表的建议。基本上,我们有一堆由某人发的帖子,我们想告诉他们“嘿,你经常使用这些词/短语”。

我对这个有点难过。

我的应用程序是 ruby​​ on rails、backbone-js 和 redis。

【问题讨论】:

  • 识别字母序列很简单(不完全是单词),但是如果要提取真实的单词和短语,则需要进行自然语言处理和数据挖掘。这并不容易。
  • 我会为您需要支持的语言(只是英语?)集成一个像 ruby-stemmer gem 这样的词干库。我没用过图书馆。您可能希望离线计算每个用户的单词计数并将结果存储在缓存中,例如,您可以使用 redis 存储单词和计数的哈希值。

标签: ruby-on-rails ruby redis


【解决方案1】:

由于不清楚帖子的存储方式,我假设您可以获得所有帖子的数组。

查找最常见的不常用词的简单算法如下:遍历所有帖子的数组,然后从除单词之外的任何内容中删除帖子并将其拆分为单词。遍历条目中的所有单词,并将您看到该单词的次数加 1。对所有条目中的所有单词完成此操作后,您将获得一个包含所有单词出现次数的哈希值。删除最常用的词,这里以100 common words 为例。您可能应该在您的应用程序中使用更多。按出现次数对它们进行排序,您将得到最常出现的单词。

已实现here。它不处理您可能想要的postspost 之类的情况。您可以查看 Rails 如何实现 String#singular 来获得这种行为。

如果您想找到更有趣的常用短语,您可能必须使用@sawa 在评论中指出的某种自然语言处理。我想不出一个足够快的解决方案。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-06
  • 1970-01-01
相关资源
最近更新 更多