nicopbeard's picture
Remove Reddit scraper, add IBM Claim Stance loader
e82a201
|
Raw
History Blame Contribute Delete
1.34 kB
# Data module
Owns all data loading, cleaning, and the unified schema. Everything downstream imports from here.
## Unified schema
```python
from data import Argument, Debate
debate = Debate(id="abc", title="CMV: cats > dogs", source="cmv")
arg = Argument(id="1", text="Cats are independent.", arg_type="premise")
```
`arg_type` must be one of: `claim`, `counter_claim`, `premise`, `unknown`.
## Sources
### CMV (offline)
Download the Tan et al. 2016 dataset:
```bash
mkdir -p data/raw/cmv
curl -O https://chenhaot.com/data/cmv/cmv.tar.bz2
tar -xjf cmv.tar.bz2 -C data/raw/cmv/
```
Then:
```python
from data import load_cmv, clean_debates
debates = clean_debates(load_cmv("train"))
```
### IBM Debater (auto-download)
```python
from data import load_ibm
debates = load_ibm("train") # downloads via HuggingFace datasets on first run
```
### IBM Claim Stance (auto-download)
~2,400 claim–topic pairs labeled PRO or CON against debate motions.
Directly provides claim vs. counter-claim ground truth.
```python
from data import load_claim_stance
debates = load_claim_stance("train")
```
## Preprocessing
`clean_debates()` applies Reddit-specific noise removal (quoted text, URLs,
edit notes, user mentions) and drops arguments shorter than 5 tokens. Call it
on any list of `Debate` objects before passing them downstream.