task_categories:text-generation task_categories:question-answering multilinguality:monolingual size_categories:10K<n<100K language:ja license:cc-by-sa-4.0 region:us
---
language:
- ja
license: cc-by-sa-4.0
multilinguality:
- monolingual
size_categories:
- 10K<n<100K
task_categories:
- text-generation
- question-answering
pretty_name: obafuro
dataset_info:
  features:
  - name: id
    dtype: string
  - name: title
    dtype: string
  - name: question
    dtype: string
  - name: answer
    dtype: string
  - name: question_score
    dtype: int64
  - name: answer_score
    dtype: int64
  - name: tags
    sequence: string
  splits:
  - name: train
    num_bytes: 83035406
    num_examples: 26279
  download_size: 41235139
  dataset_size: 83035406
configs:
- config_name: default
  data_files:
  - split: train
    path: data/train-*
---

# Obafuro

日本語版 Stack Overflow の [スタック・オーバーフロー](https://ja.stackoverflow.com/) の[データダンプ](https://archive.org/download/stackexchange) をもとにデータを加工し、質問文と回答文のペアになるように調整した QA データセット。

## 使い方

datasets ライブラリを用いて簡単に利用できます。

```py
from datasets import load_dataset, load_from_disk

dataset = load_dataset("p1atdev/obafuro", split="train")

print(dataset)
#Dataset({
#    features: ['id', 'title', 'question', 'answer', 'question_score', 'answer_score', 'tags'],
#    num_rows: 26279
#})
```

## データ構造

- id: 質問投稿の ID
- title: 質問タイトル
- question: 質問の本文
- answer: 回答の本文
- question_score: 質問文に対する評価
- answer_score: 回答に対する評価 (ただし、質問者が良いと選んだ場合は10点加算されています)
- tags: 質問に付与されているタグ

`question` と `answer` については、 `html2text` を用いてマークダウン形式に変換されています。ただし、コードブロックは `[code][/code]` ではなく ``` で囲まれています。

データの例:

```
{'id': '69', 'title': 'Rubyで文字列と数字が混在している配列をソートする方法を教えてください', 'question': '要素として文字列と数字が混在している配列があります。 これをすべて数字順に並べ替えたいのですが、どうしたらよいでしょうか？\n\nたとえば、以下のような配列があったとします。\n\n```\n\n    ["123", 200, "12", 85]\n    \n```\n\nこれを次のように並び替えたいです。\n\n```\n\n    ["12", 85, "123", 200]\n    \n```\n\n', 'answer': '\n\n`sort_by`メソッドを使えばソートできますよ。\n\n```\n\n    ["123", 200, "12", 85].sort_by{|item| item.to_i} #=> ["12", 85, "123", 200]\n    \n```\n\n次のように書いても同じです。\n\n```\n\n    ["123", 200, "12", 85].sort_by(&:to_i) #=> ["12", 85, "123", 200]\n    \n```\n\n', 'question_score': 9, 'answer_score': 23, 'tags': ['ruby']}
```

## ライセンス

[CC BY-SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/deed.ja)