PDA

Pogčedajte punu verziju : Промена имена корисника по падежима


filmil
14. 07. 2008., 10:32
Поздрав свима. Ја бих ето да предложим нешто за ваш следећи „материјал за пројекат“, а ко ово и направи, добије три бамбија од мене.

Гледао сам неке домаће сајтове, на неке се и учланио, и приметих да ме сви редом у горњем десном ћошку поздрављају са: „Здраво Филип.“

Питам се, зар је могуће да се нико није досетио да направи неку табелу која ће да преслика номинатив имена (које корисник уноси) у вокатив?! Па да ме програм лепо поздрави са „Здраво Филипе“, а не да ми говори ко Мелинда Меј-Чукић укрштена са Тимотијем Бајфордом.

Јесте да је општу промену по падежима тешко направити, али је деклинација имена једноставна: ем имена има ограничено много, ем је једино вокатив потребан. Све што треба је направити једну табелицу и допунити је вокативима имена која могу да се узму из базе корисника. И тако се 80% њих зову Јелена или Иван.

Сад, пре него што помислите шта овај опет извољева, размислите колико би Вам та мала пажња донела поверење и углед у очима корисника.

ф

pcigre
14. 07. 2008., 10:56
Na jednom starom projektu je skrtipta imala kolonu sa imenima po padežima, pa je formirana listu nepromenjenih imena, pa svaki put kad se admin uloguje ima ispisano imena koja treba da promeni... to je lepo funkcionisalo i ubrzo se napravila baza koja je bila ok... videću da je iskopam od osoba koje sada vode taj projekat.

JovanT
14. 07. 2008., 12:10
Одлична идеја. Али, ово има смисла само ако су корисници пријављени својим именима и презименима. Већина њих користи различите "надимке". Зар би овде требало да пише „Добродошли, filmile“?

pcigre
14. 07. 2008., 12:17
Ovo je bio portal gde su tražena prava imena... tako da je bilo primenjivo. Nadike svakako nema smisla menjati po padežima.

zira
14. 07. 2008., 12:24
Pravio jednom davno za jedan domaci sajt... ubrzo se poceli pojavljivati problemi da neobicna imena nekih ljudi nisu bila dobro obradjena, pa izmedju varijante da to rucno radimo i da potpuno izbacimo tu minornu funkcionalnost izabrali smo ovo drugo.

Nemanja Avramović
14. 07. 2008., 13:27
Poodavno sam razmišljao o ovome i slažem se da bi servis mogao biti koristan, a mislim da nije ni težak za realizaciju. Ukoliko treba neka pomoć oko same realizacije - vičite :)

mileusna
14. 07. 2008., 14:18
Zanimljivo. Manje više za sajt, na kraju "zdravo filmile" preformulišeš u "logovani ste kao filmil". No nije loše ako šalješ welcome poruke na email ili email poruke za verifikaciju adrese, za email komunikaciju mnogo je lepše i bolje ako mail započne sa "Poštovani Filipe".

Milos Vukotic
14. 07. 2008., 14:45
Nešto sam "analizirao" (navodnici jer je analiza bazirana na tome koliko mi je 'naških' imena palo na pamet :) ):
U principu (na naškim jezicima) postoje zakonitosti za većinu imena, moglo bi se dijelom i automatski generisati.

Imena koja završavaju sa ...tar (Petar) prelaze u ...tre (Petre)
Imena koja završavaju sa ...ca (Milica) prelaze u ...ce (Milice)
Imena koja završavaju na a, o, e ostaju ista
Ostalim imenima dodati "e" na kraju

Sad, sigurno da mi neka kombinacija nije pala na pamet a sigurno je i da postoje izuzeci...
Uglavnom, na brzaka sam složio skripticu koja generiše vokativ od imena po gornjim zakonitostima i, ako nije pravilno, dozvoljava da se pravilan vokativ unese i zapamti. Sljedeći put provjerava ima li imena na spisku izuzetaka, ako ga ima - prikazuje snimljeni izuzetak...

Jeste, igrao sam se :) , ali ako svi udarimo da isprobavamo, mogli bi napraviti i algoritam i spisak izuzetaka... Makar za "naška" imena :)

Evo skripte ovdje: http://www.fizis.com/sandbox/vokativ/

PS. Ne radi na ćirilici :)

mileusna
14. 07. 2008., 15:12
^
Aleksandar -> Aleksandre
Petar -> Petre

Milos Vukotic
14. 07. 2008., 15:14
U pravu si, hvala.
A sjetih se i Ćutuk - Ćutuče :D

Ispade ovo posao, bog te...

kaizen
14. 07. 2008., 15:17
Predrag -> Predraže

Milos Vukotic
14. 07. 2008., 15:32
Evo sam dodao pravila za Aleksandar - Aleksandre, Predrag - Predraže, Ćutuk - Ćutuče, Xippi - Xippi :)
Sredio da radi i na ćirilici i nemam više vremena danas...

Samo upišite tamo kako je pravilno kad vidite da skript griješi, valjda ima konačan broj pravila i izuzetaka, majku mu... :)

PS. Ko kaže da je vokativ od Luka "Luko"?

PPS. Ako neko hoće da preuzme brigu o ovome, slobodno nek pita ;)

Nemanja Avramović
14. 07. 2008., 15:43
Sviđa mi se kako radi. S tim što bih ja odradio neki API, npr. kao onaj GeoIP - da može da se preuzme periodično ažurirana baza izuzetaka i PHP klasa (može i za druge jezike da se portuje).

Dragi Tata
14. 07. 2008., 15:43
Možda bi i moglo da se nešto zbudži primenom stare, dobre Bajesove formule, ali generalno su takvi poduhvati jako nezahvalni. Uložiš puno rada, a onda se prokrade par slučajeva gde softver zabrlja i odmah ti se smeje pola interneta :)

kodi
14. 07. 2008., 17:57
vazan je i pol

Peca - Milica
Peco - Milice


:D :D

jablan
14. 07. 2008., 18:13
Nije u pitanju (samo) pol: Jela - Jelo. Koliko se sećam (rečnik jezičkih nedoumica mi je kod kuće), dvosložna imena na -a sa dugouzlaznim akcentom imaju -o.

mileusna
14. 07. 2008., 18:33
Okreni obrni svede se na rečnik sa svim imenima na kraju.

Milos Vukotic
14. 07. 2008., 18:36
Pa eto, zamisao je da se taj rječnik proba napraviti kroz ispravljanje grešaka i uočavanje zakonitosti... Igramo se :)

kodi
14. 07. 2008., 20:39
idealno za neuronsku mrezu...
:D

Mladjo
15. 07. 2008., 19:24
Ovo je vrlo zanimljivo. Ako bi se ozbiljno na ovom projektu radilo onda bi trebalo da se krene od gramaticke podele imenica. Znaci po rodu i broju. Pa da se onda dalje rasclanjava. Mislim da je moguce naraviti potpuni algoritam za vokativ. E sad da li bi to mogao da odradi nastavnik srpskog jezika ili bi morao da se zove neki lingvista u pomoc ne znam.

nixa
15. 07. 2008., 19:34
Gde li je towk sada :)

sinisake
26. 07. 2008., 01:55
U odlicna ideja!

Sad sam proveravao malo kako radi:

http://www.fizis.com/sandbox/vokativ/index.php

I dobro je bilo sve do nekih zenskih imena na A:

Milka, Borka.

Kad nadjem vremena, pridruzujem se naporima da se ova ''vrlo bitna'' stvar napravi.
Ah taj divni jezik, prepun izuzetaka.

Nemanja Avramović
27. 09. 2008., 19:58
Evo radilo se malo na ovome pa smo stigli do ovoga:

http://vokativ.vokabular.org/

Baš sam malopre sredio i ovo za "Milka", "Borka", ...

BrainDamage
27. 09. 2008., 23:15
Predrag -> Predraže

Kao i za Miodraga (ag -> aže) :)

vuknikolic
28. 09. 2008., 12:18
Super je ideja, i sajt je lepo uradjen. Ako treba bilo kakva pomoc javite :)

Petar Marić
28. 09. 2008., 17:05
Svaka čast - odlična ideja i još bolja izvedba.

Jeste li razmišljali da napravite i javan web servis?

Nemanja Avramović
28. 09. 2008., 17:33
Na šta misliš kad kažeš "javan web servis"?

Misliš neki API tako da se vokativ direktno dovlači sa našeg sajta, ili nešto drugo?

vuknikolic
28. 09. 2008., 18:32
Bilo bi vrlo korisno da ima neki API (koji bi realno imao samo getVokativ(ime) :) )
Nisam gledao, jel postoji neki SVN za vokativ?

Samo napred!

Nenad Vasić
28. 09. 2008., 22:01
Evo mog rešenja koje koristi NuSOAP (http://sourceforge.net/projects/nusoap/) lib.

Server side:
<?php

require "vokativ.class.php";

//ucitavamo loader-e (samo jedna od sledece tri linije je neophodna, u zavisnosti od toga koji metod zelite da koristite)
require "loaders/ini.class.php";
//require "loaders/dat.class.php";
//require "loaders/mysql.class.php";

require_once('../nusoap/nusoap.php');

$server = new nusoap_server();

$server->configureWSDL('vokativ', 'urn:vokativ');

$server->register('getVokativ',
array('name' => 'xsd:string'),
array('return' => 'xsd:string'),
'urn:vokativ',
'urn:vokativ#getVokativ',
'rpc',
'encoded',
'Vraca vokativ zadatog imena');

function getVokativ($ime) {
$vokativ = new Vokativ(new Vokativ_INI());
$vokativ->cirilica = $vokativ->da_li_je_cirilica($ime);
return $vokativ->napravi_vokativ($ime);
}

$HTTP_RAW_POST_DATA = isset($HTTP_RAW_POST_DATA) ? $HTTP_RAW_POST_DATA : '';
$server->service($HTTP_RAW_POST_DATA);

?>Client side:
<?php

require_once('../nusoap/nusoap.php');

$client = new nusoap_client('http://lab.irondev.net/vokativ/api.php?wsdl', true);

$error = $client->getError();
if ($error) {
echo "Greska: ". $error ;
// ....
die();

}

$proxy = $client->getProxy();
$result = $proxy->getVokativ('Nenad');

echo $result;

?>

Nemanja Avramović
28. 09. 2008., 23:31
SVN-a nažalost nema, a što se APIja tiče, evo nešto sam se igrao, pa možete pogledati ovo:
http://www.vokabular.org/forum/index.php?topic=2487.0

primer:
http://vokativ.vokabular.org/primer/api.php?nominativ=Filip&izlaz=xml&detalji=true&cirilica=true

Nemanja Avramović
23. 10. 2008., 22:34
Projekat “Vokativ (http://vokativ.vokabular.org/)“ za manje od mesec dana postojanja dobio je nagradu za inovativnost na polju srpskog interneta od strane beogradskog festivala novih komunikacija B-LINK 2008 (http://www.b-link.org/).

http://blog.avramovic.info/wp-content/uploads/2008/10/dsc00037.jpg
Nagradna B-LINK skulptura

Mislim da je nagrada stigla malo prerano, mada možda i nije (za dobre stvari se brzo čuje ;-)) i jako mi je drago što se ovako brzo pročulo za projekat, odnosno što je isti ovako brzo primećen. Naravno, ništa ne bi bilo od ovog projekta da nije bilo Filipa Miletića, koji je pokrenuo celu ovu stvar, kao i Miloša Vukotića, koji je napisao inicijalnu verziju skripte.

Takođe, ovo je bilo moje prvo obraćanje (ne tako velikoj) gomili ljudi (preko mikrofona) i pošto me je lepo oblio hladan znoj uspeo sam drhtavim glasom da se zahvalim svima na nagradi i da se izrazim svoje čuđenje ovoj nagradi, pošto zaista nisam mislio da je bilo ko čuo za “Vokativ.” Očekujem slike sa večerašnje dodele nagrada, a dotle se strpite.

P.S. Opet fotka načinjena telefonom jer moj foto-aparat i dalje ne radi :-(

Milos Vukotic
24. 10. 2008., 09:49
Bravo! :1043:

misk0
24. 10. 2008., 10:25
Eto, svaki trud se isplati - cestitam.

Ivan
24. 10. 2008., 13:15
Extra ! Cestitam :)

jablan
24. 10. 2008., 13:19
Čestitke... BTW, jesi uspeo da dekodiraš binarnu poruku sa te kocke? ;)

Nemanja Avramović
24. 10. 2008., 17:02
To beše onaj QR kod? Nisam ni pokušavao :D

vuknikolic
24. 10. 2008., 17:30
E svaka cast :)

kalkulus
27. 10. 2008., 10:48
cestitke za nagradu :)

btw ako je uopshte kod(kriva je slika da testiram, a mrzi me da je sad ispravljam) mislim da je u pitanju Datamatrix kod, QR kodovi su drugaciji i imaju pozicione markere

Nemanja Avramović
23. 10. 2009., 13:23
Jako dugo nisam radio na Vokativu, a juče se setih da smo pominjali na forumu interfejs za predlaganje oblika vokativa, tako da sam sinoć uhvatio malo vremena i napravio baš to. Primer (http://vokativ.vokabular.org/predlog/test.php) je dostupan online, a princip rada je jednostavan – sajtu projekta se proslede nominativ i vokativ (i opciono URL do CSS fajla za izmenu interfejsa) i onda se koristeći našu, uvek poslednju verziju baze, napravi vokativ. Zatim se naš i vaš vokativ uporede i zatim se dešava sledeće:

1. Ukoliko su različiti, a pritom naš vokativ dolazi iz rečnika – ispisuje se poruka da morate ažurirati vaš rečnik (bazu)
2. Ukoliko dolaze iz algoritma – nudi se opcija za unos predloga, koji posle prolazi moderaciju
3. Ukoliko dolaze iz rečnika – ispisuje se poruka da je to vokativ iz rečnika i da nam možete javiti na forumu projekta da smo (eventualno) pogrešili

http://blog.avramovic.info/wp-content/uploads/2009/10/predlog.png

U isto vreme sam razvijao i Vokativ dodatak za Wordpress (http://wordpress.org/extend/plugins/vokativ/), koji je već implementiran kod mene na blogu kao i na sajtu Vokativa.

http://blog.avramovic.info/wp-content/uploads/2009/10/dash.png

Ime pokušava da pokupi “Dispay Name” trenutno ulogovanog korisnika. Ako to ne nađe (trenutni korisnik nije ulogovan), onda pokušava da pronađe ime u WP kukiju. Ako ga ni tamo ne nađe, funkcija će vratiti false

(sa mog bloga (http://blog.avramovic.info/2009/10/23/interfejs-za-predlaganje-vokativa-i-wordpress-dodatak/))

madamov
28. 10. 2009., 14:53
Na šta misliš kad kažeš "javan web servis"?

Misliš neki API tako da se vokativ direktno dovlači sa našeg sajta, ili nešto drugo?

Misli na SOAP, iliti ono što Microsoft zove "Web servisi". Što uopšte nije loša ideja. B)

Nemanja Avramović
31. 10. 2009., 14:51
Da, tako nešto bi zaista moglo da se napravi. Već postoji onaj nazovi-API koji (čini mi se da može da) vrši posao, ali SOAP rešenje bi bilo super napraviti. Pogledaću NuSOAP pa možda nešto i bude od toga ;)

Nenad Vasić
01. 11. 2009., 00:27
http://www.devprotalk.com/showpost.php?p=61178&postcount=29

jablan
02. 11. 2009., 11:30
Ma kakav SOAP, JSON + REST završavaju posao mnogo bolje i jednostavnije...

http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/

madamov
02. 11. 2009., 13:43
Da, tako nešto bi zaista moglo da se napravi. Već postoji onaj nazovi-API koji (čini mi se da može da) vrši posao, ali SOAP rešenje bi bilo super napraviti. Pogledaću NuSOAP pa možda nešto i bude od toga ;)

Hvala, jer ne koristimo svi PHP. B) A SOAP metod koji će da pokupi podatke u mom 4D-u mogu da napravim za 20 sekundi. B)

madamov
02. 11. 2009., 13:44
Ma kakav SOAP, JSON + REST završavaju posao mnogo bolje i jednostavnije...

http://blog.feedly.com/2009/03/03/jsonrest-vs-xmlsoap/

Deluje interesatno, ali neka prvo to zaživi, pa da vidimo. B)