# coding: utf8
from __future__ import unicode_literals

# Daftar kosakata yang sering salah dieja
# https://id.wikipedia.org/wiki/Wikipedia:Daftar_kosakata_bahasa_Indonesia_yang_sering_salah_dieja
_exc = {
    # Slang and abbreviations
    "silahkan": "silakan",
    "yg": "yang",
    "kalo": "kalau",
    "cawu": "caturwulan",
    "ok": "oke",
    "gak": "tidak",
    "enggak": "tidak",
    "nggak": "tidak",
    "ndak": "tidak",
    "ngga": "tidak",
    "dgn": "dengan",
    "tdk": "tidak",
    "jg": "juga",
    "klo": "kalau",
    "denger": "dengar",
    "pinter": "pintar",
    "krn": "karena",
    "nemuin": "menemukan",
    "jgn": "jangan",
    "udah": "sudah",
    "sy": "saya",
    "udh": "sudah",
    "dapetin": "mendapatkan",
    "ngelakuin": "melakukan",
    "ngebuat": "membuat",
    "membikin": "membuat",
    "bikin": "buat",
    # Daftar kosakata yang sering salah dieja
    "malpraktik": "malapraktik",
    "malfungsi": "malafungsi",
    "malserap": "malaserap",
    "maladaptasi": "malaadaptasi",
    "malsuai": "malasuai",
    "maldistribusi": "maladistribusi",
    "malgizi": "malagizi",
    "malsikap": "malasikap",
    "memperhatikan": "memerhatikan",
    "akte": "akta",
    "cemilan": "camilan",
    "esei": "esai",
    "frase": "frasa",
    "kafeteria": "kafetaria",
    "ketapel": "katapel",
    "kenderaan": "kendaraan",
    "menejemen": "manajemen",
    "menejer": "manajer",
    "mesjid": "masjid",
    "rebo": "rabu",
    "seksama": "saksama",
    "senggama": "sanggama",
    "sekedar": "sekadar",
    "seprei": "seprai",
    "semedi": "semadi",
    "samadi": "semadi",
    "amandemen": "amendemen",
    "algoritma": "algoritme",
    "aritmatika": "aritmetika",
    "metoda": "metode",
    "materai": "meterai",
    "meterei": "meterai",
    "kalendar": "kalender",
    "kadaluwarsa": "kedaluwarsa",
    "katagori": "kategori",
    "parlamen": "parlemen",
    "sekular": "sekuler",
    "selular": "seluler",
    "sirkular": "sirkuler",
    "survai": "survei",
    "survey": "survei",
    "aktuil": "aktual",
    "formil": "formal",
    "trotoir": "trotoar",
    "komersiil": "komersial",
    "komersil": "komersial",
    "tradisionil": "tradisionial",
    "orisinil": "orisinal",
    "orijinil": "orisinal",
    "afdol": "afdal",
    "antri": "antre",
    "apotik": "apotek",
    "atlit": "atlet",
    "atmosfir": "atmosfer",
    "cidera": "cedera",
    "cendikiawan": "cendekiawan",
    "cepet": "cepat",
    "cinderamata": "cenderamata",
    "debet": "debit",
    "difinisi": "definisi",
    "dekrit": "dekret",
    "disain": "desain",
    "diskripsi": "deskripsi",
    "diskotik": "diskotek",
    "eksim": "eksem",
    "exim": "eksem",
    "faidah": "faedah",
    "ekstrim": "ekstrem",
    "ekstrimis": "ekstremis",
    "komplit": "komplet",
    "konkrit": "konkret",
    "kongkrit": "konkret",
    "kongkret": "konkret",
    "kridit": "kredit",
    "musium": "museum",
    "pinalti": "penalti",
    "piranti": "peranti",
    "pinsil": "pensil",
    "personil": "personel",
    "sistim": "sistem",
    "teoritis": "teoretis",
    "vidio": "video",
    "cengkeh": "cengkih",
    "desertasi": "disertasi",
    "hakekat": "hakikat",
    "intelejen": "intelijen",
    "kaedah": "kaidah",
    "kempes": "kempis",
    "kementrian": "kementerian",
    "ledeng": "leding",
    "nasehat": "nasihat",
    "penasehat": "penasihat",
    "praktek": "praktik",
    "praktekum": "praktikum",
    "resiko": "risiko",
    "retsleting": "ritsleting",
    "senen": "senin",
    "amuba": "ameba",
    "punggawa": "penggawa",
    "surban": "serban",
    "nomer": "nomor",
    "sorban": "serban",
    "bis": "bus",
    "agribisnis": "agrobisnis",
    "kantung": "kantong",
    "khutbah": "khotbah",
    "mandur": "mandor",
    "rubuh": "roboh",
    "pastur": "pastor",
    "supir": "sopir",
    "goncang": "guncang",
    "goa": "gua",
    "kaos": "kaus",
    "kokoh": "kukuh",
    "komulatif": "kumulatif",
    "kolomnis": "kolumnis",
    "korma": "kurma",
    "lobang": "lubang",
    "limo": "limusin",
    "limosin": "limusin",
    "mangkok": "mangkuk",
    "saos": "saus",
    "sop": "sup",
    "sorga": "surga",
    "tegor": "tegur",
    "telor": "telur",
    "obrak-abrik": "ubrak-abrik",
    "ekwivalen": "ekuivalen",
    "frekwensi": "frekuensi",
    "konsekwensi": "konsekuensi",
    "kwadran": "kuadran",
    "kwadrat": "kuadrat",
    "kwalifikasi": "kualifikasi",
    "kwalitas": "kualitas",
    "kwalitet": "kualitas",
    "kwalitatif": "kualitatif",
    "kwantitas": "kuantitas",
    "kwantitatif": "kuantitatif",
    "kwantum": "kuantum",
    "kwartal": "kuartal",
    "kwintal": "kuintal",
    "kwitansi": "kuitansi",
    "kwatir": "khawatir",
    "kuatir": "khawatir",
    "jadual": "jadwal",
    "hirarki": "hierarki",
    "karir": "karier",
    "aktip": "aktif",
    "daptar": "daftar",
    "efektip": "efektif",
    "epektif": "efektif",
    "epektip": "efektif",
    "Pebruari": "Februari",
    "pisik": "fisik",
    "pondasi": "fondasi",
    "photo": "foto",
    "photokopi": "fotokopi",
    "hapal": "hafal",
    "insap": "insaf",
    "insyaf": "insaf",
    "konperensi": "konferensi",
    "kreatip": "kreatif",
    "kreativ": "kreatif",
    "maap": "maaf",
    "napsu": "nafsu",
    "negatip": "negatif",
    "negativ": "negatif",
    "objektip": "objektif",
    "obyektip": "objektif",
    "obyektif": "objektif",
    "pasip": "pasif",
    "pasiv": "pasif",
    "positip": "positif",
    "positiv": "positif",
    "produktip": "produktif",
    "produktiv": "produktif",
    "sarap": "saraf",
    "sertipikat": "sertifikat",
    "subjektip": "subjektif",
    "subyektip": "subjektif",
    "subyektif": "subjektif",
    "tarip": "tarif",
    "transitip": "transitif",
    "transitiv": "transitif",
    "faham": "paham",
    "fikir": "pikir",
    "berfikir": "berpikir",
    "telefon": "telepon",
    "telfon": "telepon",
    "telpon": "telepon",
    "tilpon": "telepon",
    "nafas": "napas",
    "bernafas": "bernapas",
    "pernafasan": "pernapasan",
    "vermak": "permak",
    "vulpen": "pulpen",
    "aktifis": "aktivis",
    "konfeksi": "konveksi",
    "motifasi": "motivasi",
    "Nopember": "November",
    "propinsi": "provinsi",
    "babtis": "baptis",
    "jerembab": "jerembap",
    "lembab": "lembap",
    "sembab": "sembap",
    "saptu": "sabtu",
    "tekat": "tekad",
    "bejad": "bejat",
    "nekad": "nekat",
    "otoped": "otopet",
    "skuad": "skuat",
    "jenius": "genius",
    "marjin": "margin",
    "marjinal": "marginal",
    "obyek": "objek",
    "subyek": "subjek",
    "projek": "proyek",
    "azas": "asas",
    "ijasah": "ijazah",
    "jenasah": "jenazah",
    "plasa": "plaza",
    "bathin": "batin",
    "Katholik": "Katolik",
    "orthografi": "ortografi",
    "pathogen": "patogen",
    "theologi": "teologi",
    "ijin": "izin",
    "rejeki": "rezeki",
    "rejim": "rezim",
    "jaman": "zaman",
    "jamrud": "zamrud",
    "jinah": "zina",
    "perjinahan": "perzinaan",
    "anugrah": "anugerah",
    "cendrawasih": "cenderawasih",
    "jendral": "jenderal",
    "kripik": "keripik",
    "krupuk": "kerupuk",
    "ksatria": "kesatria",
    "mentri": "menteri",
    "negri": "negeri",
    "Prancis": "Perancis",
    "sebrang": "seberang",
    "menyebrang": "menyeberang",
    "Sumatra": "Sumatera",
    "trampil": "terampil",
    "isteri": "istri",
    "justeru": "justru",
    "perajurit": "prajurit",
    "putera": "putra",
    "puteri": "putri",
    "samudera": "samudra",
    "sastera": "sastra",
    "sutera": "sutra",
    "terompet": "trompet",
    "iklas": "ikhlas",
    "iktisar": "ikhtisar",
    "kafilah": "khafilah",
    "kawatir": "khawatir",
    "kotbah": "khotbah",
    "kusyuk": "khusyuk",
    "makluk": "makhluk",
    "mahluk": "makhluk",
    "mahkluk": "makhluk",
    "nahkoda": "nakhoda",
    "nakoda": "nakhoda",
    "tahta": "takhta",
    "takhyul": "takhayul",
    "tahyul": "takhayul",
    "tahayul": "takhayul",
    "akhli": "ahli",
    "anarkhi": "anarki",
    "kharisma": "karisma",
    "kharismatik": "karismatik",
    "mahsud": "maksud",
    "makhsud": "maksud",
    "rakhmat": "rahmat",
    "tekhnik": "teknik",
    "tehnik": "teknik",
    "tehnologi": "teknologi",
    "ikhwal": "ihwal",
    "expor": "ekspor",
    "extra": "ekstra",
    "komplex": "komplek",
    "sex": "seks",
    "taxi": "taksi",
    "extasi": "ekstasi",
    "syaraf": "saraf",
    "syurga": "surga",
    "mashur": "masyhur",
    "masyur": "masyhur",
    "mahsyur": "masyhur",
    "mashyur": "masyhur",
    "muadzin": "muazin",
    "adzan": "azan",
    "ustadz": "ustaz",
    "ustad": "ustaz",
    "ustadzah": "ustaz",
    "dzikir": "zikir",
    "dzuhur": "zuhur",
    "dhuhur": "zuhur",
    "zhuhur": "zuhur",
    "analisa": "analisis",
    "diagnosa": "diagnosis",
    "hipotesa": "hipotesis",
    "sintesa": "sintesis",
    "aktiviti": "aktivitas",
    "aktifitas": "aktivitas",
    "efektifitas": "efektivitas",
    "komuniti": "komunitas",
    "kreatifitas": "kreativitas",
    "produktifitas": "produktivitas",
    "realiti": "realitas",
    "realita": "realitas",
    "selebriti": "selebritas",
    "spotifitas": "sportivitas",
    "universiti": "universitas",
    "utiliti": "utilitas",
    "validiti": "validitas",
    "dilokalisir": "dilokalisasi",
    "didramatisir": "didramatisasi",
    "dipolitisir": "dipolitisasi",
    "dinetralisir": "dinetralisasi",
    "dikonfrontir": "dikonfrontasi",
    "mendominir": "mendominasi",
    "koordinir": "koordinasi",
    "proklamir": "proklamasi",
    "terorganisir": "terorganisasi",
    "terealisir": "terealisasi",
    "robah": "ubah",
    "dirubah": "diubah",
    "merubah": "mengubah",
    "terlanjur": "telanjur",
    "terlantar": "telantar",
    "penglepasan": "pelepasan",
    "pelihatan": "penglihatan",
    "pemukiman": "permukiman",
    "pengrumahan": "perumahan",
    "penyewaan": "persewaan",
    "menyintai": "mencintai",
    "menyolok": "mencolok",
    "contek": "sontek",
    "mencontek": "menyontek",
    "pungkir": "mungkir",
    "dipungkiri": "dimungkiri",
    "kupungkiri": "kumungkiri",
    "kaupungkiri": "kaumungkiri",
    "nampak": "tampak",
    "nampaknya": "tampaknya",
    "nongkrong": "tongkrong",
    "berternak": "beternak",
    "berterbangan": "beterbangan",
    "berserta": "beserta",
    "berperkara": "beperkara",
    "berpergian": "bepergian",
    "berkerja": "bekerja",
    "berberapa": "beberapa",
    "terbersit": "tebersit",
    "terpercaya": "tepercaya",
    "terperdaya": "teperdaya",
    "terpercik": "tepercik",
    "terpergok": "tepergok",
    "aksesoris": "aksesori",
    "handal": "andal",
    "hantar": "antar",
    "panutan": "anutan",
    "atsiri": "asiri",
    "bhakti": "bakti",
    "china": "cina",
    "dharma": "darma",
    "diktaktor": "diktator",
    "eksport": "ekspor",
    "hembus": "embus",
    "hadits": "hadis",
    "hadist": "hadits",
    "harafiah": "harfiah",
    "himbau": "imbau",
    "import": "impor",
    "inget": "ingat",
    "hisap": "isap",
    "interprestasi": "interpretasi",
    "kangker": "kanker",
    "konggres": "kongres",
    "lansekap": "lanskap",
    "maghrib": "magrib",
    "emak": "mak",
    "moderen": "modern",
    "pasport": "paspor",
    "perduli": "peduli",
    "ramadhan": "ramadan",
    "rapih": "rapi",
    "Sansekerta": "Sanskerta",
    "shalat": "salat",
    "sholat": "salat",
    "silahkan": "silakan",
    "standard": "standar",
    "hutang": "utang",
    "zinah": "zina",
    "ambulan": "ambulans",
    "antartika": "sntarktika",
    "arteri": "arteria",
    "asik": "asyik",
    "australi": "australia",
    "denga": "dengan",
    "depo": "depot",
    "detil": "detail",
    "ensiklopedi": "ensiklopedia",
    "elit": "elite",
    "frustasi": "frustrasi",
    "gladi": "geladi",
    "greget": "gereget",
    "itali": "italia",
    "karna": "karena",
    "klenteng": "kelenteng",
    "erling": "kerling",
    "kontruksi": "konstruksi",
    "masal": "massal",
    "merk": "merek",
    "respon": "respons",
    "diresponi": "direspons",
    "skak": "sekak",
    "stir": "setir",
    "singapur": "singapura",
    "standarisasi": "standardisasi",
    "varitas": "varietas",
    "amphibi": "amfibi",
    "anjlog": "anjlok",
    "alpukat": "avokad",
    "alpokat": "avokad",
    "bolpen": "pulpen",
    "cabe": "cabai",
    "cabay": "cabai",
    "ceret": "cerek",
    "differensial": "diferensial",
    "duren": "durian",
    "faksimili": "faksimile",
    "faksimil": "faksimile",
    "graha": "gerha",
    "goblog": "goblok",
    "gombrong": "gombroh",
    "horden": "gorden",
    "korden": "gorden",
    "gubug": "gubuk",
    "imaginasi": "imajinasi",
    "jerigen": "jeriken",
    "jirigen": "jeriken",
    "carut-marut": "karut-marut",
    "kwota": "kuota",
    "mahzab": "mazhab",
    "mempesona": "memesona",
    "milyar": "miliar",
    "missi": "misi",
    "nenas": "nanas",
    "negoisasi": "negosiasi",
    "automotif": "otomotif",
    "pararel": "paralel",
    "paska": "pasca",
    "prosen": "persen",
    "pete": "petai",
    "petay": "petai",
    "proffesor": "profesor",
    "rame": "ramai",
    "rapot": "rapor",
    "rileks": "relaks",
    "rileksasi": "relaksasi",
    "renumerasi": "remunerasi",
    "seketaris": "sekretaris",
    "sekertaris": "sekretaris",
    "sensorik": "sensoris",
    "sentausa": "sentosa",
    "strawberi": "stroberi",
    "strawbery": "stroberi",
    "taqwa": "takwa",
    "tauco": "taoco",
    "tauge": "taoge",
    "toge": "taoge",
    "tauladan": "teladan",
    "taubat": "tobat",
    "trilyun": "triliun",
    "vissi": "visi",
    "coklat": "cokelat",
    "narkotika": "narkotik",
    "oase": "oasis",
    "politisi": "politikus",
    "terong": "terung",
    "wool": "wol",
    "himpit": "impit",
    "mujizat": "mukjizat",
    "mujijat": "mukjizat",
    "yag": "yang",
}

NORM_EXCEPTIONS = {}

for string, norm in _exc.items():
    NORM_EXCEPTIONS[string] = norm
    NORM_EXCEPTIONS[string.title()] = norm