Értelmetlen szavak a hunspell-ben?

Pici lányom nyelvtan háziját csinálom:)

A feladat: Milyen értelmes szó rakható ki a 'doliunk' betűkből?

írtam rá egy ilyet:


import itertools
import hunspell

hobj = hunspell.HunSpell('/usr/share/hunspell/hu_HU.dic', '/usr/share/hunspell/hu_HU.aff')
betűsor = 'doliunk'
permutációk = sorted(list(set([''.join(p) for p in itertools.permutations(betűsor)])))
helyes_permutációk = [ p for p in permutációk if hobj.spell(p) ] #csak akkor kerül bele a listába, ha a hunspell szerint helyes a szó
print("\n".join(helyes_permutációk))

és van benne pár meglepő eredmény. A teljes lista:

idolkun
idolunk
indokul
indulok
kondiul
kulidon
kunidol
oknudli
oldniuk

Ha akarom, épp mind lehet értelmes...

De egy másik sztringre már végképp vállalhatatlanok is előjönnek:
(szerk: ez a teljes lista)

köpültre
lükepört
pertökül
pertülök
pörtelük
pörtülke
repültök
röpültek
tökeprül
tökperül
tülökper
ükperölt
ükölpert
ülepkört

Miért? Vagy csak én vagyok fantáziátlan?

Hozzászólások

De egy másik sztringre már végképp vállalhatatlanok is előjönnek:
[...]
repültök
röpültek
[...]

Ezek például miért vállalhatatlanok?

A parancssori hunspell valamilyen parancsa kiírja, hogy hogy jött ki a szó. De nekem enélkül is megy. A felsorolt példák többnyire összetett szavak, amelyek értelmetlenek, de attól még helyesek.

Pl.
tökeprül = tök + eper + -ül képző
ükölpert = ük + öl + per + tárgyrag

Tímárék többet értek el önzetlenül, mint a Microsoft magyar helyesírási algoritmusát végző profit-orientált cég.
Nem tartom valószínűtlennek, hogy az alapvető szóösszetételekben is sokkal előrébb járnak.
Tímárék munkája MTA díszdoktori érdemekkel bír, mintsem magyarázkodásra-bírásra.

Szerintem az automatikus összetett-szó elfogadás zavarhat téged. Rémlik hogy ki lehet kapcsolni, úgy valószínűleg neked erre a célra jobban megfelelhet. Természetesen lesz "veszteség" úgyhogy ha minden-minden szót meg akarsz találni akkor sajnos marad a kézi szűrés.

"Pici lányom nyelvtan háziját csinálom:) [...] írtam rá egy ilyet: [...]"

Az igazi geek szülő :)

Életemben először pythonoztam, de továbbírtam:
sudo apt-get install python-hunspell python-dev libhunspell-dev

#!/usr/bin/python
#-*- coding: utf-8 -*-

import itertools
import hunspell
import sys
reload(sys)
sys.setdefaultencoding('utf-8')

permutaciok = [ ]
hobj = hunspell.HunSpell('/usr/share/hunspell/hu_HU.dic', '/usr/share/hunspell/hu_HU.aff')
betusor = u'csörög'
for l in range(2, len(betusor)+1):
     permutaciok = permutaciok + sorted(list(set([''.join(p) for p in itertools.permutations(betusor, l)])))
helyes_permutaciok = [ p for p in permutaciok if hobj.spell(p) ]
print("\n".join(helyes_permutaciok))

cg
cs
rög
sör
öcs
göcs
görcs
rögös
csörög
rögöcs

Tud valaki egyébként valami kontaktot a készítőkhöz? Tényleg sokkal jobb a MS-féle helyesírás-ellenőrzőnél (főleg most, hogy frissült az új helyesírás szerint), mégis van benne egy-két hiba. Az „e-mail-cím” szót hibásnak jelöli a LibreOffice-ban, és az „e-mailcím” változatot javasolja helyette, pedig a helyesírási szótár szerint az első a helyes.

--
"Trollhammaren sveper igen..."