用于情绪与收益研究的财经新闻语料
文章 《交易机器学习》
总结
本资料介绍两个用于情绪分析、文本特征开发及新闻与收益关联实验的财经新闻语料。FNSPID将新闻标题与股票代码关联,覆盖较长历史时期;除完整数据集外,还提供较小样本。彭博档案包含新闻文本和结构化金融序列,但覆盖时期较短,作为情绪、主题和跨数据集稳健性研究的补充来源。两者均通过公共数据集平台分发,本文概述了其基本内容和加载选项。
指南还说明了重要的实际限制。根据列出的许可条款,FNSPID要求注明出处;彭博文本则仅限研究用途,不得用于商业再分发。彭博结构化数据与其新闻加载器分开处理,指南建议在新建数据流水线时使用FNSPID。这些语料提供研究输入,并不能证明新闻特征可以预测收益;用户仍需自行定义并验证信号、时间戳和评估设计。
核心观点
- FNSPID将财经新闻标题与股票代码关联,可用于新闻情绪和收益归因研究。
- 彭博档案将新闻文本与结构化金融数据结合,可用于补充实验。
- 这些语料在覆盖范围、规模以及文本和结构化数据的加载方式上各不相同。
- FNSPID要求注明出处,而彭博档案仅限研究用途。
- 这些数据集提供研究素材,但本身不能证明新闻可以预测收益。
标签
全文
# Financial News Archives
# Financial News Archives
Two news corpora used for sentiment analysis, text-signal engineering,
and news-return experiments. Both distributed via HuggingFace Hub.
| Dataset | Records | Coverage | Disk | Source |
| ----------------------- | -------------------------------------------- | ---------- | ------ | --------------------------------------------------- |
| FNSPID | 15.7M headlines, 4,775 S&P 500 companies | 1999-2023 | ~50 MB (1M sample); ~3 GB full | HuggingFace `Zihan1004/FNSPID` |
| Bloomberg news archive | ~470k news records + structured fin-data | 2006-2013 | ~940 MB | HuggingFace (mirrored archive) |
Both downloads are HuggingFace public datasets — **no API key required**,
but a free HuggingFace account (`huggingface-cli login`) makes downloads
faster and more reliable.
## FNSPID
Large-scale financial news dataset linking headlines to stock tickers.
Used in Ch10 for news-sentiment features and return-attribution
experiments.
- **Source / citation**: Zhao et al., "FNSPID: A Comprehensive Financial
News Dataset in Time Series," *arXiv:2402.06698* (2024).
GitHub: https://github.com/Zdong104/FNSPID_Financial_News_Dataset.
- **License**: the HuggingFace dataset page lists `cc-by-4.0` — free for
any use (including commercial) with attribution to the FNSPID paper.
- **Size on disk**: 1M sample ~50 MB (default); full ~3 GB.
- **Runtime**: ~30 seconds for 1M sample; ~10 minutes for the full pull.
### Download
```bash
# 1M sample (default, recommended — ~50 MB)
uv run python data/alternative/news/fnspid_download.py
# Larger samples
uv run python data/alternative/news/fnspid_download.py --sample 2000000
uv run python data/alternative/news/fnspid_download.py --sample 0 # full ~15.7M rows
# Preview
uv run python data/alternative/news/fnspid_download.py --dry-run
```
Output under `$ML4T_DATA_PATH/alternative/news/fnspid/`:
```
fnspid_1000k.parquet # 1M sample (default)
fnspid_2000k.parquet # when --sample 2000000 is used
fnspid_full.parquet # --sample 0
```
### Loading
```python
from data import load_fnspid
news = load_fnspid() # newest sample on disk
aapl = load_fnspid(symbols=["AAPL", "MSFT"],
start_date="2020-01-01", end_date="2023-12-31")
```
Schema: `symbol`, `timestamp`, `title`, `body`, `source`, `url`.
### Consumers
- **Ch10**: `07_news_return_signals.py`, `08_text_feature_evaluation.py`.
## Bloomberg News Archive
Bloomberg news headlines and bodies combined with structured financial
data series, distributed via a HuggingFace-mirrored archive. Used as a
secondary corpus for sentiment / topic experiments and cross-dataset
robustness checks.
- **Source**: HuggingFace mirrored Bloomberg archive.
- **License**: Bloomberg owns the underlying text; the mirrored archive
is distributed under HuggingFace terms **for research use only**.
Commercial redistribution is not permitted. See the dataset card on
HuggingFace before using for anything beyond personal study.
- **Size on disk**: ~940 MB total (news ~460 MB, structured ~480 MB).
- **Runtime**: ~3-5 minutes.
### Download
```bash
uv run python data/alternative/news/bloomberg_download.py
```
Output under `$ML4T_DATA_PATH/alternative/news/bloomberg/`:
```
bloomberg_news.parquet # headline + body corpus (~460 MB)
bloomberg_financial_data.parquet.gzip # structured financial fields (~480 MB)
.cache/huggingface/download/ # HF download staging (safe to wipe)
```
### Loading
```python
from data import load_bloomberg_news
df = load_bloomberg_news(start_date="2010-01-01", end_date="2013-12-31")
```
The loader covers ``bloomberg_news.parquet`` (headline + body corpus) and
returns the article publication time as canonical ``timestamp``.
The structured-financials file is still read directly when needed —
Bloomberg corpora are secondary to FNSPID; prefer ``load_fnspid()``
when building new pipelines.
### Consumers
- **Ch22**: ESG RAG-vs-fine-tune comparison (``06_esg_rag_vs_finetune.py``).在遵守原作品许可的前提下,附作者信息全文展示。 许可协议: MIT
此摘要由 Stratmill 研究智能体根据原文撰写,并非原文副本。