On 01/10/12 02:47, Petter Reinholdtsen wrote:
// Det finnes vel foreløpig ikke noen konkret, fungerende norsk // grammatikkontroll til dette prosjektet? Vet Arno begynte på noe, men // det er vel ikke kommet lengre enn til prøvestadiet?
Aner ikke status, men tenkte det kunne være nyttig å henlede oppmerksomheten til Arnos initiativ, i tilfelle andre har lyst til å bidra.
Hei skyter inn noen ord her:
Jeg begynte på dette, prøvde ut to forskjellige grammatikkontroll-rammeverk (LanguageTool og Lightproof). Kort sagt: I høyeste grad på alfa-stadiet.
Det er ikke meningen å kapre tråden her, mest for å si fra hvordan ståa er, dette.
Langt sagt:
LanguageTool har noen vesentlige bakdeler: - monolittisk (alle støttede språk er pakket i én svær fil) - java-basert. Ikke nødvendigvis noe galt i det, men saken blir større, mer komplisert og tregere. - skilt fra stavekontrollen. Kan være en fordel i noen tilfelle, men jeg tror det er en fordel med _integrert_ grammatikk+stavekontroll
En fordel kan være at kildekoden for alle språkene er samla på ett sted. Tror dog ikke sluttbrukerne har noen større glede av det. Personlig tror jeg python-baserte lightproof er veien å gå. De fleste wiki-sidene jeg skrev, er derimot dessverre basert på LanguageTool...
Har dog støtt på et grunnleggende problem som angår både Lightproof og LanguageTool: Har inntrykk av at den eksisterende hunspell-stavekontrollen er basert på hvordan ordene "ser ut", ikke "hva de er". Tror dette problemet må løses før en kan ta ordentlig fatt på grammatikkontroll.
En grammatikkontroll trenger å vite noe om ordets funksjon i setningen. Lightproof sier for eksempel fra om homonymer, og deres forskjellige meninger. Hunspell-taggene brukes derimot til å beskrive hvordan ordet kan "bøyes"/modifiseres, uavhengig av betydningen.
Det er to hovedproblemer med denne tilnærmingen hvis samme ordliste skal brukes til grammatikkontroll og stavekontroll:
1) grammatikkontrollen må ha grammatikktagger for at "part of speech (setningsfunksjon)"-analysen skal fungere. Eksempel:
vann
I eksisterende hunspell-fil nb_NO.dic finnes det én oppføring og ingen grammatikktagger: vann/BCEGHJKMVW^z
mens betydningene kan være flere:
vann/<tagger> # po: noun <mengdeord, "væske"=mye/lite vann> vann/<tagger> # po: noun <tellbart ord, "innsjø"=et eller flere vann> vanne/<tagger> # po: verb <å vanne noe>
I eksisterende hunspell blir dette "logisk feil, men kosmetisk riktig":
hunspell -d nb_NO -m vann vann st:vann <- et vann/imperativ av "vanne", osv vann st:vanne fl:R <- imperativ av "vanne" (strippet e)
vanner vanner st:vanne fl:E <- presens av "vanne" vanner st:vann fl:E <- flertall vann !? hunspell redder seg ut ved at "vanner" et gyldig ord. Men det er ikke basert på "vann", så det er logisk feil.
Det er imidlertid vanskelig å legge til tagger i nb_NO.dic når rotordene kan ha flere betydninger.
2) homonymer har bare én oppføring, mens det kan være flere betydninger : nb_NO.dic: hoppe/ABCEFGHJMRSTYtz
hoppe # po:verb (å hoppe) hoppe # po:noun (ei hoppe)
- i tillegg til bøyninger som "kan hoppe", "skal hoppe" osv; de vil komme av verbet.
Her også er det vanskelig å legge til tagger i nb_NO.dic når rotordene kan ha flere betydninger.
-------------------------------
På grunn av alt dette har jeg luktet litt på huftis' *ordbanken*. Fant ut at det i fullformlista brukes paradigmekoder, temmelig nøyaktige.
Et pluss er at listen også har kombinasjons-hint som "hoppe <over> <ned> <på>" osv
Etter litegrann begynner-knotting kommer jeg opp med:
hunspell -d nb_NO_GRAMHACK -m hopper hopper st:hoppe po:noun is:ub sx:m # is:plur <- flere hopper, plural. hopper st:hoppe po:verb # is:pres <- jeg hopper, presens.
Hunspell kan bruke numeriske tagger, så jeg har tatt i bruk paradigmekodene fra fullformlista.
Mulig at lista blir større på dette viset, men det blir mer nøyaktig enn bare "rett/feil" ord, som hunspell bryr seg med.
OK det var noen ord om hva jeg har puslet med i det siste. Skal se å få lagt det ut på cvs/svn eller hvor det nå var, og skrive noe av dette på wikien også.
Arno