1334208672  はてな人力検索 ~ 算術的な、余りに文系的な ~

 リニューアル以後、ほぼ一ヶ月ごとの質問件数を概算しました。
 もっと簡単かつ正確に算出する手順(方程式)を教えてください。
 
 試算表 ~ 質問件数(月別)一覧 ~
 
20110530-20110630 3600 Renewal
20110630-20110731 2600
20110731-20110830 2800
20110830-20110930 3000
20110930-20111031 2800
20111031-20111129 2200
20111129-20111230 2200
20111230-20120131 2100
20120131-20120228 2300
20120228-20120331 2500
20120331-20120411  900 Last Question
 
http://q.hatena.ne.jp/1334129663#c235812
 試算表 ~ 質問件数(年度別)一覧 ~
http://q.hatena.ne.jp/995116699 First Question
 

回答の条件
  • 1人3回まで
  • 13歳以上
  • 登録:2012/04/12 14:31:15
  • 終了:2012/04/19 02:38:32

回答(2件)

id:windofjuly No.1

うぃんど回答回数2625ベストアンサー獲得回数11492012/04/12 16:15:02

ポイント120pt

簡単に出来そうな例としてgoogleの検索結果を用いてみますと、
ばらつきはありますが、純増してるみたいですよ
(もう少し賢く検索してくれる人が出てくることを願ってのたたき台です)

期間結果URL
2011/ 5/30-
2011/ 6/30
2090http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F5%2F30%2Ccd_max%3A2011%2F6%2F30
2011/ 7/ 1-
2011/ 7/31
3130http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F7%2F1%2Ccd_max%3A2011%2F7%2F31
2011/ 8/ 1-
2011/ 8/31
3010http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F8%2F1%2Ccd_max%3A2011%2F8%2F31
2011/ 9/ 1-
2011/ 9/30
1480http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F9%2F1%2Ccd_max%3A2011%2F9%2F30
2011/10/ 1-
2011/10/31
3480http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F10%2F1%2Ccd_max%3A2011%2F10%2F31
2011/11/ 1-
2011/11/30
3400http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F11%2F1%2Ccd_max%3A2011%2F11%2F30
2011/12/ 1-
2011/12/31
2610http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F12%2F1%2Ccd_max%3A2011%2F12%2F31
2011/ 1/ 1-
2011/ 1/31
1220http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2012%2F1%2F1%2Ccd_max%3A2012%2F1%2F31
2012/ 2/ 1-
2012/ 2/29
3060http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2012%2F2%2F1%2Ccd_max%3A2012%2F2%2F29
2012/ 3/ 1-
2012/ 3/31
2330http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2012%2F3%2F1%2Ccd_max%3A2012%2F3%2F31
2012/ 4/ 1-
2012/ 4/31
1470http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2012%2F4%2F1%2Ccd_max%3A2012%2F4%2F30

 
比較用に下記も検索してみました
リニューアル前年

期間結果URL
2010/ 5/30-
2010/ 6/30
245http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F5%2F30%2Ccd_max%3A2010%2F6%2F30
2010/ 7/ 1-
2010/ 7/31
449http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F7%2F1%2Ccd_max%3A2010%2F7%2F31
2010/ 8/ 1-
2010/ 8/31
417http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F8%2F1%2Ccd_max%3A2010%2F8%2F31
2010/ 9/ 1-
2010/ 9/30
445http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F9%2F1%2Ccd_max%3A2010%2F9%2F30
2010/10/ 1-
2010/10/31
232http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F10%2F1%2Ccd_max%3A2010%2F10%2F31
2010/11/ 1-
2010/11/30
412http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F11%2F1%2Ccd_max%3A2010%2F11%2F30
2010/12/ 1-
2010/12/31
381http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F12%2F1%2Ccd_max%3A2010%2F12%2F31
2011/ 1/ 1-
2011/ 1/31
488http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F1%2F1%2Ccd_max%3A2011%2F1%2F31
2011/ 2/ 1-
2011/ 2/28
287http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F2%2F1%2Ccd_max%3A2011%2F2%2F28
2011/ 3/ 1-
2011/ 3/31
577http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F3%2F1%2Ccd_max%3A2011%2F3%2F31
2011/ 4/ 1-
2011/ 4/31
785http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2011%2F4%2F1%2Ccd_max%3A2011%2F4%2F30

さらに前 

期間結果URL
2009/ 5/30-
2009/ 6/30
451http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F5%2F30%2Ccd_max%3A2009%2F6%2F30
2009/ 7/ 1-
2009/ 7/31
1530http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F7%2F1%2Ccd_max%3A2009%2F7%2F31
2009/ 8/ 1-
2009/ 8/31
1930http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F8%2F1%2Ccd_max%3A2009%2F8%2F31
2009/ 9/ 1-
2009/ 9/30
1560http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F9%2F1%2Ccd_max%3A2009%2F9%2F30
2009/10/ 1-
2009/10/31
710http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F10%2F1%2Ccd_max%3A2009%2F10%2F31
2009/11/ 1-
2009/11/30
2020http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F11%2F1%2Ccd_max%3A2009%2F11%2F30
2009/12/ 1-
2009/12/31
2230http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2009%2F12%2F1%2Ccd_max%3A2009%2F12%2F31
2010/ 1/ 1-
2010/ 1/31
1340http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F1%2F1%2Ccd_max%3A2010%2F1%2F31
2010/ 2/ 1-
2010/ 2/28
426http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F2%2F1%2Ccd_max%3A2010%2F2%2F28
2010/ 3/ 1-
2010/ 3/31
695http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F3%2F1%2Ccd_max%3A2010%2F3%2F31
2010/ 4/ 1-
2010/ 4/31
512http://www.google.co.jp/search?q=allintitle:人力検索はてな+site:q.hatena.ne.jp/&tbs=cdr:1%2Ccd_min%3A2010%2F4%2F1%2Ccd_max%3A2010%2F4%2F30

 

id:adlib

 
 たしかに(たたき台として)着想は簡単ですが、作業は面倒ですね。
 しかし、はてなが率先して公開しないので、目安になります(謝々)。
 

2012/04/19 02:35:54
id:a-kuma3 No.2

a-kuma3回答回数4367ベストアンサー獲得回数18032012/04/12 23:30:29

ポイント180pt

正確さを求めるなら、プログラムでデータを抜くに勝る方法は無いと思います。
こんな感じで、データを抜いてみました(プログラムは後述します)。

  1. http://q.hatena.ne.jp/list でページを指定して、質問詳細の URL を手に入れる
  2. 質問詳細のページを取得して、質問や回答の情報を抜き出す

質問一覧からデータを抜き出している間にも、一覧は更新されていくので、多少、手でも作業しましたが、こんな感じのデータを取得できます。
f:id:a-kuma3:20120412231421p:image
F~H列は、Excel で集計するために、計算式を入れました。

このデータを元に、月単位の質問者数を集計したのが以下になります。

年月ポイント有りポイント無し総質問数
2010/121182 1182
2011/01123511236
2011/021171 1171
2011/031287 1287
2011/041085 1085
2011/0510962421338
2011/0696017282688
2011/0775913842143
2011/0875616582414
2011/0966817492417
2011/1064616872333
2011/1159314021995
2011/1254413261870
2012/0154211531695
2012/0258613811967
2012/0355014942044

データの抜き出しに、とても時間がかかるので 2010年12月からのデータになってます。

日単位のデータをグラフにしたものは、別の質問の回答で書いてますので、そちらも良かったら。
http://q.hatena.ne.jp/1334129663#a1141936

最後に、データを抜き出したプログラムのソースを貼りつけておきます。
言語は Ruby です。
やっつけで作ったので、汚いですけど =)

require 'net/http'
require 'uri'

Net::HTTP.version_1_1

MAY_BE_CONTINUE = 100


RE_Q1 = %r|<span class="user-name"><a href="[^"]+">([^<]+)</a>|
RE_Q2 = %r|<div class="question-badge"><span class="badge-point">.*class="badge-point-count">(\d+)<span>|
RE_Q3 = %r|<span class="info-time">[^0-9]*([0-9/: ]+)</span>|
RE_A = %r|class="user-name"><a href="/[^>]+/">([^<]+).*class="timestamp"><a href=[^>]+>([0-9/: ]+)</a>|
           

def extract_data(download_url)

    msg = "loading #{download_url} ..."
    $stderr.print msg + "\r"

    response = nil
    begin
        response = http_get(download_url,10)
    rescue Object => err
        $stderr.print "\n"
        $stderr.print "Skip - " + err + "\n\n"
        return
    end

    first = true
    response.body.each_line { |line|
        userid = ""
        point = 0
        if line =~ %r|<li class="list-question-jinriki clearfix[^"]*"><a href="/(\d+)"| then
            url = "http://q.hatena.ne.jp/#{$1}"
                q_id = $1
            rrr = http_get(url,10)
            qqq = false
            rrr.body.each_line { |line2|
                if line2 =~ /class="questioner-title"/ then
                    if RE_Q1 =~ line2 then
                        userid = $1
                    end
                    qqq = true
                end
                if line2 =~ /class="question-badge"/ then
                    if RE_Q2 =~ line2 then
                        point = $1
                    else
                        point = 0
                    end
                end
                if qqq && line2 =~ /class="subinfo info-time-container"/ then
                    if RE_Q3 =~ line2 then
                        puts "Q #{q_id} #{userid}   #{$1}   #{point}"
                    end
                    qqq = false
                end
                if line2 =~ /class="answer-title"/ then
                    if RE_A =~ line2 then
                        puts "A #{q_id} #{$1}   #{$2}"
                    end
                end
            }
        end
    }

    $stderr.print ' ' * msg.length + "\r"


    return MAY_BE_CONTINUE
  
end



$http_clazz = Net::HTTP

def http_get( uri_str, limit = 10 )
    raise ArgumentError, 'http redirect too deep' if limit == 0

    uri = URI.parse(uri_str)
    response = nil

    target = $http_clazz.new(uri.host, uri.port)
    target.read_timeout = 600
    target.start { |http|
        if uri.query.nil? then
            response, = http.get(uri.path)
        else
            response, = http.get(uri.path + '?' + uri.query)
        end
    }

    return response
end



case ARGV.length
when 0
    N1 = 708
    N2 = 1800
when 1
    N1 = ARGV[0].to_i
    N2 = 1800
when 2
    N1 = ARGV[0].to_i
    N2 = ARGV[1].to_i
else
    $stderr.puts "Bad argument !"
    exit
end

(N1..N2).each { |i|
    url = "http://q.hatena.ne.jp/list?page=#{i}"
    $stderr.puts url
    ret = extract_data(url)
    i += 1
}
他4件のコメントを見る
id:adlib

 
 たしかに(抜くに勝る)方法は正確ですが、素人には暗黒箱ですね。
 別記のグラフは、はてなが率先して公開すべきものですね(多謝)。
 

2012/04/19 02:37:02
id:a-kuma3

素人には暗黒箱ですね。

確かに。
別の質問のコメントでも分かりますが、この類のデータをすっと出せる方がいらっしゃるので、人力検索で聞いてみる、というのが手堅い方法なのかもしれません。

2012/04/19 02:52:03

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません