CoolFace
Datasetpublic

sabin1234/NEPSE_Dividend_FAQ_Dataset_Romanized_Nepali_Questions

NEPSE Dividend FAQ Dataset (Romanized Nepali Questions) File: nepse_dividend_faq_romanized.jsonl Total records: 2,000 Format: JSON Lines (.jsonl) — one JSON object per line Language: Nepali (ne / ISO 639-3 npi), answers in Devanagari script (Deva); questions in romanized Nepali (Latin letters) Domain: Financial services — NEPSE (Nepal Stock Exchange) historical dividend records Task type: Instruction-following (instruction-following) Generation type: Real (real) — this is… See the full description on the dataset page: https://huggingface.co/datasets/sabin1234/NEPSE_Dividend_FAQ_Dataset_Romanized_Nepali_Questions.

sourceHugging Faceapache-2.0updated 17h agoView on Hugging Face
0likes
Dataset Card

NEPSE Dividend FAQ Dataset (Romanized Nepali Questions)

File: nepse_dividend_faq_romanized.jsonl Total records: 2,000 Format: JSON Lines (.jsonl) — one JSON object per line Language: Nepali (ne / ISO 639-3 npi), answers in Devanagari script (Deva); questions in romanized Nepali (Latin letters) Domain: Financial services — NEPSE (Nepal Stock Exchange) historical dividend records Task type: Instruction-following (instruction-following) Generation type: Real (real) — this is factual data derived from actual company dividend history, not synthetically generated text License: Apache-2.0 (permissive)

This dataset is a single-turn (1 question + 1 answer) factual FAQ dataset built from real historical dividend announcements of companies listed on the Nepal Stock Exchange (NEPSE). Every question asks for the total dividend percentage (or bonus share percentage) that a specific listed company declared for a specific Nepali fiscal year (Bikram Sambat, e.g. 2077/2078), and every answer states the factual dividend percentage. A distinctive feature of this dataset is that questions are written in romanized Nepali (Latin script) while answers are written in standard Nepali (Devanagari script) — making it useful for romanized-input / Devanagari-output transliteration-aware QA systems.


1. Table of Contents

SectionDescription
2. Dataset SummaryHigh-level counts and coverage
3. File / Record SchemaFull field list, types, descriptions
4. Nested metadata_json SchemaFields inside the embedded metadata string
5. Conversation StructureTurn-by-turn layout (single-turn Q&A)
6. Question Pattern DiversityThe 3 phrasing templates × 2 dividend types = 6 question forms
7. Answer Pattern DiversityThe fixed factual-answer template
8. Company Coverage210 unique NEPSE-listed companies referenced
9. Fiscal Year Coverage18 unique Nepali fiscal years covered
10. Dividend Value CoverageRange and distribution of dividend percentages
11. Length & Size StatisticsCharacter-length statistics
12. Metadata Field Value ReferenceFull list of fixed metadata values
13. Loading the Dataset (Code Demos)Python, pandas, and Hugging Face datasets examples
14. Example RecordsFully annotated examples for both dividend types
15. Suggested Use CasesFine-tuning, evaluation, etc.
16. Limitations & NotesRomanization ambiguity, no company-name mapping, etc.
17. Quick Reference Cheat SheetOne-page summary table

2. Dataset Summary

MetricValue
Total records2,000
Total messages (all turns)4,000 (2,000 × 2)
Turns per conversation2 (1 human + 1 assistant)
Question scriptRomanized Nepali (Latin letters)
Answer scriptDevanagari (Nepali)
Unique companies referenced210
Unique fiscal years referenced18
Unique dividend types asked about2 (total dividend, bonus share dividend)
Unique question phrasing templates3 (combined with 2 dividend types → 6 total surface forms)
Unique dividend percentage values seen392
Schema consistency (top-level)100% — all 19 top-level keys present in every record
metadata_json schema consistency100% — all 9 nested keys present in every record
generation_type / conditionreal / real — sourced from actual dividend history, not synthetic text
LicenseApache-2.0, permissive tier

3. File / Record Schema

Each line of the .jsonl file is a single, independent JSON object with the following 19 top-level fields:

FieldTypeDescriptionExample Value
idstringUnique record identifier"nepse_dividend_0001"
conversationsarray of objectsThe 1 question + 1 answer pair (see Section 5)[{"from": "human", "value": "..."}, {"from": "gpt", "value": "..."}]
sourcestringHuman-readable name of the originating dataset"NEPSE Dividend History"
source_namestringMachine-friendly name of the source dataset"nepse_dividend_faq"
source_repostringRepository/dataset name this record was pulled from"NEPSE Dividend History"
source_configstringConfig name of the source dataset"default"
source_splitstringData split label"train"
source_revisionstringVersion tag of the source dataset"v1"
source_row_idstringRow identifier in the original source table (mirrors id)"nepse_dividend_0001"
languagestringISO 639-1 language code"ne"
language_codestringISO 639-3 language code"npi"
scriptstringUnicode script code of the declared content"Deva" (Devanagari)
licensestringLicense identifier for this data"Apache-2.0"
license_tierstringHuman-readable license permissiveness classification"permissive"
task_typestringNLP task category this dataset supports"instruction-following"
generation_typestringHow the record's content originated"real" (factual/real data, not synthetically written)
conditionstringContent classification label"real"
urlstringSource URL reference (empty for every record in this file)""
metadata_jsonstring (JSON-encoded)Nested metadata object — see Section 4"{\"generation_domain\": \"वित्तीय सेवा\", ...}"

3.1 Nested schema: the conversations array

Each element of conversations is an object with exactly two fields:

FieldTypeDescriptionAllowed Values
fromstringSpeaker role"human" or "gpt"
valuestringThe message textRomanized Nepali (for human) or Devanagari Nepali (for gpt)

4. Nested metadata_json Schema

The metadata_json field is a JSON-encoded string (must be parsed with a second json.loads() call) containing 9 keys. These values are constant across all 2,000 records in this file — i.e., the entire dataset represents one single, narrowly-scoped generation configuration.

Nested FieldTypeFixed Value (Nepali)English Gloss
generation_domainstringवित्तीय सेवाFinancial services
generation_categorystringनेप्से लाभांश इतिहासNEPSE dividend history
generation_sub_domainstringकम्पनी लाभांशCompany dividends
behaviorstringतथ्यात्मक लाभांश जानकारी दिनेProviding factual dividend information
behavior_definitionstringनिर्दिष्ट कम्पनी र आर्थिक वर्षको लाभांश तथ्यांक प्रयोग गरी प्रश्नको प्रत्यक्ष उत्तर दिने।"Give a direct answer to the question using the dividend figures for the specified company and fiscal year."
question_typestringतथ्यमा आधारित प्रश्नFact-based question
content_languagestringनेपालीNepali
content_scriptstringदेवनागरीDevanagari
english_content_allowedbooleanfalseEnglish content is not permitted in the answer
Note: Although english_content_allowed is false and content_script declares Devanagari, the question side of every conversation is actually written in romanized Latin-script Nepali — the false/देवनागरी metadata describes the intended answer content policy, not the literal question text. This is an important nuance to document (see Section 16).

5. Conversation Structure

Unlike multi-turn conversational datasets, this dataset is strictly single-turn: every record contains exactly 2 messages.

Turn #Index in arraySpeaker (`from`)ScriptPurpose
1conversations[0]humanRomanized Nepali (Latin letters)Asks for a specific company's dividend percentage for a specific fiscal year
2conversations[1]gptDevanagari NepaliStates the factual dividend percentage in a fixed sentence template
Structural MetricValue
Messages per conversationAlways exactly 2
Role order100% consistent: human, gpt
Human : assistant ratio1:1

6. Question Pattern Diversity

Every question is built from one of 3 phrasing templates, applied to one of 2 dividend types, giving 6 total surface-form templates, each filled in with a specific company code and fiscal year. All 2,000 questions fall cleanly into these 6 buckets.

6.1 The 3 phrasing templates (using <CO> = company code, <FY> = fiscal year)

Template IDRomanized PatternEnglish Translation
Aaarthik barsha <FY> ma <CO> ko kul labhansha kati thiyo?"In fiscal year <FY>, what was <CO>'s total dividend?"
B<CO> le aarthik barsha <FY> ka lagi kul kati pratishat labhansha ghoshana garyo?"What total dividend percentage did <CO> declare for fiscal year <FY>?"
C<CO> ko aarthik barsha <FY> ko kul labhansha pratishat kati ho?"What is <CO>'s total dividend percentage for fiscal year <FY>?"

For the bonus-share dividend type, the same 3 templates are used with kul labhansha ("total dividend") replaced by bonas seyar (labhansha) ("bonus share (dividend)"):

Template IDRomanized PatternEnglish Translation
A′aarthik barsha <FY> ma <CO> ko bonas seyar labhansha kati thiyo?"In fiscal year <FY>, what was <CO>'s bonus share dividend?"
B′<CO> le aarthik barsha <FY> ka lagi kati pratishat bonas seyar ghoshana garyo?"What bonus share percentage did <CO> declare for fiscal year <FY>?"
C′<CO> ko aarthik barsha <FY> ko bonas seyar labhansha pratishat kati ho?"What is <CO>'s bonus share dividend percentage for fiscal year <FY>?"

6.2 Distribution across the 6 question forms

Dividend TypeTemplate A (`aarthik barsha <FY> ma ...`)Template B (`<CO> le ... ghoshana garyo?`)Template C (`<CO> ko ... pratishat kati ho?`)Subtotal
Total dividend (kul labhansha)4684484011,317
Bonus share dividend (bonas seyar)231221231683
Total6996696322,000
MetricValue
Records asking about total dividend1,317 (65.9%)
Records asking about bonus share dividend683 (34.2%)
Most common single phrasing templateTemplate A, total-dividend form (468 records)
Least common single phrasing templateTemplate B, bonus-share form (221 records)

7. Answer Pattern Diversity

Unlike the free-form assistant answers in narrative health-style datasets, every answer here follows one single fixed sentence template, varying only in the company code, fiscal year, and numeric percentage:

Dividend TypeAnswer Template
Total dividend<CO> ko aarthik barsha <FY> ko kul labhansha <PCT>% thiyo. ("<CO>'s total dividend for fiscal year <FY> was <PCT>%.")
Bonus share dividend<CO> ko aarthik barsha <FY> ko bonas seyar labhansha <PCT>% thiyo. ("<CO>'s bonus share dividend for fiscal year <FY> was <PCT>%.")
MetricValue
Unique answer templates (structural forms)2 (one per dividend type)
Unique answer strings (with company/year/percentage filled in)2,000 (each is effectively unique due to varying numeric percentage)
Answer always states the company code, fiscal year, and percentage100% of records
Answer includes any disclaimer or hedge languageNone — every answer is a direct factual statement (no safety caveat, consistent with question_type: तथ्यमा आधारित प्रश्न / "fact-based question")

8. Company Coverage

The dataset references 210 unique NEPSE-listed companies, each identified by a romanized letter-by-letter spelling of its stock ticker symbol (e.g. the ticker "SLBSL" is spelled out phonetically as esielabiesaela, "S-L-B-S-L"). Company names are not given in expanded/full form anywhere in the dataset — only these phonetic ticker spellings are used.

MetricValue
Unique companies (romanized ticker codes)210
Minimum records for a single company1
Maximum records for a single company32
Average records per company~9.5

8.1 Most frequently referenced companies (top 15 by record count)

#Romanized Ticker CodeRecord Count
1ibiela32
2jibibiela31
3sibibiela30
4siechasiela30
5siaaiti30
6didibiela30
7jibiaaiemai30
8aaisiephasi30
9emadibi30
10enaebiaaiela30
11sijedabiaaiela29
12bipisiela28
13ephaemadibiela28
14eechapisi26
15echadiela26
The remaining ~195 companies appear with lower frequency, down to companies referenced only once. Because tickers are spelled phonetically letter-by-letter rather than given as standard stock symbols, mapping a given code back to a real-world company name requires manually decoding each letter (e.g., e = "E", bi = "B", si = "C", di = "D", ela = "L", etc.) — see Section 16 for a caveat on this.

9. Fiscal Year Coverage

Fiscal years are expressed in the Bikram Sambat (BS) calendar, in YYYY/YYYY format (e.g. 2077/2078 corresponds roughly to 2020/2021 in the Gregorian calendar). The dataset spans 18 unique fiscal years.

Fiscal Year (BS)Record Count
2062/20632
2066/20671
2067/206867
2068/206975
2069/207074
2070/207192
2071/207299
2072/2073116
2073/2074129
2074/2075131
2075/2076149
2076/2077160
2077/2078178
2078/2079180
2079/2080134
2080/2081172
2081/2082206
2082/208335
MetricValue
Earliest fiscal year2062/2063
Latest fiscal year2082/2083
Most represented fiscal year2081/2082 (206 records — the most recent full fiscal year, likely reflecting more complete recent reporting)
Least represented fiscal year2066/2067 (1 record)
General trendCoverage increases steadily from the oldest years toward 2078/2079, dips slightly in 2079/2080, then rises again — reflecting more companies having reported dividends in more recent years, with 2082/2083 (still in progress) being comparatively sparse

10. Dividend Value Coverage

Dividend percentages are stated as plain numbers followed by %, and include both whole numbers and precise decimal values (a result of real-world dividend calculations, e.g. splitting a cash dividend across share counts).

MetricValue
Unique dividend percentage values across dataset392
Most common dividend value10% (124 records)
2nd most common15% (120 records)
3rd most common0% (114 records — companies that declared no dividend that year)
4th most common20% (102 records)
5th most common5% (85 records)

10.1 Top 15 most frequent dividend values

Dividend ValueCount
10%124
15%120
0%114
20%102
5%85
10.53%68
25%55
21.05%52
15.79%48
5.26%46
8%37
12%37
30%36
7%30
14%29
The presence of 0% as the third most common value (114 records) is notable — it correctly represents years in which a company declared no dividend, confirming this is real, unfiltered historical data rather than a cherry-picked "success stories only" dataset.

11. Length & Size Statistics

All lengths measured in characters.

MeasureMinimumMaximumMean
Human (question) message length6010179.7
Assistant (gpt) answer message length588270.2
Structural MetricValue
Messages per conversationAlways exactly 2
Total messages in dataset4,000
Records with missing/malformed fields0
Records with non-2 turn count0

12. Metadata Field Value Reference

Quick reference for every metadata field that is constant across the dataset (useful for filtering scripts, even though the value never varies here):

FieldFixed Value
sourceNEPSE Dividend History
source_namenepsedividendfaq
source_repoNEPSE Dividend History
source_configdefault
source_splittrain
source_revisionv1
languagene
language_codenpi
scriptDeva
licenseApache-2.0
license_tierpermissive
task_typeinstruction-following
generation_typereal
conditionreal
url"" (always empty)
metadata_json.generation_domainवित्तीय सेवा
metadata_json.generation_categoryनेप्से लाभांश इतिहास
metadata_json.generation_sub_domainकम्पनी लाभांश
metadata_json.behaviorतथ्यात्मक लाभांश जानकारी दिने
metadata_json.question_typeतथ्यमा आधारित प्रश्न
metadata_json.content_languageनेपाली
metadata_json.content_scriptदेवनागरी
metadata_json.english_content_allowedfalse

Fields that vary per record:

FieldRange / Cardinality
idnepse_dividend_0001 → nepse_dividend_2000
source_row_idIdentical to id for every record
conversations2,000 distinct question/answer pairs
Company referenced (embedded in text)210 distinct romanized ticker codes
Fiscal year referenced (embedded in text)18 distinct BS fiscal years
Dividend percentage (embedded in text)392 distinct values
Dividend type (embedded in text)2 (total dividend / bonus share dividend)

13. Loading the Dataset (Code Demos)

13.1 Plain Python — streaming line-by-line (no dependencies)

python
import json

path = "nepse_dividend_faq_romanized.jsonl"

records = []
with open(path, encoding="utf-8") as f:
    for line in f:
        line = line.strip()
        if not line:
            continue
        record = json.loads(line)
        records.append(record)

print(f"Loaded {len(records)} records")

# Print the first Q&A pair, plus its parsed nested metadata
first = records[0]
question = first["conversations"][0]["value"]
answer = first["conversations"][1]["value"]
print("Q:", question)
print("A:", answer)

metadata = json.loads(first["metadata_json"])  # metadata_json is a JSON-encoded string
print("Behavior:", metadata["behavior"])

13.2 Using pandas

python
import pandas as pd
import json

path = "nepse_dividend_faq_romanized.jsonl"

df = pd.read_json(path, lines=True)
print(df.shape)              # (2000, 19)
print(df.columns.tolist())   # all 19 top-level fields

# Split question/answer into their own columns
df["question"] = df["conversations"].apply(lambda c: c[0]["value"])
df["answer"] = df["conversations"].apply(lambda c: c[1]["value"])

# Parse the nested metadata_json string into real columns
meta_df = df["metadata_json"].apply(json.loads).apply(pd.Series)
df = pd.concat([df.drop(columns=["conversations", "metadata_json"]), df[["question", "answer"]], meta_df], axis=1)

df.to_csv("nepse_dividend_flat.csv", index=False, encoding="utf-8-sig")
print(df.head())

13.3 Extracting structured (company, fiscalyear, dividendtype, percentage) tuples

python
import json
import re

fy_pattern = re.compile(r"20\d{2}/20\d{2}")
pct_pattern = re.compile(r"\d+(?:\.\d+)?%")

def parse_answer(answer_text: str):
    """Extract company code, fiscal year, dividend type, and percentage from a gpt answer."""
    fiscal_year = fy_pattern.search(answer_text).group()
    percentage = pct_pattern.search(answer_text).group()
    dividend_type = "bonus_share" if "bonas seyar" in answer_text else "total"
    company_code = answer_text.split(" ko aarthik barsha")[0]
    return {
        "company_code": company_code,
        "fiscal_year": fiscal_year,
        "dividend_type": dividend_type,
        "percentage": percentage,
    }

with open("nepse_dividend_faq_romanized.jsonl", encoding="utf-8") as f:
    records = [json.loads(line) for line in f]

structured = [parse_answer(r["conversations"][1]["value"]) for r in records]
print(structured[:5])

13.4 Using Hugging Face datasets

python
from datasets import load_dataset

dataset = load_dataset(
    "json",
    data_files="nepse_dividend_faq_romanized.jsonl",
    split="train",
)

print(dataset)
print(dataset[0]["conversations"])

# Filter to records about bonus share dividends only
bonus_share = dataset.filter(
    lambda r: "bonas seyar" in r["conversations"][0]["value"]
)
print(len(bonus_share))  # 683

# Filter to a single fiscal year
fy_2081_82 = dataset.filter(
    lambda r: "2081/2082" in r["conversations"][0]["value"]
)
print(len(fy_2081_82))  # 206

13.5 Converting to a chat-fine-tuning message format

python
import json

def to_chat_messages(record):
    role_map = {"human": "user", "gpt": "assistant"}
    return [
        {"role": role_map[turn["from"]], "content": turn["value"]}
        for turn in record["conversations"]
    ]

with open("nepse_dividend_faq_romanized.jsonl", encoding="utf-8") as f:
    records = [json.loads(line) for line in f]

chat_formatted = [to_chat_messages(r) for r in records]

with open("nepse_dividend_chat_format.jsonl", "w", encoding="utf-8") as out:
    for messages in chat_formatted:
        out.write(json.dumps({"messages": messages}, ensure_ascii=False) + "\n")

14. Example Records

14.1 Total dividend example

json
{
  "id": "nepse_dividend_0001",
  "conversations": [
    {"from": "human", "value": "aarthik barsha 2077/2078 ma esielabiesaela ko kul labhansha kati thiyo?"},
    {"from": "gpt", "value": "esielabiesaela ko aarthik barsha 2077/2078 ko kul labhansha 21% thiyo."}
  ],
  "source": "NEPSE Dividend History",
  "source_name": "nepse_dividend_faq",
  "source_repo": "NEPSE Dividend History",
  "source_config": "default",
  "source_split": "train",
  "source_revision": "v1",
  "source_row_id": "nepse_dividend_0001",
  "language": "ne",
  "language_code": "npi",
  "script": "Deva",
  "license": "Apache-2.0",
  "license_tier": "permissive",
  "task_type": "instruction-following",
  "generation_type": "real",
  "condition": "real",
  "url": "",
  "metadata_json": "{\"generation_domain\": \"वित्तीय सेवा\", \"generation_category\": \"नेप्से लाभांश इतिहास\", \"generation_sub_domain\": \"कम्पनी लाभांश\", \"behavior\": \"तथ्यात्मक लाभांश जानकारी दिने\", \"behavior_definition\": \"निर्दिष्ट कम्पनी र आर्थिक वर्षको लाभांश तथ्यांक प्रयोग गरी प्रश्नको प्रत्यक्ष उत्तर दिने।\", \"question_type\": \"तथ्यमा आधारित प्रश्न\", \"content_language\": \"नेपाली\", \"content_script\": \"देवनागरी\", \"english_content_allowed\": false}"
}

14.2 Bonus share dividend example

json
{
  "id": "nepse_dividend_0027",
  "conversations": [
    {"from": "human", "value": "esielabiesaela ko aarthik barsha 2077/2078 ko bonas seyar labhansha pratishat kati ho?"},
    {"from": "gpt", "value": "esielabiesaela ko aarthik barsha 2077/2078 ko bonas seyar labhansha 21% thiyo."}
  ]
}

(Non-varying metadata fields omitted for brevity — see Section 12 for the full fixed values.)


15. Suggested Use Cases

Use CaseWhy This Dataset Fits
Fine-tuning a Nepali financial-FAQ assistantClean, real, factual Q&A pairs about a well-defined financial topic (dividends)
Romanized-input → Devanagari-output transliteration-aware QAQuestions are in Latin-script romanized Nepali; answers are in Devanagari — directly models this input/output script mismatch
Structured information extraction researchEvery question/answer can be reduced to a clean 4-tuple: (company, fiscalyear, dividendtype, percentage)
Evaluating factual consistency / hallucination in financial QAGround-truth answers are deterministic and verifiable against real dividend history
Building a NEPSE dividend lookup chatbot210 companies × 18 fiscal years × 2 dividend types gives broad, realistic query coverage
Named-entity recognition for stock ticker codes (romanized)210 unique phonetically-spelled ticker codes provide a distinctive NER challenge
Studying real-world data sparsity/reporting patternsThe declining/uneven per-year record counts (Section 9) reflect genuine reporting availability, not synthetic balancing

16. Limitations & Notes

PointDetail
Real, not syntheticgeneration_type and condition are both real — unlike template-generated conversational datasets, the underlying dividend facts come from actual NEPSE company history. However, the question phrasing is still templated (6 fixed surface forms), so linguistic diversity is low even though factual content is real.
Romanized company codes are letter-by-letter ticker spellings, not real namesCodes like esielabiesaela or edibiela are phonetic spellings of stock ticker symbols (e.g., "S-L-B-S-L", "D-B-L"). The dataset does not include a mapping table from these codes to full company names — users wanting real company names will need to manually decode the phonetic spelling or cross-reference an external NEPSE ticker list.
No date of dividend declaration, only fiscal yearThe dataset gives the Bikram Sambat fiscal year (e.g. 2077/2078) but not the exact announcement date, AGM date, or book-closure date.
`0%` entries represent genuine "no dividend" years, not missing data114 records with 0% reflect real years where a company declared no dividend — this is a meaningful signal, not a placeholder.
Only 2 dividend categories coveredOnly "total dividend" and "bonus share dividend" are represented; the dataset does not separately break out cash dividend vs. stock dividend components in all cases, nor does it cover rights shares, book value, EPS, or other financial metrics.
Uneven company/year coverageSome companies appear up to 32 times, others only once; some fiscal years have over 200 records, others as few as 1–2 — this reflects real data availability, not an intentionally balanced sample.
No demographic/personal identifiersThis is company-level financial history; no personal or user data is present.
`url` field is empty for all recordsNo direct source URL is provided per record; provenance is only available at the dataset level (source, source_repo, source_revision).

17. Quick Reference Cheat Sheet

ItemValue
File namenepse_dividend_faq_romanized.jsonl
FormatJSON Lines
Total records2,000
Messages per record2 (1 human + 1 assistant)
Total messages4,000
Question scriptRomanized Nepali (Latin)
Answer scriptDevanagari (Nepali)
DomainFinancial services — NEPSE dividend history
Data natureReal (factual), not synthetic
Fields per record (top-level)19
Nested metadata fields9
Schema consistency100%
Unique companies210
Unique fiscal years18 (2062/2063 → 2082/2083)
Unique dividend types2 (total / bonus share)
Unique question phrasing templates3 (× 2 dividend types = 6 surface forms)
Unique dividend percentage values392
Avg. question length79.7 characters
Avg. answer length70.2 characters
LicenseApache-2.0 (permissive)