Closed3
Stack Exchange (Overflow等) のデータセットを使う

Stack Exchange
Stack Exchange は Stack Overflow などの QA サイトを運営してるところで、Stack Overflow をはじめとして様々な話題についての質問をすることができるサイトが複数存在する。
そして、これらのサイトの投稿をデータセットとして利用することが可能である。(なので自前でスクレイピングとかしないように...)
ここから 7z のリンクをクリックするとダウンロードができる。(サイズは大きくなくてもかなり時間がかかるので待つ)
投稿に関するライセンスについては以下で説明されている。
基本的に Creative Commons Attribution-ShareAlike となる。

データ構造
それぞれのサイトのデータ構造は同じだと思われる。
今回は日本語版 Stack Overflow である、スタック・オーバーフロー (ja.stackoverflow.com) のデータをつかう。
7z を解凍するとこのようになっている。
今回は、質問と回答とそれらの評価データが欲しかったので、Posts.xml
と Votes.xml
を利用した。

Posts.xml
中身の例。
posts.xml
<?xml version="1.0" encoding="utf-8"?>
<posts>
<row Id="69" PostTypeId="1" AcceptedAnswerId="70" CreationDate="2014-09-29T20:06:18.613" Score="9" ViewCount="5960" Body="<p>要素として文字列と数字が混在している配列があります。
これをすべて数字順に並べ替えたいのですが、どうしたらよいでしょうか?</p>

<p>たとえば、以下のような配列があったとします。</p>

<pre><code>["123", 200, "12", 85]
</code></pre>

<p>これを次のように並び替えたいです。</p>

<pre><code>["12", 85, "123", 200]
</code></pre>
" OwnerUserId="85" LastEditorUserId="30" LastEditDate="2014-10-02T01:17:50.717" LastActivityDate="2015-01-25T20:33:15.580" Title="Rubyで文字列と数字が混在している配列をソートする方法を教えてください" Tags="<ruby>" AnswerCount="3" CommentCount="0" ContentLicense="CC BY-SA 3.0" />
<row Id="70" PostTypeId="2" ParentId="69" CreationDate="2014-09-29T20:10:36.950" Score="13" Body="<p><code>sort_by</code>メソッドを使えばソートできますよ。</p>

<pre><code>["123", 200, "12", 85].sort_by{|item| item.to_i} #=&gt; ["12", 85, "123", 200]
</code></pre>

<p>次のように書いても同じです。</p>

<pre><code>["123", 200, "12", 85].sort_by(&amp;:to_i) #=&gt; ["12", 85, "123", 200]
</code></pre>
" OwnerUserId="85" LastActivityDate="2014-09-29T20:10:36.950" CommentCount="3" ContentLicense="CC BY-SA 3.0" />
...
属性の説明は少し探しても見つからなかったが Copilot が教えてくれた内容や傾向から推測すると以下
- Id: 投稿ID
- PostType: 投稿タイプ
- 1: 質問
- 2: 回答
- 3: 不明 (Wiki?)
- 4: タグの説明 (詳細?)
- 5: タグの説明
- 6: モデレーター推薦?
- 7: Wikiプレースホルダー
- AcceptedAnswerId: 質問者が選んだ回答のID (質問投稿のみ)
- ParentId: 親投稿のID (回答のみ)
- CreationDate: 作成日時
- Score: スコア
- ViewCount: 閲覧数
- Body: 本文の HTML
- OwnerUserId: 投稿者のID
- LastEditorUserId: 最後に編集した人のID
- LastEditDate: 最終編集日
- LastActivityDate: 最終アクティビティ日? (コメントなど?)
- Title: 投稿のタイトル (質問投稿のみ)
- Tags: 投稿時に選択したタグ
- AnswerCount: ついた回答数
- CommentCount: ついたコメント数
- ContentLicense: ライセンス
このスクラップは2023/09/25にクローズされました