Jump to content

Dinamiska uzrunas teksta ģenerēšana


Moochkins
 Share

Recommended Posts

Sveiki, kolēģi!

Tātad, kā virsrakstā redzams, jautājums ir par uzrunas veidošanu programmātiski. Ir nepieciešams noformēt personalizētas vēstules, kuru uzruna būtu atbilstoša saņēmēja dzimumam. Vai kāds ir ar šo ņēmies? Doma ir palīgā ņemt deklinācijas, orientēties pēc galotnēm. Taču ņemt vērā gan vārdu, gan uzvārdu, lai atsijātu bezdzimuma un neitrālos (tādi, kuriem galotne nemainās atkarībā no dzimuma) uzvārdus, piemēram, Skuja, Šķēle u.c.

Vārdu krājumu kodēt iekšā netaisos, būtībā vēstules jāsagatavo vien ~120 adresātiem, ko varētu izdarīt manuāli, taču personīga interese rosina atrast programmātisku risinājumu. Vēl neesmu sācis kodēt, ar to palīdzību man nevajag (atslēgvārdos gan pieminēju Perl, jo tajā tas tiks realizēts), bet algoritmu un/vai idejas noteikti noderētu. Adresāti tiek ņemti no programmai padota Excel faila.

Paldies!

Labots - Moochkins
Link to comment
Share on other sites

Nu, 120 adresātiem ar roku tabulā pierakstīt dzimumu aizņemtu apmēram 120 sekundes. :D

Atrast gatavu risinājumu nu gan nav interesanti. Interesanti ir pašam izdomāt risinājumu. ;)

Labots - Salmo
Link to comment
Share on other sites

Moochkins

 

 

Interesanti ir pašam izdomāt risinājumu.

 

Bet protams. :) Cenšos vien smelties idejas, ne realizāciju, kā jau teicu iekš OP. 

 

 

 

kā tai multenē, trīs dienas mācīties lidot un aizlidot līdz mērķim pusdienas laikā, nevis aiziet kājām dienas laikā
 

 

Aha, apmēram :D Toties lidot mācēsi. 

Link to comment
Share on other sites

NeticuNevienam

Var! Tāds stipri vienkāršs piemērs.

Jābūt tabulai ar adresātu vārdiem, uzvārdiem, uzrunas grupa (kungs, kundze, attiecīgi jaun[s/e] vai atbilstoši ieņemajamam amatam, norāde vīrietis/sieviete), pazīstams/nepazīstams (uzruna tekstā "tu" vai "Jūs" [ar lielo burtu]), oficiālās vestulēs gan izvēlas lietot "Jūs", neatkarīgi no tā, bet bloka kaimiņu festam derēs arī "tu") Attiecīgi no tā tālāk lietojot "tev" un "Jums"

Tad ir standarta vēstules teksts. 

Kaut kas tāds pirms n-tajiem gadiem bija informātikā. Šķiet Vajadzēja Izmantot MS Excel un Word

Nekas tāds nav darīts dzīvē (izņemot eksāmenu, kas bija stipri sen)

 

Edit: Kas ir Perl nezinu.

Tāpēc varbūt vienkārši uzraksti 120 vēstules ar roku. (rakstveidā vai izmantojot kompi - tava darīšana)

Labots - NeticuNevienam
Link to comment
Share on other sites

Moochkins

Paldies par atbildi! 

Formalitātes un valodu es māku. :) Jautājums bija konkrēti par algoritmu dzimuma noteikšanai pēc vārda, uzvārda. Bet, atkal, paldies!

Link to comment
Share on other sites

Ja tabula jau ir ar vārdiem uzvārdiem, un vēstules teksts visiem vienāds, tad to var savietot visu kopā izmantojot mail merge. Ar galotņu locīšanu, ja gribēs visu 100% precīzi, tad diez vai būs tik vienkārši, it īpaši latviešu valodai, ņemot vērā dažādos mūsdienu dīvainos vārdus un uzvārdus un kaut vai ņemot vērā arī vecos uzvārdus, kuri vispār nelokās. Kaut ko tādu kas der lielai daļai, tai pašā excelī ar funkciju palīdzību var izveidot un tad savienot ar word, publisher dokumentu.

Link to comment
Share on other sites

NeticuNevienam
Jautājums bija konkrēti par algoritmu dzimuma noteikšanai pēc vārda, uzvārda.

Šim arī izmanto to tabulu no Excel, norāda Vārdu/Uzvārdu galotnes (raksturīgas latviešu valodai bet....), kas ar funkcijas palīdzību kādā šūnā tiek uzdotas - kam ir vīriešu dzimtes uzruna, kam - sieviešu..... tur var iemesties kļūdas. (skat. biedra chronos komentāru, ieleja -piemēri) 

Labots - NeticuNevienam
Link to comment
Share on other sites

parasti neviens tā neņemas, raksta tikai "Cien. Jānis Bērziņš!". ar to pietiek.

 

Bet patiesībā nekāda raķešzinātne arī nav.

ja vārds beidzas ar s/š, TAD no uzvārda pēdējo burtu nodzēš, ja tas ir "s" vai "š". Reāli tas arī viss. Arī ielejas minētajiem specgadījumiem mierīgi atbilst ;)

 

bet prūfrīdings ar cilvēka aci vienalga ir vajadzīgs. ieliec visu DB, ieliec lauku "vokatīvs", automātiski tos s/š sagraizi un pārej pāri ar aci. ja vajag - izlabo vokatīvu. un pēc tam dokumentā liec tikai to vokatīva lauku.


tātad kods ir 2..3 rindiņas.

1) ielasīt mainīgajos pēc speisa sasplitoto vārdu/uzvārdu

2) noteikt, vai (vārds beidzas ar s/š/o/i/a UN uzvārds beidzas ar s/š)

3) atkarībā no nosacījuma atstāt negrozītu VAI nogriezt pēdējos burtus - Jāni(s) Bērziņ(š) / Mārtiņ(š) Bebr(s).

Labots - usver
Link to comment
Share on other sites

Es darītu tā, ka ar kaut kādu nepilnīgu algoritmu saģenerētu automātiski, un tad pārietu pāri tam sarakstam ar roku un salabotu tur, kur algoritms nebūtu ticis galā. 120 ierakstiem tas nebūtu ilgi.

Link to comment
Share on other sites

Moochkins

Liels paldies visiem par atbildēm!

Varbūt nepareizi esmu izteicies, vajadzīgs tikai algoritms dzimuma noteikšanai. Vēstuli uzģenerēt un visu pārējo - kā divus pirkstus, viss OK. Paldies @@usver, pamēģināšu tādu variantu. Kā jau teicu, uzdevums triviāls, ņemot vērā nelielo adresātu daudzumu (t.i., var sarakstīt 120 uzrunas manuāli), vienkārši bija interesanti, kā lai latviešu valodas lingvistikas īpatnības uzdod programmātiski un vai kāds ko tādu jau ir darījis. Cik atceros, universitātē bija viens kadrs, kas taisīja čata botu latviešu valodā. Ņemot vērā mūsu valodas īpatnību, pieļauju, klājies samērā grūti ar galotnēm un locīšanu.

Kopumā, manuprāt, ļoti interesanta tēma. :)

 

Vēlreiz paldies visiem! Ja vēl ir idejas, droši uzklausīšu.

Link to comment
Share on other sites

Vienkārši vajag klientu datu bāzē uzturēt arī tā dzimumu. Pēc vārda uzvārda var elementāri sabraukt auzās. Vai nu arī jāizmanto standarts ar "Cien."

Link to comment
Share on other sites

Webi, paskaties uz tevis doto "algoritmu"

 

Vīriešu dzimtes lietvārdiem vienskaitļa nominatīvā ir galotne -s, -š, -is vai -us.

Sieviešu dzimtes lietvārdiem vienskaitļa nominatīvā ir galotne -a, -e vai -s.

 

Tad ja galotne ir "-s" - kura dzimte tā būs :D ???? Pēc random? 

Un ja vārdam galotne "e" bet uzvārdam "us" (Vare Šmaucus :D :D :D

Labots - ronalds_
Link to comment
Share on other sites

O, jā, nelokāmie arī jāņem vērā, tātad ja vārds beidzas ar s vai š vai o ( Leo Kalniņš) vai i (Givi Kalniņš), tad arī griezt. tās pašas 3 rindiņas paliek. :)

Link to comment
Share on other sites

Ronald, nosauc sievietes vārdu ar galotni -s?

usver, abiem piemēriem pēc uzvārda var noteikt dzimiti.

Nevajag vienkāršu uzdevumu pārvēst marazmā.
99% viegli filtrējās, atlikušais 1% tā arī nekad nepienāks un ja pienāks, tur pat cilvēks nenoteiks - Ali Huilo ir vīrietis vai sieviete?
Pie datu ievades, tad arī var pajautāt dzimumu pašam radījumam. :D

Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...