繁体   English   中英

在ActiveRecord中寻找常用词/短语

[英]Seeking Common Words/Phrases in ActiveRecord

在生产中使用PG进行Rails开发,在开发中使用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)

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM