将来有望なトップ貢献者の特定

上昇中のトップ貢献者をどのように特定していますか?

アカウントのリストと貢献頻度を簡単に表示してトップ貢献者のリストを推測することはできますが、トップ貢献者になる方向に向かってトレンドになっているアカウントを特定する方法はありますか?

それらのアカウントをより良く「育成」できればと思います。例えば、リアクションで貢献を認識したり、「この回答が好き」といった返信をしたりするなどの簡単なアクションです。

「いいね!」 6

データエクスプローラーを使えば、多くの情報を引き出せると思います。トップ貢献者をどのように定義するかによりますが、例えばTL3(トラストレベル3)に近づいているユーザーを確認するには、このようなクエリを使用できます。Find the users which are more likely to become TL3 - #19 by ganncamp

「いいね!」 1

FYI、Claude(私は3.5 Sonnetを使用しています)を使ってかなり複雑なクエリを作成できます。特定の基準に基づいてユーザーにスコアを付けるクエリを作成しましたが、望む結果を得るには多くのやり取りが必要でしたが、最終的には結果に満足しています。最も難しいのは、使用する基準を理解することです。

これについてはOpenAIとGeminiも試しましたが、Claudeが圧倒的な勝者でした。

「いいね!」 4

最初の試みはリーダーボードでしたが、純粋な量(「まだ修正されましたか?まだ修正されましたか?まだ修正されましたか?こんにちは?」のようなもの)を、質よりも重視しているようです。確かに、「質」はアルゴリズム化するのが難しいですが、(リーダーボードの投稿を抑制する、自分のトピックへの投稿に感謝する/282822)には明らかな調整の余地があります。

真に役立つユーザーを特定するために、私たちは次のようなことを始めています。

他のユーザーが最初に回答したスレッドを探す
-- 目標:OP以外の最初の返信がSonarSourcerではないトピックを見つける

WITH

SonarSourcers AS (
    SELECT u.id AS user_id
    FROM groups g
    INNER JOIN group_users gu ON g.id=gu.group_id
    INNER JOIN users u ON u.id = gu.user_id
    WHERE g.name='sonarsourcers'
),

Tagged_topics AS (
    SELECT tt.topic_id
    FROM topic_tags tt
    JOIN tags t on t.id=tt.tag_id
    WHERE name = 'me-too'
)


-- 通常のユーザーが作成した「通常の」トピックを見つける
topic_user AS (
    SELECT id as topic_id, user_id, created_at
    FROM topics
    LEFT JOIN SonarSourcers ss USING(user_id)
    LEFT JOIN tagged_topics tt on topics.id = tt.topic_id
    WHERE ss.user_id IS NULL  -- SonarSourcersが開始したトピックを除外
        AND tt.topic_id IS NULL -- me-tooタグが付いたトピックを除外
        AND user_id > 0  -- DiscoBotの「ようこそ」PM/チュートリアルスレッドを除外
        AND visible = TRUE
        AND archived = FALSE
        AND archetype='regular'
        AND created_at::DATE > '2023-07-01'
),

-- ユーザーのトピックに対する最初のOP以外の返信を見つける
min_response AS (
    SELECT p.topic_id, tu.created_at, MIN(post_number) as post_number
    FROM posts p
    JOIN topic_user tu USING(topic_id)
    WHERE p.post_type = 1
        AND p.user_id != tu.user_id
        AND p.post_number > 1
        AND p.hidden = false
        AND p.deleted_at IS NULL
    GROUP BY topic_id, tu.created_at
)

SELECT p.topic_id, p.user_id, mr.created_at::DATE as thread_date
FROM posts p
JOIN min_response mr ON p.topic_id = mr.topic_id AND p.post_number=mr.post_number
LEFT JOIN SonarSourcers ss ON p.user_id=ss.user_id
LEFT JOIN user_badges ub on p.id = ub.post_id and ub.badge_id=110
WHERE ss.user_id IS NULL -- SonarSourcerが最初に返信したトピックを除外
    AND ub.user_id IS NULL -- すでにバッジが付与されているトピックを除外
ORDER BY mr.created_at DESC

これらのスレッドを特定したら、ユーザーの返信を評価し、応答したユーザーに「ユーザーヘルプユーザー」バッジを授与するか、スレッドに(スタッフ以外には見えない)「me-too」タグを付けます。(ちなみに、このユーザー応答レポートは、クラウドサービスのインシデントを迅速に発見するという嬉しい副作用もあります。:joy:

そこから、役立つユーザーをさらに報酬し(ブロンズバッジ5個につきシルバーバッジ1個/283284)、さらに育成するために特定することが容易になります。

「いいね!」 5

これまでの回答はとても気に入っています :raised_hands:

一番難しいのは、トップ貢献者を定義すること、そして定性的なデータではなく定量的なデータを測定する属性を定義することだと思います。

例えば、50回返信して、そのうち90%が解決策としてマークされているメンバーと、100回貢献して、そのうち10%しか解決策としてマークされていないメンバーのどちらが、よりトップ貢献者と言えるでしょうか?

現時点では、コミュニティで最も多く見かけるメンバーがトップ貢献者であり、比較的容易に特定できます。しかし、それに近い、あるいはその道を進んでいるメンバーを特定するために、より具体的な基準が必要になると思います。

「いいね!」 4

セルフホストまたはサポートされているプランをご利用の場合、ゲーミフィケーションプラグインを検討されましたか?

「いいね!」 2

はい。リーダーボードは、よりアクティブなユーザーを確認するのに最適な方法です。たとえば、ほとんどのフォーラムでトップポスターが上位10位を占めています。これらのポジションは、主にレギュラーやリーダーが占めており、その高いアクティビティにより上位にランクインし、昇格しています。

「いいね!」 2

リーダーボードからスタッフを除外するようにしたいだけです。:wink:

「いいね!」 2

まさにその通りだと思います。これは主に定量的なものではなく、定性的なものです。

月に数回の投稿で非常に役立つ貢献者もいれば、週に数十回の投稿があっても役に立たない貢献者もいました。リーダーボードは、良質なものとそうでないものを区別するための素晴らしい出発点ですが、最終的にはコミュニティマネージャーとしてのあなたの判断になります :slight_smile:

「いいね!」 3

私は通常、3つの定量的なデータポイントを見ています。

  • 前期間のリーダーボード。
  • 前期間のユーザーボード(投稿数、いいね数、訪問数で並べ替え)。
  • プロフィールを確認し、どの分野で最も貢献しているかを把握します。

そして、3つの定性的な側面です。

  • 投稿の種類:質問ですか?回答ですか?
  • 投稿の質:短いコメントですか?価値のある貢献ですか?
  • 投稿の雰囲気:辛辣ですか、それとも理解がありますか?あなたの文化に沿っていますか、それとも反していますか?
「いいね!」 5