Discourse 的词云插件?

Discourse 有词云插件吗?

Carl

3 个赞

没有……您是有什么特定原因想要一个吗?打算怎么使用呢?

6 个赞

这会有两个好处。首先,一个可点击的词云,点击某个词(例如“订阅者”)后,可以显示所有匹配该词的议题。

其次,你可以像这样展示其他类型的搜索,比如热门发帖者,或者任何你需要的内容。

这或许可以作为一个定时任务来运行,每天一次或更频繁。

1 个赞

我觉得这个主意很有趣 :game_die:……于是我就把它做出来了*

目前它还处于“刚刚能跑”的非常早期阶段,需要大量优化,增加更多选项,可能还需要添加点击功能:

它会在你的汉堡菜单中添加一个链接。:tada:

:warning: 请注意,当前它会从所有帖子中生成词频统计,无论帖子类型和位置如何。这实际上可能造成一种绕弯子的轻微隐私泄露(或许需要添加一些额外的安全措施,以排除来自私密区域帖子中的词汇)。不过,你必须登录后才能查看并访问这些数据……而且词汇是以 SVG 形式渲染的,只显示前几百个高频词,因此对大多数站点来说不太可能构成太大隐患。我会继续改进以提升安全性,但目前的实现方式查询速度非常快。

祝大家玩得开心!:man_dancing:

*它利用了一些相当巧妙的现有库,我已在仓库中注明了出处。特别感谢 @DiscourseMetrics,我借鉴了他的 查询

15 个赞

太棒了。我想你也需要在词云中排除某些词语吧?

1 个赞

当然,这需要加入大量合理的排除规则,同时正则表达式也需要优化,以去除 Markdown 格式等内容,而不至于让实现过于复杂。这只是一个起点。我刚刚添加了一些颜色。

2 个赞

不过说清楚一点,这真的很棒,哈哈。

1 个赞

已添加本地化的忽略词列表:

这将使结果更加有趣……

此外,我还添加了大量的清理逻辑,因此结果要好得多。

3 个赞

太棒了!:heart_eyes_cat: 我很喜欢这个尝试,做得很好。如果我可以提出一些功能请求:

  • 将汉堡菜单链接设为可选(我喜欢将其作为彩蛋的想法)
  • 创建分类设置,以便仅包含选定的分类
  • 提供分类路由,以便您可以生成仅包含单个分类及其子分类的词云,例如 /wordcloud/category

以下是它在我所在社区论坛上的显示效果。

4 个赞

效果不错,需要进一步微调:

3 个赞

很好的反馈,谢谢!还有一些不错的点子!

是的,这听起来是个不错的方案。目前我正忙于客户项目(大约 3 米深的坑里),但会在下一个版本中考虑分类选择功能。

2 个赞

注意:词频统计现在每小时更新一次(这可能仍然过于频繁,但现阶段有助于我们在经历大量初期代码迭代时,更方便地检查生产环境中的变化)。

注意 2:目前尚未考虑英语以外的其他语言(显然也未经过测试)。当前的词处理逻辑在某些语言中可能无法正常工作。欢迎提出建议或提交拉取请求(PR)。

3 个赞

太棒了!这是一个只包含最相关类别的更新版词云。

我的社区规模较小,而且还算比较新。老实说,词云中呈现的信息虽然看起来不错,但并没有特别有意义或实用。我想它或许可以用在关于社区的回顾性话题中作为视觉素材,或者类似用途。很期待看到大家更多使用它的示例。

其中包含的一些词汇很常见且无意义,例如 “youd”、“off”、“got”、“add” 等。我在想,“词云忽略部分”设置(我的设置是 100,即默认值)是否发挥了作用?或者是否有其他更合适的忽略词列表?

1 个赞

是的,我很乐意考虑使用更大的列表(我曾找到一份包含 200 个单词的列表,但后来转而采用 维基百科 作为更“权威的来源”)。

1 个赞

好的,我已经:

  • 将忽略列表扩展至 300 个单词,使用的列表可在此处找到
  • 优化了正则表达式以去除引号(这样单词“quote”就不会频繁出现了!)
  • 移除了对剩余前十大单词的任意剔除,这在添加忽略列表后已变得多余。

注意:如果仍有您希望排除的单词,只需将它们添加到以下内容的开头:

就像我在这里做的那样(例如“ive”、“its”、“topic”、“post”)

若要更快地查看任何更改的影响,只需从 Sidekiq 重新触发该任务:

暂时就这些,我建议。我可能会创建一个专门的议题。

3 个赞

好的,你可能会喜欢这个:

更新:我现在简化了忽略列表的设置方式,不再需要设置“忽略列表使用比例”,你只需通过本地化的原生设置来删除或添加忽略列表中的词语:

2 个赞

需要卸载旧版本才能获取此更新吗?

1 个赞

您通常只需升级插件即可。遇到问题了吗?

抱歉,我们已经解决了。:sunglasses:

1 个赞

完全没问题 :+1: