logi sisse meist KKK
3
1

Kas eesti keele jaoks on olemas mõnda avatud lähtekoodiga stemmimise algoritmi? Nimelt tahaks natuke edasi arendada ühe e-poe otsingu algoritmi. Hetkel on nii ,et kui otsida näiteks sõna "klaviatuurid" siis ei leia sõna "klaviatuur". Samuti võiks töötada ka erinevad käänded ja pöörded - ehk kui kasutaja otsib "klaviatuurile", "klaviatuuriga", "klaviatuurilt" jne, siis oleks vaja kätte saada sõna algvorm "klaviatuur" ja otsida selle järgi.

Miski lihtsama stemmeriga saaksin vist ka ise hakkama, aga kardan et ei ole piisavalt pädev tundma kõiki eesti keele nüansse, et seda korralikult tööle saada.

küsitud Jun 05 '10 at 10:13

Svenson's gravatar image

Svenson
31224

See pole päris vastus, sellepärast panen ta siia kommentaarina. Igatahes räägib Jaak Pruulmann-Vengerfeldt 22.06 umbes kell 11:15 TÜ ATI seminaris (Tartus, J.Liivi 2-317) oma magistritööna tehtavast eesti keele spellerist, kus muuhulgas sees ka eesti keele morfoloogia formaalne kirjeldus.

(Jun 12 '10 at 22:41) Ahto Truu ♦♦

Kasuta näiteks Filosoft'i lemmatiseerijat aadressil http://www.filosoft.ee/lemma_et/

Oma teksti indekseerimisel viska esmalt välja kõik kirjavahemärgid, reavahed jms. Seejärel küsi iga sõna jaoks eelpool toodud lehe abil sõna lemma(d). Ühe vastuse korral on lihtne, mitme puhul pead juba nuputama, mis oleks parim lahendus. Saadud lemmadest koosnevast tekstist tee mingi vahendiga (andmebaas, Lucene, vms.) täistekstiindeks.

Otsingu tegemisel käitu sarnaselt. Otsingusõnad puhasta sama algoritmi abil kirjavahemärkidest, teisenda sõnad lemmadeks, ja otsi saadud tulemust oma täisteksiindeksist.

Järgmine samm on kasutada ka sünonüümisõnastikku. Indeksi loomine käiks ikka endiselt, aga otsingu tegemisel teisenda esmalt sõnad lemmadeks, siis leia kõikidele sõnadele sünonüümid ja kuuluta need omavahel ekvivalentseteks. Seejuures saavad piiravaks juba su valitud täisteksti-andmebaasi võimalused.

Ülejärgmine samm, et veel paremat tulemust saada, oleks lemmade leidmisel esmalt analüüsida tervet lauset. Sama kirjapildiga sõna võib olenevalt kontekstist laheneda erinevaks lemmaks. Filosoftil on selle jaoks ka vahend olemas.

Ehk siis. Eksperimentaalselt saaks lihtsalt üle veebi päringuid tehes ka mingi tulemuse tööle. Päris kindla lahenduse jaoks peaks siiski näiteks Filosoftiga läbi rääkima - ehk on nad siin kirjeldatud lahendusest ise ka huvitatud?

link

vastatud Apr 07 '11 at 02:03

Taavi%20Tiirik's gravatar image

Taavi Tiirik
411

Eesti Keele Instituut on avaldanud oma morfoloogilise analüüsi tarkvara, mis peaks leidma iga sõna võimalikud algvormid: http://www.eki.ee/tarkvara/analyys/

Ma ei ole seda ise proovinud - kui keegi on, siis palun jagage kogemusi!

Teine võimalus selle probleemi lahendamiseks oleks otsingus kasutada mitte ainult täpselt sisestatud sõna, vaid mõnda spellerites kasutatavat algoritmi sarnaste sõnade leidmiseks, näiteks http://en.wikipedia.org/wiki/Damerau%E2%80%93Levenshtein_distance

link

vastatud Jun 05 '10 at 15:44

Mattias%20Linnap's gravatar image

Mattias Linnap
412

EKI tarkvara töötab kenasti Delphi all, demo_unit.pas fail, sealt analyysi funktsioon, mis omakord kutsub välja ana.dll, selle lähtekoodid ka olemas. Variant, et kirjutad algoritmi ümber scripti keelde või kutsud selle dll välja, samas see DLL ei paista eriti threadsafe.

(Jun 05 '10 at 16:22) Ingmar Tammeväli

Kõige lihtsam on lõigata julmalt tuntuid pöördelõppe maha. See ei aita ainult erandite puhul (tuba -> toa), aga enamus juhtudel peaks asi toimima.

 ".(d|de|s|st|sse|l|lt|le|ni|na|ta|ga)$"

Kui kogemata lõikad sõna algvormi lühemaks, siis pole hullu kuna otsing peaks ikka üles leidma.

link

vastatud Jun 08 '10 at 06:36

egon's gravatar image

egon ♦♦
771239

Seda tükki, mida Sa otsid, nimetatakse lemmatiseerijaks. See on siis vahend, mille abil tagastatakse igast sõnavormist selle võimalikud algvormid (n: vorm "teed" annab 2 algvormi: tee ja tegema). Sellise asja on valmis kirjutanud Filosofti tegelased ja see asi on riigi poolt avalikus sektoris kasutamiseks ära ostetud.

Erasektoril paraku sellele asjale reaalne ligipääs puudub. Küsisin kasutamise võimalust Filosoftilt täpselt samal eesmärgil, aga kasutusõigus oli suurusjärgu või paari võrra kallim kui see ühe veebipoe otsingumootori komponendina ennast õigustada võiks.

Erinevalt Egonist arvan, et ülesanne ise on kaugel triviaalsusest (näiteks tüvevokaal on esimene pähkel, mis pähe kargab, või mis saab lõppude eemaldamisel sõnadest "laud" ja "kasse") ja Filosofti tüübid on kahtlemata ära teinud suure ja olulise töö. Jääb üle küsimus, kuidas oleks lemmatiseerija võimalik reaalselt ka kasutusse tuua?

Kindlasti tasub uurida ka EKI pakutavad morfoanalüüsi programmi, võimalik, et sellest annaks arendada mingi vabalt kasutatav teek.

link

vastatud Jun 30 '10 at 13:54

WK's gravatar image

WK
893712

Ei, sugugi ei arva, et ülesanne oleks triviaalne. Ma arvan lihtsalt, et antud olukorras piisab mingist 'hack'-st, mis sarnast asja teeb. Loomulikult võiks mingi eriti keeruka süsteemi külge ehitada, aga kui 70% olukordadest katetud ja ülejäänud 30% pärast keegi hätta ei jää - siis pole väga mõtet. (numbrid on lambist)

(Jul 02 '10 at 22:33) egon ♦♦

'Laud' lõpu eemaldamisel saaks 'lau', ning seda kasutades regexp-na stiilis 'lau.{0,3}'... leiaks veel sõna 'laul', 'lauk'...

Loomulikult saaks 'hack' ka keerulisemaks teha, et lühikeste sõnade puhul ainult lõigata "lühikesi lõppe". Aga eks see oleneb rohkem vajadusest.

(Jul 02 '10 at 22:42) egon ♦♦

http://www.eki.ee/keeletehnoloogia/tarkvara.html Filosofti lehelt ei saa alla laadida, vaid EKI omalt. ESTMORF, eesti keele morfoloogiline süntees ja analüüs. ESTMORF leiab tekstis esinevate sõnavormide võimaliku(d) tüve(d) ning määrab, millises käändes või pöördes sõna on.

link

vastatud Nov 17 '11 at 00:22

Uku%20Kaarel%20J%C3%B5esaar's gravatar image

Uku Kaarel Jõesaar
112

edited Nov 17 '11 at 00:29

See on vist üks mõistlikumaid lahendusi. Mul jookseb juba tükimat aega ESTMORF Windowsi virtuaalis, kust siis pakub üle Gearmani liidese teistele rakendustele lemmatiseerimis ja trükivigade parandamise "teenust." Päeva jooksul genereerib kümneid tuhandeid lemmasid täiesti edukalt.

(Dec 08 '11 at 22:02) Andris

Avatud lähtekoodiga eestikeelsete sõnavormide analüsaator on saadaval aadressil https://github.com/Filosoft/vabamorf

link

vastatud Oct 16 '14 at 02:20

Kaarel's gravatar image

Kaarel
11

Tulevaste lugejate hüvanguks salvestan siia ühe hiljuti nähtud kuulutuse:

Oleme TÜ Matemaatika-informaatikateaduskonnas tegelenud Estnltk teegi arendamisega ja mul on hea meel teatada, et oleme jõudnud nii kaugele, et seda laiemale kasutajaskonnale tutvustada. Projekti eesmärgiks on siduda omavahel kokku mitmed olemasolevad vahendid eesti keele töötlemiseks ning võimaldada neid kasutada Pythoni programmides:

  • Teksti tükeldamine sõnadeks ja lauseteks
  • Morfoloogiline analüüs ja süntees
  • Sõnade lemmatiseerimine / stemmimine
  • Osalausestamine
  • Ajaväljendite tuvastamine
  • Nimeüksuste tuvastamine
  • Verbiahelate tuvastamine
  • Eesti Wordnet’i liidestamine.

Nimekirjast on küll veel puudu mitmed vahendid, mida meie keeletehnoloogid on välja töötanud, aga olemasolevate baasoperatsioonide hulk on piisavalt suur, et katta suurem osa rakendustele vajalikke kasutusjuhte. Teek toimib nii Linuxi kui ka Windowsiga ja töötab Python2.7 ja Python3.4 versioonidega.

link

vastatud Jan 08 '15 at 23:57

Ahto%20Truu's gravatar image

Ahto Truu ♦♦
6596711

Sinu vastus
lülita eelvaade

Jälgi seda küsimust

By Email:

Pärast sisselogimist saad tellida muudatuse teavitusi siit

By RSS:

Answers

Answers and Comments

Markdown Basics

  • *kaldkiri* või __kaldkiri__
  • **paks kiri** või __paks kiri__
  • link:[tekst](http://url.com/ "pealkiri")
  • pilt?![alt tekst](/path/img.jpg "pealkiri")
  • nummerdatud nimekiri: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • põhilised HTML märgendid on samuti toetatud

Pinu tööpakkumised

kõik pakkumised »

Küsimuse sildid:

×6

küsitud: Jun 05 '10 at 10:13

nähtud: 7,951 korda

viimati uuendatud: Jan 08 '15 at 23:57

Litsents: Creative Commons Attribution License | Kontakt: info@pinu.ee