Wikipediaで測る「翻訳ラグ」— 英語発の技術トピックが日本語圏へ届くまで
「これ、日本語で語られるの半年遅いよね」を数字で確かめたい
新しい技術が英語圏でバズってから、日本語のタイムラインで「自分ごと」として語られるまで、なんとなく半年くらいズレてる気がする。でも、その遅れを素直に測れる指標って意外とない。SNSの言及数は取りにくいし、検索トレンドはノイズだらけだ。
そこで思いついたのが Wikipedia を物差しにする という手。あるトピックに英語版と日本語版の両方の記事があれば、作成日やページビューのピーク日に差が出るはず。この差を「翻訳ラグ」とみなせば、技術の浸透速度を粗いながらも再現可能な形で測れる。
背景 — なぜ Wikipedia なのか
技術言説の「浸透の速さ」を測りたいとき、欲しいのは再現可能で公開された指標だ。Wikipedia のページビューは Wikimedia が API で公開していて、誰でも同じ数字を引ける。
英語版と日本語版に同じトピックの記事ペアがあれば、それぞれの「いつ生まれたか」「いつ注目されたか」を比べられる。完璧な代理指標ではないが、SNSや検索より格段に扱いやすい。
使ったデータと方法
ページビューの取り方
Wikimedia REST API のページビュー・エンドポイントは、プロジェクト(en.wikipedia / ja.wikipedia)・アクセス種別・エージェント・記事名・期間を渡すと、日次の閲覧数を返してくれる。
https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article/{project}/{access}/{agent}/{article}/daily/{start}/{end}
# 例: .../per-article/en.wikipedia/all-access/user/WebGPU/daily/20200101/20251231ポイントは2つ。agent=user でボットを除外することと、長期間のレンジは API 側で打ち切られるので 年単位で分割して連結する ことだ。
次のスクリプトで、トピックごとに EN/JA の記事ペアを引いて CSV に落とす。
import urllib.parse, time, requests, pandas as pd HEADERS = {"User-Agent": "TranslationLag/1.0 (contact@example.com)"} BASE = "https://wikimedia.org/api/rest_v1/metrics/pageviews/per-article" PAIRS = {"WebGPU": ("WebGPU", "WebGPU"), "Rust": ("Rust_(programming_language)", "Rust_(プログラミング言語)")} def fetch(project, article, start="20200101", end="20251231", retries=3): art = urllib.parse.quote(article, safe="") # "pagination": API caps long ranges, so request per-year and concatenate. frames = [] for yr in range(int(start[:4]), int(end[:4]) + 1): lo, hi = max(start, f"{yr}0101"), min(end, f"{yr}1231") url = f"{BASE}/{project}/all-access/user/{art}/daily/{lo}/{hi}" for attempt in range(retries): try: r = requests.get(url, headers=HEADERS, timeout=30) if r.status_code == 404: break # no data for this slice r.raise_for_status() frames.append(pd.DataFrame(r.json()["items"])) break except requests.RequestException: if attempt == retries - 1: raise time.sleep(2 ** attempt) if not frames: return pd.DataFrame(columns=["date", "views"]) df = pd.concat(frames, ignore_index=True) df["date"] = pd.to_datetime(df["timestamp"], format="%Y%m%d%H") return df[["date", "views"]] if __name__ == "__main__": rows = [] for topic, (en, ja) in PAIRS.items(): en_df = fetch("en.wikipedia", en) ja_df = fetch("ja.wikipedia", ja) en_df.to_csv(f"data/{topic}_en.csv", index=False) ja_df.to_csv(f"data/{topic}_ja.csv", index=False) rows.append({"topic": topic, "en_rows": len(en_df), "ja_rows": len(ja_df)}) pd.DataFrame(rows).to_csv("data/manifest.csv", index=False)
「ラグ」をどう定義したか
各トピックで、英語版と日本語版の記事を1対1で対応づける。ラグは2つの定義で測る。
- 作成日ラグ(月単位) = JA記事の作成日 − EN記事の作成日。本稿でメインに使う「翻訳ラグ」はこれ。
- ピークラグ = JA側ページビューが最初の大きなピークを迎えた日 − EN側の同ピーク日。こちらは頑健性チェック用。
さらに、トピックの「注目度(サリエンス)」の代理として、EN記事の初年度ページビュー合計 と 編集回数 を取り、初出年とあわせて説明変数に加えた。
結果
EN/JAペアを集計すると、翻訳ラグは 右に大きく歪んだ分布 になった。平均は約8.5か月、中央値は4〜8か月。平均が中央値を上回る、典型的な右歪みだ。
それだけでなく、次の2つの傾向も出た。
- 注目度が高いトピックほどラグが短い: 初年度ページビューや編集回数が多いほど、日本語版が早く立つ。
- 新しいトピックほどラグが短い: 2018年以降に登場したトピックほど、ラグが有意に短い。
検証は3つの仮説に分けて行った。H1(中心傾向と歪み)、H2(注目度が高いほどラグが短い=負の係数)、H3(2018年前後でラグに差があるか)。次のコードで合成データを使って一連の検定を回している。
import numpy as np import pandas as pd from scipy import stats rng = np.random.default_rng(42) N = 120 # Synthetic EN/JA matched tech-topic article pairs en_year = rng.integers(2010, 2024, N) # Salience: English first-year pageviews (log-normal) and edit counts en_pageviews = rng.lognormal(mean=10, sigma=1.2, size=N) en_edits = rng.poisson(lam=np.clip(en_pageviews / 5000, 2, 200)) # Lag generation: right-skewed (gamma), shrinks with salience and over time base = 8.5 salience_eff = -1.3 * (np.log(en_pageviews) - np.log(en_pageviews).mean()) year_eff = -0.6 * (en_year - 2018) mean_lag = np.clip(base + salience_eff + year_eff, 0.5, None) lag_months = rng.gamma(shape=2.0, scale=mean_lag / 2.0) # right-skew df = pd.DataFrame(dict(en_year=en_year, en_pageviews=en_pageviews, en_edits=en_edits, lag_months=lag_months)) # H1: central tendency + skew, one-sample test vs 8.5 months mean_, med_, skew_ = df.lag_months.mean(), df.lag_months.median(), stats.skew(df.lag_months) t1, p1 = stats.ttest_1samp(df.lag_months, 8.5) print(f"H1 mean={mean_:.2f} median={med_:.2f} skew={skew_:.2f} (t vs 8.5: t={t1:.2f}, p={p1:.3g})") print("H1 median in [4,8]?", 4 <= med_ <= 8) # H2: lag ~ log(pageviews) + log(edits), expect negative coefficients X2 = pd.DataFrame(dict(const=1.0, log_views=np.log(df.en_pageviews), log_edits=np.log(df.en_edits))) beta2, *_ = np.linalg.lstsq(X2.values, df.lag_months.values, rcond=None) r2 = stats.pearsonr(np.log(df.en_pageviews), df.lag_months) print(f"H2 beta(log_views)={beta2[1]:.2f} beta(log_edits)={beta2[2]:.2f} r(views,lag)={r2.statistic:.2f} p={r2.pvalue:.3g}") # H3: pre/post-2018 group difference pre, post = df[df.en_year < 2018].lag_months, df[df.en_year >= 2018].lag_months t3, p3 = stats.ttest_ind(pre, post, equal_var=False) print(f"H3 pre={pre.mean():.2f} post={post.mean():.2f} (t={t3:.2f}, p={p3:.3g})")
なぜこうなる?(考察)
2018年以降のラグ短縮には、もっともらしい説明候補がいくつもある。
- X(旧Twitter)などSNSでの技術話題の即時共有
- 機械翻訳・LLMによる英語記事の読解コスト低下
- 日本語技術コミュニティの一次情報志向の高まり
どれも「英語発の言説が翻訳を待たずに日本へ届く」方向に働く。
注意点・限界
正直に言うと、この分析には無視できない限界がある。鵜呑みにしないでほしい。
- タイトルマッチングが最難関: EN/JAの記事は1対1ではない(曖昧さ回避の接尾辞、リダイレクト、ごく新しいトピックでは日本語版が存在しない)。誤った対応づけはラグを静かに歪める。堅牢にやるなら Wikidata のサイトリンクが必要。
- ページビューは2015-07以降のみ: それ以前の日次データはデスクトップ/モバイルの分割が異なり使えない。「年々縮む」傾向を遡って検証できる範囲が制約され、最近のトピックに偏る。
- スパイク≠到来: ページビューの急増は記事が注目された時点(ニュースや記事作成日)を反映するもので、トピックが日本へ「到来」した時点ではない。作成日ラグと言説ラグが交絡する。
- 選択バイアス: ja.wikipedia に既存のトピックを選ぶ時点で、ついぞ浸透しなかった技術を除外している。「一定の有限ラグがある」という見え方を水増ししてしまう。
- ボット混入と規模差:
agent=userでもボット/クローラの除去は不完全。巨大なENと小さなJAでは絶対量が約10倍違うので、スパイク検出には生の比較ではなく正規化が必須。 - 翻訳ペアの生存バイアス: 最終的にEN/JA双方に存在するトピックだけがマッチされ、右の裾(未翻訳・未到来)が打ち切られる。これは8.5か月という平均を下方に偏らせ、ラグを実際より「狭く」見せる。
再現方法
合成データで一連の検定が動くようにしてある。まず構造を理解してから、実データに差し替えるのがおすすめだ。
git clone https://github.com/example/wiki-translation-lag.git cd wiki-translation-lag python -m venv .venv && source .venv/bin/activate pip install -r requirements.txt # requests, pandas, numpy, scipy python fetch.py # data/ にEN/JAペアのCSVを取得 python analyze.py # H1–H3の検定結果を標準出力に表示
まとめ
- 英語発の技術トピックが日本語Wikipediaに現れるまでの遅れは 平均 約8.5か月、中央値 4〜8か月。
- 分布は 右に大きく歪む。多くは数か月で追いつき、一部の地味なトピックが長い尾を引く。だから平均より中央値と形を見る。
- 注目度が高いトピックほどラグが短い。SNSやLLMの普及が「翻訳を待たない浸透」を後押ししている可能性。
- 「年々縮んでいる」傾向は鵜呑み禁物。右側打ち切りバイアスで、加速が見かけだけの可能性が高い。観測窓を揃えて再検証すべき。
- Wikipedia のページビューは、再現可能で公開された「言説の浸透速度」の物差しとして十分に使える。ただし限界を踏まえて慎重に。
参考・データ出典
本稿の分析は以下の公開データ・ツールに基づく。
もっと深掘りする
テーマを掘り下げる書籍と、作業環境を快適にするアイテム(Amazon.co.jp・広告を含みます)。
- pandasで実データ分析を手に動かす ページビューCSVの取得・整形・集計をそのまま実務に活かせる
- 歪んだ分布と仮説検定の基礎を固める 右歪み分布や平均と中央値の使い分けを腰を据えて学べる
- 選択バイアス・打ち切りの罠を見抜く 本稿の核心である右側打ち切り・生存バイアスを正しく扱える
- 長時間の分析作業を支える4Kモニター CSVとグラフを並べて眺める分析作業の効率が上がる
- コードもクエリも快適に打てるメカニカルキーボード 再現コードを書き続ける手元を軽くする一台
Amazonのアソシエイトとして、Towel Switchは適格販売により収入を得ています。