Zakręcone polskie ogonki

Twórcy komputerów nie mieli ogonków w alfabecie. To wiele wyjaśnia. To bardzo utrudnia tym, którzy mają ogonki, czyli większości ludzkości. W alfabecie polskim jest i tak stosunkowo prosto, bo mamy niewiele ogonków. Chociaż sobie oczywiście utrudniliśmy życie, niepotrzebnie tworząc za dużo stron kodowych. Utrudnił nam też Microsoft, bo w jego produktach są dwie strony kodowe używające polskich znaków: stara, jaszcze z MS-DOS’a cp852 – ciągle używana, nie wiadomo po co, chyba żeby utrudnić, w poleceniach konsoli i windows1250 – używana w dokumentach i programach działających w Windowsach. Tu leży mój problem: Postgres na Windows umie użyć prawidłowo tylko strony kodowej…

Continue Reading

Powoli do aplikacji

Pewien szkielet aplikacji już poczyniłem. Kod źródłowy jest na GitHubie. Oczywiście ta aplikacja nic szczególnego jeszcze nie robi: wyświetla pole tekstowe, w które można coś wpisać i przycisk ‚Tłumacz’, który można kliknąć. Po kliknięciu pod spodem wyświetla się jakiś napis. Szczytne założenie jest takie, że po wpisaniu tekstu angielskiego i kliknięciu wyświetli się jego polskie tłumaczenie. Oczywiście trzeba pracę podzielić na jakieś etapy. Wymyśliłem sobie, żeby najpierw zająć się rzeczownikami. Trzeba zaimplementować tablice deklinacyjne wspomniane poprzednio i wprowadzić do bazy danych przynajmniej po kilka rzeczowników z każdej grupy. Już to będzie niezłą zabawą. Trzeba też wymyślić, jak rzeczowniki mają być…

Continue Reading

Zmaganie

Zmagam się ze sobą. Pomysł uruchomienia tego bloga i napisania aplikacji tłumaczącej powstał w czasie, kiedy miałem dobry nastrój, byłem pełen energii, optymizmu, wiary w siebie i swoje umiejętności. Teraz nadszedł czas Wielkiego Postu, czas modlitwy, wyrzeczeń, rekolekcji, katechez, refleksji nad swoim życiem i nad pomysłami na jego wypełnienie. O ile poprzednio zajmowało mnie to bardzo, o tyle teraz przestałem trochę myśleć o superautomatycznym tłumaczu, a zająłem się innymi, zapewne ważniejszymi, sprawami. Ciągle jednak chcę zrealizować mój zamiar, nie jest on chyba taki całkiem głupi, tyle że obecnie mam pewien zastój w tej kwestii. Mam nadzieję, że nie mi się…

Continue Reading

Porażka

Miałem trochę czasu w weekend, więc chciałem przestać teoretyzować, a zacząć coś pisać. Może nie jest to zbyt poprawne metodologicznie, bo według tej najbardziej klasycznej teorii najpierw trzeba przeprowadzić analizę, potem wykonać projekt techniczny, a samą robotę kodowania zostawić na koniec. Tak się buduje domy, samochody i inne tego typu wytwory. Niektórzy tak budują oprogramowanie i nawet ma to swoją namaszczoną metodologię. Jednak z psychologicznego punktu widzenia takie podejście jest całkowicie niepoprawne. Normalny człowiek chce jak najszybciej widzieć jakiś efekt, niekoniecznie finalny, ale program robiący cokolwiek, który można będzie potem rozwijać i poprawiać. Zwykle takie podejście prowadzi do powstawania konstrukcji obarczonych…

Continue Reading

Trzeba zacząć od początku

Początek jest taki, że mam tekst angielski na wejściu. Dość łatwo można go podzielić na słowa, ale w tym momencie łatwość się kończy. W przeciwieństwie do języka polskiego, w angielskim to samo słowo może być zarówno czasownikiem, rzeczownikiem, przymiotnikiem, a w niektórych przypadkach również przysłówkiem. Czyli najpierw trzeba stwierdzić, z jaką częścią mowy mamy do czynienia, to już jest prawie połowa sukcesu, bo dalsze postępowanie dla polskich słów silnie zależy od tego ustalenia. Weźmy przykład z bloga mojego ulubionego programisty: That’s the natural evolution of things and that’s how you can build this complex software. Czyli: to jest naturalna ewolucja…

Continue Reading

Strona techniczna

Stronę techniczną tłumaczeń postanowiłem zrealizować w Javie. Na pewno nie dlatego, że jestem mistrzem tego języka. W tej chwili nawet trudno mówić o języku, raczej jest jest to ogromy zbiór bibliotek, standardów, technologii, wzorców projektowych, środowisk wszelakiego typu i wielu innych pomysłów, jak choćby nowych języków programowania. Samych trzyliterowych skrótów oczywistych dla wtajemniczonych jest co najmniej kilkanaście i w dodatku nie wszystkie zaczynają się na J, a są jeszcze skróty czteroliterowe i dłuższe oraz przeróżne nazwy własne. Trzeba po prostu coś wybrać, bo argumentów o wyższości javowej Wielkanocy nad Bożym Narodzeniem znajdzie się co niemiara. Wybrałem jako podstawowy framework, czyli…

Continue Reading

Ciągle o programiście

I’m a programmer – jestem programistą You’re a programmer – jesteś programistą He is a programmer – on jest programistą We’re programmers – Google: Jesteśmy programistów You are programmers – jesteście programistami They are programmers – są programistami (również programistkami, zależnie od wcześniejszego kontekstu) Co za bogactwo możliwości. Chyba można wstępnie założyć, że zdanie oznajmujące w angielskim zaczyna się od pary podmiot-orzeczenie. W każdym razie to by bardzo pomogło. Tu jednak mamy inny problem: złączeń podmiotu z orzeczeniem, jeśli podmiot jest wyrażony zaimkiem. Może zresztą to nie jest jakiś wielki problem: wystarczy zapamiętać kilka takich złączeń i tłumaczyć je bezpośrednio.…

Continue Reading

Infrastruktura

Zacząłem myśleć o technicznej stronie tłumaczenia. Wymyśliłem sobie, że dobrze by było udostępnić aplikację tłumaczącą w internecie, tak żeby każdy mógł łatwo wpisać jakiś tekst angielski i uzyskać polskie tłumaczenie. No z tym polskim, to może trochę przesadziłem, zwłaszcza w początkowej fazie. Głównie chodzi mi o to, że jak program jest publicznie dostępny, to po pierwsze daje silniejszą motywację do jego rozwoju, a po drugie pozwala uzyskać znaczną liczbę materiału do przemyśleń i wnoszenia poprawek. Zawsze użytkownik myśli inaczej niż deweloper, ma inne potrzeby i oczekiwania, co pozwala dostosować aplikację do rzeczywistych warunków używania. Powstaje problem gdzie i jak udostępnić…

Continue Reading

Gramatyka

Zajrzałem na stronę o gramatyce języka polskiego napisanej przez Grzegorza Jagodzińskiego. Wiedza tam zawarta niewątpliwie musi być podstawą programu tłumaczącego. Właśnie taki jest cel tego bloga i projektu: żeby tłumaczenie było przynajmniej gramatycznie poprawne. Będę bardzo zadowolony, jeśli chociaż w jakimś stopniu osiągnę ten cel zamiar. Generalnie mamy dziesięć tradycyjnych polskich części mowy, o takich mnie uczyli w szkole: rzeczowniki, przymiotniki, liczebniki, zaimki, czasowniki, przysłówki, przyimki, spójniki, wykrzykniki i partykuły. Tego będę się trzymał, przynajmniej na początku, tworząc klasy i algorytmy. Spróbuję dla wyrazów angielskich określić, jaką polską częścią mowy jest dany wyraz i postąpić dalej według schematu dla tej…

Continue Reading

Magia wyrazów

Bardzo podoba mi się rozróżnienie na słowa i wyrazy z poprzedniego wpisu. Słowa mogą być w prosty sposób wydzielone z wprowadzonego tekstu i tu zaczyna się pierwsza zasadnicza część tłumaczenia – przekształcanie w wyrazy. W języku polskim jest to chyba trochę prostsze do przeprowadzenia, bo przeważająca część wyrazów jest jednosłowna. Jako wyjątki przychodzą mi do głowy czasowniki zwrotne (ubierać się), czas przyszły (będę pisał) i tryb przypuszczający form bezosobowych (zostało by) – też czasowniki. W angielskim jest z tym trochę gorzej. Można naliczyć co najmniej kilka grup wyrazów, które są wielosłowne, na przykład bezokoliczniki (to make), rzeczowniki (a word, the…

Continue Reading