User:Menasewi/tokiPonaWordlist.py

From sona pona, the Toki Pona wiki
import re

words = input("Input source text:\n")
words = words.replace("- ", "") # Remove hyphenation
words = re.split(r"[^A-Za-z]+", words) # Split by non-letter characters
words = {i for i in words if i.islower()} # Remove words with caps, duplicates

# Check for nonstandard words (not pu, ku suli, "majuna", or "su")
allStandardWords = {"a", "akesi", "ala", "alasa", "ale", "ali", "anpa", "ante", "anu", "awen", "e", "en", "epiku", "esun", "ijo", "ike", "ilo", "insa", "jaki", "jan", "jasima", "jelo", "jo", "kala", "kalama", "kama", "kasi", "ken", "kepeken", "kijetesantakalu", "kili", "kin", "kipisi", "kiwen", "ko", "kokosila", "kon", "ku", "kule", "kulupu", "kute", "la", "lanpan", "lape", "laso", "lawa", "leko", "len", "lete", "li", "lili", "linja", "lipu", "loje", "lon", "luka", "lukin", "lupa", "ma", "majuna", "mama", "mani", "meli", "meso", "mi", "mije", "misikeke", "moku", "moli", "monsi", "monsuta", "mu", "mun", "musi", "mute", "n", "namako", "nanpa", "nasa", "nasin", "nena", "ni", "nimi", "noka", "o", "oko", "olin", "ona", "open", "pakala", "pali", "palisa", "pan", "pana", "pi", "pilin", "pimeja", "pini", "pipi", "poka", "poki", "pona", "pu", "sama", "seli", "selo", "seme", "sewi", "sijelo", "sike", "sin", "sina", "sinpin", "sitelen", "soko", "sona", "soweli", "su", "suli", "suno", "supa", "suwi", "tan", "taso", "tawa", "telo", "tenpo", "toki", "tomo", "tonsi", "tu", "unpa", "uta", "utala", "walo", "wan", "waso", "wawa", "weka", "wile"}
nonstandardWords = words - allStandardWords
standardWords = words - nonstandardWords

# Sort
words = sorted(words)
nonstandardWords = sorted(nonstandardWords)
standardWords = sorted(standardWords)

print("\nWordlist\n" + " ".join(words))
if nonstandardWords:
    print(f"\nVerify {str(len(nonstandardWords))} nonstandard word(s)\n" + " ".join(nonstandardWords))
    print("\nStandard only\n" + " ".join(standardWords))