Plugin de nuvem de palavras para Discourse?

Existe um plugin de nuvem de palavras para o Discourse?

Carl

3 curtidas

Não há… há algum motivo específico para você querer um? Como ele seria usado?

6 curtidas

Seria legal de duas maneiras. Primeiro, uma nuvem de palavras clicável que, ao ser clicada, exibiria todos os tópicos correspondentes a uma palavra como “assinante”.

Segundo, você poderia exibir outros tipos de pesquisas assim, como os principais postadores ou o que mais quiser.

Provavelmente poderia ser algo executado em uma tarefa cron uma vez por dia ou com mais frequência.

1 curtida

Achei que fosse uma ideia divertida :game_die: … então criei.*

Está em um estágio muito inicial de “apenas funcionando” e precisa de muita refinamento, opções adicionais e, possivelmente, alguma funcionalidade de clique:

Ele adiciona um link no seu Menu Hambúrguer. :tada:

:warning: Esteja ciente de que, atualmente, ele gera as estatísticas de palavras a partir de todas as Publicações, independentemente do tipo e da localização. Isso poderia efetivamente atuar como um pequeno vazamento de privacidade indireto (pode ser necessário adicionar algumas salvaguardas para excluir palavras de publicações em áreas privadas). No entanto, é preciso estar logado para vê-lo e acessar os dados … e as palavras são renderizadas como SVGs … e ele mostra apenas as x centenas de palavras mais frequentes, então é improvável que seja motivo de preocupação para a maioria dos sites. Vou trabalhar nisso para torná-lo mais seguro, mas dessa forma a consulta é executada muito rapidamente.

Aproveite. :man_dancing:

*Ele aproveita algumas bibliotecas existentes bastante inteligentes, que foram creditadas no repositório. Um agradecimento especial a @DiscourseMetrics, cuja consulta utilizei.

15 curtidas

Muito legal. Acho que você também gostaria de excluir certas palavras da nuvem de palavras, não é?

1 curtida

Claro, é necessário um conjunto completo de exclusões sensatas e as expressões regulares precisam ser ajustadas para remover a formatação Markdown etc., sem torná-las excessivamente complexas. Isso é apenas um começo. Acabei de adicionar um pouco de cor.

2 curtidas

Só para deixar claro, é incrível, haha

1 curtida

Adicionada uma lista localizada de palavras a ignorar:

o que deve tornar os resultados um pouco mais interessantes…

Também adicionei muita lógica de sanitização, para que o resultado fique muito melhor.

3 curtidas

Legal! :heart_eyes_cat: Gosto desse esforço. Bom trabalho. Se eu pudesse solicitar recursos:

  • tornar o link do menu hambúrguer opcional (gosto da ideia de que isso seja um easter egg)
  • criar uma configuração de categoria para incluir apenas categorias selecionadas
  • fornecer uma rota de categoria para que você possa gerar uma nuvem de palavras de apenas uma categoria e suas subcategorias, por exemplo, /wordcloud/category

Veja como fica no meu fórum de bairro.

4 curtidas

funciona bem, preciso ajustá-lo:

3 curtidas

Ótimo feedback, obrigado, e algumas boas ideias!

Sim, isso parece uma boa abordagem. Estou com 3 metros de profundidade em trabalho de cliente no momento, mas vou analisar a seleção de categoria para a próxima atualização.

2 curtidas
  • A seleção de categorias está em:

    FEATURE: restrict word stats to specific Categories · merefield/discourse-word-cloud@0777adc · GitHub

    Se você não selecionar nenhuma categoria (padrão), será feita uma varredura de todas as postagens do fórum (MPs e outras). Se você adicionar apenas uma categoria, as estatísticas de palavras serão restritas a ela, etc.

    image

  • Também há melhorias enormes nas expressões regulares (:sweat_smile: :stuck_out_tongue: ), que agora limpam bem os “raws” e eliminam a maior parte, senão toda, a formatação Markdown.

NB: As estatísticas de palavras são atualizadas a cada hora agora (o que provavelmente ainda é excessivo, mas, por enquanto, facilita a verificação de alterações em Produção, já que estamos passando por muita evolução inicial do código).

NB#2: Ainda não considerei outros idiomas além do inglês aqui (certamente não foi testado). A manipulação atual de palavras pode não funcionar bem em alguns idiomas. Sugestões e PRs são bem-vindas.

3 curtidas

Legal! Aqui está um wordle atualizado, incluindo apenas as categorias mais relevantes.

A minha é uma comunidade pequena e ainda bastante nova. Para ser honesto, porém, as informações apresentadas no wordle são bonitas, mas não são especialmente significativas ou úteis. Acho que poderiam ser usadas como uma visualização em um tópico de retrospectiva sobre a comunidade ou algo assim. Seria legal ver mais exemplos de como as pessoas usam isso.

Algumas das palavras incluídas são comuns e sem sentido, por exemplo: youd, off, got, add, etc. Eu me pergunto se a configuração “porção de palavras a ignorar na nuvem de palavras” (que está em 100 para mim, o padrão) está funcionando corretamente? Ou talvez exista outra lista melhor de palavras para ignorar?

1 curtida

Sim, estou feliz em considerar uma lista maior (eu encontrei uma lista de 200 palavras aqui, mas preferi usar a Wikipedia como uma fonte mais “autorizada”).

1 curtida

OK, eu:

  • expandi a lista de ignorados para 300 palavras, usando uma lista que encontrei aqui
  • aprimorei as regex para remover aspas (assim a palavra ‘quote’ não aparecia tanto!)
  • removi a eliminação arbitrária das dez palavras restantes mais frequentes, que se tornou redundante após a adição da lista de ignorados.

NB: se ainda houver palavras que você deseja excluir, basta adicioná-las ao início de:

como fiz aqui (por exemplo, ‘ive’, ‘its’, ‘topic’, ‘post’)

Para ver o impacto de quaisquer alterações mais rapidamente, basta reativar o trabalho no Sidekiq:

Por enquanto, é isso. Sugiro que eu possa criar um Tópico dedicado.

3 curtidas

Ok, você pode gostar disso:

Atualização: Agora simplifiquei a configuração da lista de ignorados, de modo que não há mais uma opção para a ‘porção’ da lista de ignorados utilizada. Basta excluir ou adicionar palavras à lista de ignorados usando a configuração nativa localizada:

https://github.com/merefield/discourse-word-cloud/commit/074e0902269e752c11c3c29018f8c68c813327d3

2 curtidas

Precisamos desinstalar a versão antiga para obter esta?

1 curtida

Você só deve precisar atualizar o plugin. Está tendo problemas?

Peço desculpas, já resolvemos. :sunglasses:

1 curtida

Sem problema algum :+1: