翻訳プラグインを使用して翻訳コストを見積もる方法

フォーラムのコスト見積もり方法を以下に説明します。すべてのクエリは Data Explorer 向けです。

投稿あたりの平均文字数の見積もり

最後に確認した際、プラグインは調理済みテキストを翻訳サービスに送信していました。

SELECT AVG(LENGTH(p.cooked))
  FROM posts AS p
  JOIN topics AS t ON p.topic_id = t.id
 WHERE t.archetype != 'private_message'

ユーザー訪問あたりに読まれた投稿数の見積もり

比較的最近の推定値を得るため、過去 30 日間のデータを参照しました。

-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30

WITH t AS (
    SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
        CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)

SELECT AVG(posts_read)
  FROM user_visits
  JOIN t ON visited_at > t.START AND visited_at < t.END

過去 30 日間のユーザー訪問数

-- [params]
-- int :from_days_ago = 0
-- int :duration_days = 30

WITH t AS (
    SELECT CURRENT_TIMESTAMP - ((:from_days_ago + :duration_days) * (INTERVAL '1 days')) AS START,
        CURRENT_TIMESTAMP - (:from_days_ago * (INTERVAL '1 days')) AS END
)

SELECT COUNT(1)
  FROM user_visits
  JOIN t ON visited_at > t.START AND visited_at < t.END

過去 30 日間に読まれた文字数の見積もり

上記 3 つの数値を掛け合わせることで、過去 30 日間に読まれた投稿の調理済み文字数の推定値を得ました。

非主要言語ユーザー数の見積もり

当フォーラムの主要言語は英語であるため、Google アナリティクスを使用して、ブラウザ設定が英語以外の言語になっているユーザーの割合を把握しました。

最終的な見積もり

その後、現在の非英語訪問者の割合を「一般的なケース」と仮定し、それを半分にした値を低めの推定値、2 倍にした値を高めの推定値として、低/中/高の 3 つの見積もりを作成しました。これにより、30 日間の文字数の低/中/高の値が得られ、それを翻訳サービスの文字単価(X 文字あたりの料金)に乗算しました。

参考になれば幸いです!