在活动记录中查找常用单词/短语



Rails,生产中使用PG,但SQLite3在开发中。应用程序是一个包含几个问题的调查。我为每个问题回答都有一个模型。我有一个查询,可以单独提取每个问题的响应。

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

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

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

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

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

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

words = result.map {|k, v| [v['word'], v['word_count'] ]} #untested
cloud = MagicCloud::Cloud.new(words, rotate: :free, scale: :log)

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

最新更新