"Silē putu pēlis", "raka viņi vakar" - viltīgais algoritms nostrādāja - tagad palindromu meklēšana notiek fiksi. http://www.creativity.lv/palindromi.html. Četrvārdīgo sanāca baigi daudz - 313MB fails, tālāk labāk nemaz nemēģināšu.
Jā, vispār varētu. Tikai tad vispirms biki jāpierediģē, lai nav kauns par to, kā tas kods izskatās - fiksi samests kopā un tā. Bez tam, es dikti izšķērdīgi rīkojos ar atmiņu, censdamies panākt, lai tas staffs strādā ātrāk - koku zarus glabāju gan sarakstos, gan pusaizpildītos masīvos, atkarībā no tā, vai vajag pārstaigāt visus zarus, vai vajag atrast vienu konkrētu zaru - rezultātā vajag ap 3.5GB brīvas atmiņas, lai to programmu vispār palaistu. Iespējams, ka ātrdarbība būtu pietiekama, ja glabātu koku zarus tikai saistītajos sarakstos - tad atmiņas izlietojums būtu tikai pārsimt megabaitu.
skatoties 4 vārdu sarakstu, ir vairākas vārdu kombinācijas (bet ne visas) kas atkārtojas divreiz, piem. 'adāt uti citu tāda' - tas nozīmē ka reāli variantu varētu būt uz vēl mazāk.
Ahā - tas ir gļuks algoritmā. Cita veida dublēšanās izdevās izslēgt - šitā izskatās, ka notiek tad, ja pirmais un pēdējais vārds ir vienāda garuma. Izskatās, ka trīsvārdu palindromiem ir vēl citi gļuki, kur nevis dublējas palindromi, bet ir par maz, piemēram, nav "adāt ada tāda". Vakarā mēģināšu labot.
Vēl man ir doma izfiltrēt no trīsvārdu un četrvārdu palindromiem tos, kuriem sākumā un beigās ir vienāda garuma vārdi, lai paliek tikai interesantie, nesimetriskie, kur palindromu veido dažāda garuma vārdi, ķipa, kā šis: "silei makā kamielis".
Vēl man ir doma izfiltrēt no trīsvārdu un četrvārdu palindromiem tos, kuriem sākumā un beigās ir vienāda garuma vārdi, lai paliek tikai interesantie, nesimetriskie, kur palindromu veido dažāda garuma vārdi, ķipa, kā šis: "silei makā kamielis".
Interesantāk tomēr būtu sastiķēt jēdzīgos teikumus, bet tur laikam vajag nopietnāk piestrādāt pie latviešu valodas teikumu uzbūves modeļa :(
Var mēģināt ar statistiko analīzi, kā kemune iesaka. Principā vajadzētu varēt vismaz tik daudz, kā izanalizēt lielus tekstus, lai noteiktu, kādas vārdu galotnes ir bieži sastopamas blakus esošiem vārdiem. Tad varētu mēģināt atmest tos gadījumus, kad blakus ir vārdi nepareizos locījumos, vai nepareizā secībā (like Yoda I'm talking).
IMO, latviešu valoda pieļauj ļoti dažādas teikumu kombinācijas.
Ļoti dažādas valoda latviešu teikuma kombinācijas pieļauj.
T.i., tā kā, atšķirībā no angļu valodas vai citām valodām, kurās neizmanto locījumus, nav noteiktas teikuma locekļu vietas teikumā, teikuma "jēga" pastāv tad, ja pastāv semantiska saistība starp vārdiem un salāgojas locījumi lietvārdiem, īpašības vārdiem, darbības vārdiem utt.. - jēgpilnu teikumu drīzāk var atrast, pārbaudot, vai vārdu (ja tie ir saistīti, tipa lietv.+īpašības vārds, vietniekvārds+darbības vārds) galotnes ir pareizas.
Ļoti dažādas valoda latviešu teikuma kombinācijas pieļauj.
T.i., tā kā, atšķirībā no angļu valodas vai citām valodām, kurās neizmanto locījumus, nav noteiktas teikuma locekļu vietas teikumā, teikuma "jēga" pastāv tad, ja pastāv semantiska saistība starp vārdiem un salāgojas locījumi lietvārdiem, īpašības vārdiem, darbības vārdiem utt.. - jēgpilnu teikumu drīzāk var atrast, pārbaudot, vai vārdu (ja tie ir saistīti, tipa lietv.+īpašības vārds, vietniekvārds+darbības vārds) galotnes ir pareizas.
tā ir lingvistiski motivētā atbilde. realitāte bieži vien ir tāda, ka paņemot "korpusu kā gūglim", plika statistika sit pušu visas advancētās metodes, kuras taču ir pareizākas un valodnieciskākas, tātad tām būtu jāstrādā labi. bet tā visbiežāk nav.
kombinācijas pieļauj arī pietiekami liels korpuss. es nerunāju par tur dzejas analīzi, bet tur arī likumi, locījumu saskaņojumi un gramatika nelīdzēs, izņēmumu var atrast jebkuram likumam. pirmie 90% valodas padodas viegli :)
kombinācijas pieļauj arī pietiekami liels korpuss. es nerunāju par tur dzejas analīzi, bet tur arī likumi, locījumu saskaņojumi un gramatika nelīdzēs, izņēmumu var atrast jebkuram likumam. pirmie 90% valodas padodas viegli :)
Teikuma modelī iestrādes jau ir - letonika.lv ir verķis, kur var noteikt, kāda veida vārds kurš ir - lietvārds, darbības vārds, kādā locījumā. Būs gan zināmas problēmas tikt pie viņu koda, par cik tas nav gluži opensource pasākums, jo aiz viņiem stāv Tilde. Var mēģināt ar viņiem parunāt. Pats raustos to darīt, jo savulaik biju uztaisījis skriptu, kas iziet cauri visai vārdnīcai un no viņu lapas novelk vārdu locījumu sarakstu, kā rezultātā manu ip nobanoja un viņu mājaslapā parādījās uzraksts, ka lietot viņu mājaslapu ar automātiskiem skriptiem nedrīkst.
Man šķiet, ka ailab.lv ir zināmas iestrādes teikuma uzbūves modeļos, t.i., noteikumos, kāda veida vārdi kādā secībā drīkst būt, bet, man šķiet, diez ko tālu viņi netika, jo toreiz nebija labi strādājošs verķis, kurš spēja identificēt, kāda veida vārds kurš ir.
Man šķiet, ka ailab.lv ir zināmas iestrādes teikuma uzbūves modeļos, t.i., noteikumos, kāda veida vārdi kādā secībā drīkst būt, bet, man šķiet, diez ko tālu viņi netika, jo toreiz nebija labi strādājošs verķis, kurš spēja identificēt, kāda veida vārds kurš ir.
Cik daudzi vārdi no tiem kas ir Tavā kopējā vārdu sarakstā vispār parādās 4 vārdīgajos palindromos? Varbūt to tur nav tik daudz, lai nevarētu tos sašķirot pēc saknes un ar roku sadalīt vismaz lietvārdos, darbības, īpašības u.t.t? tad varētu vismaz atmest tos kur pēc kārtas ir divi darbības vārdi, vai kuriem dzimtes nav pareizas... Nu atkarīgs protams, vai tie ir pāris simti vai pāris tūkstoši.
Novilku kaut kādu macro, kas Wordā saskaita unikālos vārdus un palaidu, lai analizē trīsvārdīgos palindromus - pie 9000 unikāliem vārdiem tas skripts aizrijās, paziņoja, ka esot par daudz.
nu, letonika.lv ir morfoloģiskā analīze, tas nozīmē - ņemam pliku vārdu un pasakām visu, ko par to var pateikt. "roku" var būt darb.v., lietv. tādā un tādā formā u.t.t. tas ir stipri vienkāršs uzdevums - vajag tikai nelielu datubāzi ar to, kādām saknēm kādas galotnes var kabināt klāt, ko šīs galotnes nozīmē morfoloģiski un tad tikai analizējam. ailab.lv ir tāds analizators, to nu gandrīz katrs sevi cienošs comp.ling students mēģina uzrakstīt :)
pavisam cita lieta ir sintaktiskā analīze, kad vārdus jau apskata kontekstā - principā visa teikuma robežās. tad 1) "roku" iegūst konkrētu morf. analīzi, 2) "roku" iegūst arī sintaktisko analīzi, piemēram "papildinātājs" un norādi, ar kuru vārdu tas saistās, piemēram, verbu "sniegt". šitā štelle galīgi nav vienkārša, nerunājot par to, ka tādu gramatiku uzrakstīt jau nav triviāli, jebkurā gadījumā nākas ierobežot valodu. welcome to comp.ling hell
pavisam cita lieta ir sintaktiskā analīze, kad vārdus jau apskata kontekstā - principā visa teikuma robežās. tad 1) "roku" iegūst konkrētu morf. analīzi, 2) "roku" iegūst arī sintaktisko analīzi, piemēram "papildinātājs" un norādi, ar kuru vārdu tas saistās, piemēram, verbu "sniegt". šitā štelle galīgi nav vienkārša, nerunājot par to, ka tādu gramatiku uzrakstīt jau nav triviāli, jebkurā gadījumā nākas ierobežot valodu. welcome to comp.ling hell