最近のおおよその回答率をJulia言語を使って簡易的に調べてみました。
teratailのhtmlのソースを見たところ,
feed=latest
で質問が最新から20件ずつ取得可能
- 1ページ20件の質問
"answer_count":数
が回答数で,"answer_count":0
のマッチ数で未回答数が分かる
- ページは500ページまで
ということで,実装してみました。
julia
1import HTTP
2using StringViews
3using ProgressMeter
4
5function print_teratail_answer_rate()
6 n = 500
7 num_of_NA = 0;
8 @showprogress for k in 1:n
9 http = HTTP.get("https://teratail.com/?feed=latest&page=$k")
10 s = StringView(http.body)
11 num_of_NA += eachmatch(r"\"answer_count\":0", s) |> collect |> length
12 end
13
14 println(("Last $(n*20) questions," *
15 " No answer's count: $(num_of_NA)," *
16 " Answered rate: $((n*20 - num_of_NA) / (n*20) * 100)%"));
17end
18
結果は次の通りです。直近1万件のうち1件以上の回答がある質問の割合は69.65%
でした。
かかった時間から,だいたい1秒に2回アクセスということで,夜中とはいえサーバーに負荷をかけてしまいすみませんでした。
julia> print_teratail_answer_rate()
Progress: 100%|████████████████████████████████| Time: 0:04:17
Last 10000 questions, No answer's count: 3035, Answered rate: 69.65%

※ここからは,個人の想像が含まれます
上の結果から「最近の回答率はおよそ70%程度」ということが分かります。
- 回答日時点の回答率は86.12%
- リニューアル前は87.2%
- 昔の回答率は95%程度だった
等を考え,少し前に8周年を迎えたことを考えると,
およそ1年の質問数が同じと仮定し,8.5年で次のような推移だと回答率は全体の平均で
julia> (95 + 95 + 93 + 90 + 87 + 82 + 79 + 76 + 70*0.5)/8.5
86.11764705882354
となり,リニューアル直前回答率は
julia> (95 + 95 + 93 + 90 + 87 + 82 + 79 + 76)/8
87.125
となって,
公式の言う「リニューアル直前は87.2%」「現在の回答率は86.12%」
そして「ユーザーが現在体感している回答率はそれよりずっと低い」というこれらの事象は
おおよそ全て正しい
のでは? ということになりました。
現在およそ3ヵ月で1万件なので,一年 3 4万件,8.5年でおよそ25 34万件,
1日あたりおよそ100件です。
1万件あると,1件で回答率が0.01%変わります。それの25 34倍だと回答率が0.01%変わるのは25 34件です。
全体の回答率86.12%と最近の回答率約70%との違いはおよそ16%であり,
1日あたりおよそ100件の質問なので,16件ほどの差があり,現状ではおよそ2日につき0.01%ずつ下がると思われますが,実際には昔より質問数がかなり減っていると思われるので,結局0.01%下がるのは3日程度かかっていると思われます。
これは,全体の回答率が1%下がるのにおよそ1年かかるということであり,全体の回答率はこの2,3年で80%を切ることも無さそうな感じです。
ですので現在の状況では,回答率を固定値として1年に1回ぐらい更新するぐらいでも1%程度しか変わらないという感じではないかと思います。