September 13, 2023

Pišemo oflajn slovnik medžuslovjanskogo v 18 rědkov koda (ili ne)

Medžuslovjansky jezyk do tutčas ne imaje oflajn slovnika, i zato my idemo popraviti toj problem i sdělati hot něčto. Minimalno funkcionalna versija jest veliko prosta.

Najprvo dostavajemo sam slovnik. Oficialna tabela slovnika jest dostupna, my budemo dostati .csv, položiti jego v folder s programom, a potom pročitati i izbrati kolony, ktore sut potrěbne za nas:

import pandas as pd
​columns = [ 'isv', 'en', 'ru', 'be', 'uk', 'pl', 'cs', 'sk', 'bg', 'mk', 'sr', 'hr', 'sl']
words = pd.read_csv('words.csv')[columns]

Ako li vy někogda uživali medžuslovjansky slovnik, vy znajete, že on razděljaje slova črěz komu , ili znak ;. Stvorimo funkciju, ktora razděljaje prěvody na oddělne slova:

def split_by_coma(s, text):  
    if ";" in str(s):    
        return text.split("; ")  
    return text.split(", ")

A tut jest glavna čest koda. Ona pytaje člověka o jegovom jezyku, a potom iskaje vsako slovo ktoro on napisal, v koloně tutogo jezyka. Ako li něčto jest najdeno, pečetajemo rezultat na ekran.

print(f"Izberite jezyk {columns}")
lang = input()  

while True:  
    print("Napišite slovo")  
    word = input()    
    result = words[ words[lang].apply(lambda text: word in split_by_coma(word, text) ) ]   
    if result.empty:    
        print("Nema rezultatov")    
        continue  
    for row in result.iterrows():    
        print(row)

Možete zatestovati toj kod i uviděti že on rabotaje, ale jesm sdělal ješče něčto. Posylajemo toj kod do ChatGPT i prosimo prěpisati jego na jezyk Go, zatože on trěbuje malo resursov i velmi legko kompiluje se do .exe.

Jest zajmlivo, že ja jesm nikogda ranje ne pisal kod na Golang, i voobče instaloval jego jedino v tutoj denj. Samorazumno, umětny intelekt ne smogl směsta napisati korektny program, ale několiko zapytanij pomoglo čat-botu jego popraviti. Kod na Go jest ne jest tako kratky i ima priblizno 80 rědkov, ale jego uže pisal ne ja. Velika prědnost, imho.

Disclaimer: toj program ne rabotaje s priměrami slov v ktoryh sut zatvorky () ili nestandardne bukvy, ne jest optimizovany, i voobče jest jedino priměrom. Ale tutčas vy imajete něčto, da by vaš laptop mogl rabotati s medžuslovjanskym daže togda, kogda vy jeste v lěsu bez interneta.

Hvala za pročitanje, sam program možete najdti tut. Čekam vaše komentary, čto myslite o toj rabotě? Jest li potrěbno stvoriti polnocěnny oflajn slovnik, ili žitelji lěsa obyčno ne uživajut medžuslovjansky?