1

私はいくつかの機械学習技術を試しています。この場合、クラスタリング用のPSO-KMeanです。

Stack Exchange API を起動してタグのリストと各タグの数を取得し、それを「タグ スペース」内の各サイトの位置を表す float の配列に変換してテストすることを考えました。

Py-Stack-Exchangeを使用しています

from stackauth import StackAuth
import stackexchange 

site_data = {}
n_sites= 20
for site_auth in StackAuth().sites()[3:n_sites+3]: #Skip big 3
    site=site_auth.get_site()
    site_tags = {}
    for tag in site.all_tags():
        site_tags[(tag.name)]=tag.count
    site_data[site.domain] = site_tags

数回いじった後 、これは10,000リクエストの制限を超えたに違いありません。StackExchangeError: 502 [throttle_violation]: too many requests from this IP, more requests available in 81719 seconds

したがって、サイト上のすべてのタグに対してリクエストを行って、そのカウントを取得していると思います。これは誰にとっても良くありません。私にとっては遅く、Stack Exchange Infrastructure での作業が増えます。サイトごとに 1 ヒットで情報を取得する方法が必要だと思いますが、それを解決するための API に精通していません。

4

1 に答える 1

0

1 回の API 呼び出しだけですべてのタグをプルすることはできません。Stack Overflow だけでも、この回答の時点で38,484 個のタグがあります。1 ページあたり 100 個のタグがある場合、385 回の呼び出しを行う必要があります。

この問題に対する API の代わりに、データ エクスプローラーを利用することもできます。詳細は省略しますが、Stack Overflow のすべてのタグ情報を取得する非常に単純なクエリを紹介します。

select * from tags

この情報は毎週更新されるため、実際のデータではありません。

最後に、データ ダンプをオフライン分析に使用できます。これは、Stack Exchange が四半期ごとに (およそ) 提供する大規模なアーカイブです。幸いなことに、最新のダンプは 2014 年 9 月のものなので、かなり最新です。

于 2014-10-01T19:46:03.717 に答える