TigreGotico/portuguese-unified-pronunciation-lexicon
Portuguese Unified Pronunciation Lexicon A flat, single-row-per-pronunciation dataset merging Portuguese IPA transcriptions from three authoritative sources. Each row is a word × region × POS tuple with both broad phonemic (ipa_broad) and narrow phonetic (ipa_narrow) transcriptions normalized across sources. Source Words Convention Description Infopédia (Porto Editora) 102,685 Broad phonemic European Portuguese dictionary IPA Wiktionary (pt.wiktionary.org) 15,720… See the full description on the dataset page: https://huggingface.co/datasets/TigreGotico/portuguese-unified-pronunciation-lexicon.
Portuguese Unified Pronunciation Lexicon
A flat, single-row-per-pronunciation dataset merging Portuguese IPA transcriptions from three authoritative sources. Each row is a word × region × POS tuple with both broad phonemic (ipa_broad) and narrow phonetic (ipa_narrow) transcriptions normalized across sources.
Lexicon entries can be searched at: https://www.portaldalinguaportuguesa.org/index.php?action=fonetica&act=list
Dataset Stats
- Total rows: 535,918
- Unique words: 121,938
- With POS: 375,935 rows (70%); empty
posmeans identical IPA across all POS - With X-SAMPA: 1,672 rows (0.3%); 23 of those (22 words) have X-SAMPA but no IPA
- Broad ≠ narrow: 378,918 rows (71% — systematic convention mapping, not real disagreement)
- Sub-region rows: 367,149 (69%); all differ from their parent region — 572 redundant sub=parent rows collapsed
- `pt` (pan-Portuguese): 941 rows — words where the lexicon declares all regions identical (199) or Wiktionary provides no region qualifier (745)
- Regions: 16
Source Overlap (words)
Words appearing in multiple sources have their URLs merged into the same row where the IPA is identical; where the IPA differs between sources (typically due to transcription conventions), they remain separate rows.
IPA Convention Differences
The three sources use different transcription conventions. On the 36,039 words shared between infopedia and lexicon, 76% differ in raw IPA — but this is systematic convention mapping:
ipa_broad and ipa_narrow normalize across these conventions.
Schema (flat, one row per pronunciation)
{
"word": "casa",
"region": "pt-PT",
"ipa_broad": "ˈkaza",
"ipa_narrow": "ˈkazɐ",
"x_sampa": "",
"phones": "",
"syllables": "ca.sa",
"pos": "NOUN",
"wiktionary_url": "",
"infopedia_url": "https://www.infopedia.pt/dicionarios/lingua-portuguesa/casa"
}Source is encoded implicitly by the URL columns. Multi-source rows (where the same IPA appears in multiple sources) have both URLs populated.
Broad vs Narrow Normalization
Region Tag Convention
BCP-47 extended with -x- for sub-regions.
Usage
from datasets import load_dataset
ds = load_dataset("TigreGotico/portuguese-unified-pronunciation-lexicon", split="train")
# European Portuguese nouns from infopedia
pt_nouns = ds.filter(
lambda r: (r["pos"] == "NOUN")
& (r["region"] == "pt-PT")
& (r["infopedia_url"] != "")
)
print(f"pt-PT nouns: {len(pt_nouns)} rows")
# All variants for one word
casa = ds.filter(lambda r: r["word"] == "casa")
for row in casa:
print(f" {row['region']:22} {row['pos']:6} {row['ipa_broad']}")
# Brazilian Portuguese verbs from the lexicon (no URL columns populated)
br_verbs = ds.filter(
lambda r: (r["pos"] == "VERB")
& (r["region"].str.startswith("pt-BR"))
& (r["phones"] != "")
)