在ActiveRecord中寻找常用词/短语

时间:2019-08-01 10:56:42

标签: ruby-on-rails

在生产中使用PG,但在开发中使用SQLite3。应用程式是一项有几个问题的问卷调查。每个问题的回答都有一个模型。我有一个查询,可分别提取每个问题的答案。

我希望能够从该ActiveRecord结果中挑选出常见的单词和/或短语来构建类似“单词云”的内容。有没有宝石可以做到这一点?否则,将有一个贯穿此的代码示例/教程。我不确定要寻找答案的搜索内容,但是搜索“词云”似乎会弹出前端设计技巧。我更关心获取数据。

1 个答案:

答案 0 :(得分:0)

您可以将字计数逻辑卸载到PSQL:
此查询应返回some_column的{​​{1}}中的每个单词以及其出现次数。

some_table

这可以通过ActiveRecord执行,如下所示:

SELECT word, count(*) AS word_count
FROM ( 
  SELECT regexp_split_to_table(some_column, '\s') as word
  FROM some_table
) t
GROUP BY word

您可以将其与magic_cloud gem(https://github.com/zverok/magic_cloud)结合使用以生成词云作为图像,如下所示:

result = ActiveRecord::Base.connection.exec_query(query)

或者,将单词作为JSON返回并使用您喜欢的任何JS可视化库对其进行处理。