概要
生き物への興味・関心の方向性も様々あると思いますが、Wikipediaの記事の更新頻度を見ると、その傾向の一端がうかがえるのではと思い、調べることにしました。
今回は例として、"Cat","Dog"の比較を行います。
検索ボリューム
直近の関心度合いを調査するとき、検索された量は一つの参考になるので、Wikipediaを身肉前に、Google Trendsにて見てみます。
過去5年、ほぼ定常的に、全世界だとDogが優位ですね。
ルーマニア、インドネシアはCat優位など、地域差もありそうなのでこれも調べると面白いかもです。
Wikipediaの更新頻度
ChatGPTさんに、更新頻度の調べ方を聞いたら、次のコードを出してきたので、ひとまずこのまま走らせます。
import requests
import pandas as pd
from datetime import datetime
def get_article_revisions(article_title):
url = "https://en.wikipedia.org/w/api.php"
params = {
"action": "query",
"prop": "revisions",
"titles": article_title,
"rvlimit": "max",
"rvprop": "timestamp|user",
"format": "json"
}
response = requests.get(url, params=params)
data = response.json()
revisions = data['query']['pages']
revs = []
for page_id in revisions:
revs.extend(revisions[page_id]['revisions'])
return revs
def calculate_edit_frequency(revisions):
dates = [datetime.strptime(rev['timestamp'], '%Y-%m-%dT%H:%M:%SZ') for rev in revisions]
df = pd.DataFrame(dates, columns=['timestamp'])
df['year_month'] = df['timestamp'].dt.to_period('M')
frequency = df['year_month'].value_counts().sort_index()
return frequency
article_title = "Cat" # Example article title
revisions = get_article_revisions(article_title)
frequency = calculate_edit_frequency(revisions)
print(frequency)
現時点(2024/8/5)で走らせると、
year_month
2022-06 16
2022-07 8
2022-08 9
2022-09 20
2022-10 13
2022-11 23
2022-12 33
2023-01 21
2023-02 22
2023-03 4
2023-04 7
2023-05 6
2023-06 8
2023-07 5
2023-08 25
2023-09 22
2023-10 44
2023-11 44
2023-12 21
2024-01 13
2024-02 17
2024-03 22
2024-04 22
2024-05 33
2024-06 10
2024-07 25
2024-08 7
Freq: M, Name: count, dtype: int64
このように出力されます。合計が500なのでAPIから最新の500件の更新日時が取れているようです。問題なさそうなので、["Cat","Dog"]でそれぞれ出力して、比較します。
recent_updates = pd.DataFrame([])
articles = ["Cat","Dog"]
for article_title in articles:
revisions = get_article_revisions(article_title)
frequency = calculate_edit_frequency(revisions)
df = pd.DataFrame(frequency)
df.columns=[article_title]
recent_updates = pd.concat([recent_updates,df],axis=1)
recent_updates = recent_updates.sort_index()
recent_updates.plot()
直近500件の更新でみると、Catのほうが直近に更新されていて、Dogのほうが500件前の更新日が過去にさかのぼります。Dogが2024に追い越しているようにも見えます。
検索ボリュームと比べると、記事の更新は変動が大きいです。一方で、検索とは異なる傾向が見えているので、とらえている現象もおそらく別で、使い道もありそうかと思います。
今回は以上です。