Az FSF.hu Alapítványon keresztül keresett meg Simonyi Béla egy érdekes feladattal: hogyan lehet szótöveket előállítani egy magyar szólistából? A Linux terjesztések részeként is elérhető Hunspell programmal egyszerűen:
echo "szótöveket előállítani szólistából" | hunspell -d hu_HU -s szótöveket szótő előállítani előállít szólistából szólista
De mi van, ha éppen nem áll rendelkezésre Linux? Használhatjuk a Windows alá elérhető Cygwin keretrendszer, vagy a macOS parancssorát, ahol ingyenesen is elérhető szabad szoftverekkel fordíthatjuk le a Hunspell programot.
A következő LibreOffice makróval még erre sincsen szükség, elég egy magyar LibreOffice, és annak beépített, tövezésre is alkalmassá tett magyar szótára:
Sub StemmingWordPerLines Dim language As New com.sun.star.lang.Locale language.Language = "hu" language.Country = "HU" spellchecking = createUnoService("com.sun.star.linguistic2.SpellChecker") Doc = ThisComponent Pars = ThisComponent.Text.createEnumeration While Pars.hasMoreElements TextElement = Pars.nextElement If TextElement.supportsService("com.sun.star.text.Paragraph") Then Word = TextElement.String If spellchecking.isValid(Word, language, Array()) Then result = spellchecking.spell("<?xml?><query type='stem'><word>" + Word + "</word></query>", language, Array()) If not IsNull(result) and result.getAlternativesCount > 0 Then alternatives = result.getAlternatives stems = Word For i = 0 To result.getAlternativesCount - 1 stems = stems + " " + alternatives(i) Next TextElement.String = stems End If End If End If WEnd End Sub
Töltsük be a Writer dokumentumszerkesztő ablakába a soronként egy szót tartalmazó szólistánkat, és indítsuk el a makrót akár a makrószerkesztőben a makróra állítva a kurzort az F5 billentyű lenyomásával, akár a Writer Eszközök…→Makrók→Makrók futtatása… menüpontján keresztül. Az eredmény ugyanaz lesz: minden szó mellett megjelenik a szó (egy vagy több) töve, ahogy a mellékelt videó végén látható:
A fenti makrót tartalmazó, a videóban szereplő módon a LibreOffice-ba importálható makróállomány itt tölthető le.
Ez a makró pedig az egyes szavak mögé (szóközzel elválasztva) kiírja a szinomímákat (rokonértelmű szavakat):
https://pastebin.com/Awz0tQqu