الانتقال إلى المحتوى
جميع مستندات المكتبة

بيانات مشاعر Financial Phrasebank لأبحاث NLP

مقال Machine Learning for Trading

الملخص

يصف هذا المرجع Financial Phrasebank، وهي مجموعة معنونة من جمل الأخبار المالية تستخدم لتدريب نماذج معالجة اللغة الطبيعية أو تقييمها. ويمنح المعلّقون البشر تسميات للمشاعر: إيجابية أو محايدة أو سلبية. وتتوفر المدونة عند أربعة مستويات لاتفاق المعلّقين: إذ تحتفظ المجموعة الأشد بالجمل التي اتفق عليها جميع المعلّقين، بينما تضم المستويات الأقل صرامة أمثلة أكثر مع اتفاق أضعف على التسميات. ويحدد المستند مجموعة البيانات معيارًا مرجعيًا لتصنيف المشاعر المالية، ويذكر استخدامات منها تدريب متجهات الكلمات وتتبع المشاعر والضبط الدقيق للمحوّلات.

يشرح المرجع النسخ المخزنة لمجموعة البيانات وسلوك أداة التحميل وعملية بديلة لاسترجاع الملفات المصدر وتحويلها إلى صيغة parquet. كما يسجل الاستشهاد الأكاديمي وشروط الترخيص التي تشمل عدم الاستخدام التجاري والإسناد والترخيص بالمثل. هذا دليل لمجموعة بيانات، لا لاستراتيجية تداول ولا دليل على أن إشارات المشاعر تتنبأ بالعوائد. وتشمل حدوده العملية المفاضلة بين اتفاق المعلّقين وعدد العينات وقيود الاستخدام التجاري.

الأفكار الرئيسية

  • توفر Financial Phrasebank جملًا من الأخبار المالية موسومة بإيجابية أو حياد أو سلبية.
  • ينتج عن ارتفاع اتفاق المعلّقين مجموعة أصغر ذات تسميات أكثر اتساقًا.
  • يدعم المتن معايير قياس تصنيف المشاعر وتدريب نماذج NLP أو تقييمها.
  • البيانات مرخصة للأبحاث غير التجارية بشرط الإسناد والالتزام بمتطلبات الترخيص بالمثل.
  • لا يثبت استخدام المدونة وحده أن تسميات المشاعر تتنبأ بعوائد السوق.

الوسوم

النص الكامل
# Text Reference Corpora


# Text Reference Corpora

Labeled text corpora used as training or evaluation data for NLP models.
Unlike `sec/` (filings we produce) or `news/` (news archives we mirror),
these are published academic datasets.

## Datasets

| Corpus | Size | Use case | Loader |
| --- | --- | --- | --- |
| Financial Phrasebank (Malo et al. 2014) | ~2,300–4,800 sentences depending on agreement level | Sentiment classification benchmark | `load_financial_phrasebank` |

## On-disk Layout

```
$ML4T_DATA_PATH/alternative/text/financial_phrasebank/
├── sentences_allagree.parquet    # 100% agreement, ~2,264 rows (default)
├── sentences_75agree.parquet     # ~3,453 rows
├── sentences_66agree.parquet     # ~4,217 rows
└── sentences_50agree.parquet     # ~4,846 rows
```

Total disk footprint: under 500 KB. First load triggers a one-time
HuggingFace download (~1-2 seconds).

## Financial Phrasebank

Academic sentiment benchmark: sentences from financial news labeled
positive/neutral/negative by human annotators. Four agreement levels
are published (100%, 75%, 66%, 50%); the `allagree` subset is the most
reliable but smallest.

**License**: Creative Commons Attribution-NonCommercial-ShareAlike 3.0
(`CC BY-NC-SA 3.0`). Free for academic and non-commercial research;
attribution to Malo et al. (2014) required.

### Download

```bash
# The loader downloads from HuggingFace on first call; no manual step required.
uv run python -c "from data import load_financial_phrasebank; df = load_financial_phrasebank(); print(df.shape)"
```

To pre-populate the cache manually:

```python
from huggingface_hub import hf_hub_download
import zipfile, polars as pl
from pathlib import Path

DATA = Path("$ML4T_DATA_PATH/alternative/text/financial_phrasebank")
zip_path = hf_hub_download("takala/financial_phrasebank",
                           "data/FinancialPhraseBank-v1.0.zip", repo_type="dataset")
label_map = {"negative": 0, "neutral": 1, "positive": 2}
rows = []
with zipfile.ZipFile(zip_path) as z, z.open(
    "FinancialPhraseBank-v1.0/Sentences_AllAgree.txt"
) as f:
    for line in f.read().decode("latin-1").strip().splitlines():
        sentence, label = line.rsplit("@", 1)
        rows.append({"sentence": sentence.strip(), "label": label_map[label.strip()]})
DATA.mkdir(parents=True, exist_ok=True)
pl.DataFrame(rows).write_parquet(DATA / "sentences_allagree.parquet")
```

### Loading

```python
from data import load_financial_phrasebank

# Default: 100% agreement subset (most reliable, ~2,264 sentences)
df = load_financial_phrasebank(agreement="100")

# Or lower agreement levels for more training data
df = load_financial_phrasebank(agreement="50")
```

**Reference**: Malo, P., Sinha, A., Korhonen, P., Wallenius, J., & Takala, P.
(2014). *Good debt or bad debt: Detecting semantic orientations in economic texts.*
Journal of the Association for Information Science and Technology, 65(4).

## Consumers

- Chapter 10 NB 01 (word2vec training)
- Chapter 10 NB 03 (sentiment evolution)
- Chapter 10 NB 04 (transformer fine-tuning)

يُعرض النص كاملًا مع نسبه إلى مصدره وفقًا لترخيصه. الترخيص: MIT

أعدّ وكيل الأبحاث في Stratmill هذا الملخص استنادًا إلى المصدر الأصلي؛ وهو ليس نسخة منه.