Magázás/tegezés leválogatása

Fórumok

Adott egy projekt (OpenProject haha) aminek a magyar fordítása kezdetén nem lett definiálva az, hogy tegezést/magázást alkalmazzanak. Így most van egy kész, de inkonzisztens fordítás ami egy kissé zavar.

Megállapodtunk a magázásban, így szeretnék készíteni valami automatizmust amivel le tudom válogatni tegező mondatokat.

Tud-e valaki valami megoldási ötletet erre? Platform, programnyelv mindegy, nyilván fizetős megoldást nem szeretnék igénybe venni.

Köszi előre is!

Hozzászólások

Nem értem mit lehet ezen viccnek érteni. Van egy open source projekt aminek hagy kívánnivalót maga után a fordítása. Nem nyelvészeti területen mozgok, ezért bátorkodtam megkérdezni, nem-e tud valaki valami megoldási javaslatot adni.
Értem, hogy a magyar nyelv bonyolult és összetett de a hunspell-ből kiindulva akár létezhetne is valami hasonló célú könyvtár.

Hát ez egy nagyon jó feladat. Nem vagyok nyelvész, de szerintem valami morphologiai elemzőre lenne szükséged. Az is sejteti ennek a problémának a nehézségét, hogy a Google fordító sem tudja. Például: Merre megy ön? -> Wohin gehst du?, miközben Wohin gehen Sie? lenne.

Ráadásul a magyar agglutináló nyelv, így én a hunspell irányában indulnék el, hogy megkapjam a toldalékokat. Azonban valószínűleg a szabályokat neked kell kitalálnod, mert hunspell sem javít például ilyen mondatokat (LibreOffice 6.02): "Ön egy halat veszel.", "Merre mászik te?"
Ugye minden szó helyes benne, de attól még értelmetlen a mondat.

Van egy érzésem, hogy ezt manuálisan kell átnézni.

sub
(es beszelgess el egy elmeleti nyelvesszel. ez igy igencsak izgalmas feladatnak tunik)
-------------------------
Roses are red
Violets are blue
Unexpected '}' on line 32

Felvesztek egy diákot aki teljes nyelvi fájlt átnézi és átírja.

Tételezzük fel, hogy sikerül keríteni egy nagyon jó nyelvész által írt nagyon jó programot, ami csont nélkül le is fut!

Akkor már csak azt kell ellenőrizni, hogy a nagyon jó program 99 vagy 100%-osan nagyon jó az adott szövegen, azaz el kell olvasni... pont úgy, ahogy a nyelvész és a nyelvi program nélkül kellett volna.

Amit kilistáz, azt szerinted jól csinálja? Nem kell átnézni?

Nyilván átnézés nélkül javítanám a kijelzetteket...

Amit nem listáz, abban lehet még válogatandó? Szóval azt is át kell nézni?

Van egy open source projekt aminek a fordításával baj van. Ha egy szkript írása árán ki tudom listáztatni a problémás fordítások egy részét akkor előrébb leszünk.

Látom, az indoklás nem megy, és ennek valószínűleg a következő az oka: ha az algoritmus nem talál meg garantáltan minden problémát, akkor a nem megtaláltakat ugyanúgy át kell nézned a kihagyottak miatt, mint ahogy a megtaláltakat a fals-pozitívak miatt ⇒ minden tételt át kell nézned.

Lehet röhögni, de nem viccnek szántam alapvetően. Annyira súlyos ez a "nincs értelme, mert nem lesz 100%, és akkor az egészet úgyis át kell nézned, hogy az legyen" érv ebben a felvetésben, hogy nagyon. Ha valami leválogatja neki mondjuk a cuccok 80%-át, azt kijavítja, akkor igen is előrébb van. Pláne ahhoz képest, hogy átnézni az egészet nincsen kedve, tehát ez esetben neki se fog állni.

Az attól függ. Értem, hogy ha azt mondod, hogy a teljes lefedettséget nézed, akkor ugyan ott vagy (egyébként ez sem teljesen igaz, mert 22 javításod van 10 helyett, jobb az felfutási görbéd), de ha itt megáll a processz, mert erre hajlandó voltál, a teljes átnézésére meg nem, akkor pont 12 javítással előrébb.

De ha egyszer nem tudom, hogy mihez képest vagyok előrébb? Ha nem tudom, mennyi a hibás, csak azt, hogy mennyi van összesen? Hogy mérsz, ha nem tudod, hogy mi a skála?
(Tudtam, hogy ha konkrét számokat írok, valaki beleköt. Mi lett volna, ha azt írom, véletlenül 28 rosszat találok?)

"De ha egyszer nem tudom, hogy mihez képest vagyok előrébb?"

A 0 kijavított elem számhoz?

"Ha nem tudom, mennyi a hibás, csak azt, hogy mennyi van összesen?"

Kit érdekel, mennyi van összesen, ha arra úgysem vagy hajlandó hogy végignézd az egészet?

"Hogy mérsz, ha nem tudod, hogy mi a skála?"

Pontosan úgy, ahogy én mondtam, nyilvánvalóan minél többet javítasz ki, annál kevesebb hiba marad. Ráadásul a topicnyitó nem mérni akar, hanem javítani :)

"(Tudtam, hogy ha konkrét számokat írok, valaki beleköt. Mi lett volna, ha azt írom, véletlenül 28 rosszat találok?)"

Pontosan erről van szó, hogy a topicnyitó olyan eszközt keres, ami a randomnál jobb eséllyel ad neki kijavítandó stringeket.

„Kit érdekel, mennyi van összesen, ha arra úgysem vagy hajlandó hogy végignézd az egészet?”

Akkor bele sem kell kezdeni javításba, hanem hagyni kell a pics@ba az egészet. Ha látok egy programot, ahol az üzenetek fele tegező, a másik fele magázó, akkor azt mondom, hogy ez egy silány munka. Ha csak minden 20-ik üzenet tegező, akkor azt mondom, hogy ez egy silány munka. Hiába szebb a második statisztikája.

Szubjektív: Egy ilyen feladatba úgy kell belekezdeni, hogy a végső cél az egységes fordítás. Különben nem is érdemes foglalkozni vele. A statisztika azért kell, hogy tudjuk mikor kell abbahagyni: amikor már pontosan 0 db. javítandó van.

"Ha valami leválogatja neki mondjuk a cuccok 80%-át, azt kijavítja, akkor igen is előrébb van."
Ja, csak tudni is kéne megmondani, hogy melyik az a 80%, ami ki van javítva jól, és melyik az, ami ki van javítva rosszul. Ez nem megy a teljes átnézés nélkül.
Azt lehet megmondani, hogy a szoftver mondjuk azonosított és módosított X sort az Y darabból. Jól, vagy rosszul - ezt viszont át kell nézni.

Bocs, de nem látom, hogy itt bárki is segíteni akarna.
Az emberek egy része röhög, hogy de hülye, magázni akar egy opensource projektben.
Egy másik része nyekeg, mert nem fogja tudni a tegezések 100.001%-át megtalálni szoftveres úton, ezért meg se próbálja.
Egy másik-másik része azon problémázik, hogy miért ő foglalkozik vele.
De _segítséget_ még senki sem ajánlott fel.
De mutasd, ha tévednék.

Senki nem kalkulál azzal, hogy nagyságrendnyi funfaktor-beli különbség van a között, hogy szöveget olvasok és javítgatok, vagy szkriptet patkolok a problémára. Ha az utóbbival valami újat is tanulhatok, pld. neurális hálók, valami nyelvészeti lib használata akkor még jobb a motiváltsági faktor a második megoldás mellett.

Illetve nem is értem, hogy ez ennyire nem jött át, hogy nem munka hanem hobbi. Elkezdtük használni, annak a pár embernek aki nem tud angolul beállítottuk magyarra. Aztán jöttek, hogy vannak igen meredek félrefordítások. Miután láttam, hogy a készítői elég sok munkát toltak abba, hogy kényelmesen fordítható legyen elkezdtem én is magyarul használni és javítgatni a magyar fordítást.

A félrefordítások mellett ez a kevert magázás/tegezés ilyen huszadrangú, elhanyagolható probléma. Mivel sokféle ember jár erre gondoltam megkérdezem a közönséget, de nem gondoltam volna, hogy ekkora flame lesz belőle.

Én tényleg nem dekódoltam, hogy itt nem egy munkát kellene korrektúrázni, hanem csak a pasziánszt helyettesíteni. Az más, a hobbiban nem pénz az idő, és nincsenek Q-követelmények.
Szerintem egy U-portálon nem vagyunk egyedül azzal, hogy jó sokat vagyunk képesek algoritmizálás táján gürizni akár aránytalanul rövidebb rabszolgamunka helyett.

Mindenesetre lesz itt még egy félrefordítás: brainstorming != flame.

Nem, nem lesztek előrébb. Nem fogod tudni, hogy mennyi tegezést hagyott benne a gépesített megoldás, és épp úgy ott fogtok állni egy inkonzisztens szövegbázissal. Vidéken ezt nevezik szarpofozásnak.

„Pár marék nerd-et leszámítva kutyát se érdekel már 2016-ban a Linux. Persze, a Schönherz koliban biztos lehet villogni vele, de el kéne fogadni, ez már egy teljesen halott platform. Hagyjuk meg szervergépnek…” Aron1988@PH Fórum

Ha mondjuk a Google-nél dolgoznál, és az egész internetről kellene leválogatni, akkor igen, szoftvert kell rá írni, nyelvészeket kell alkalmazni, stb.

Nem tudom pontosan, milyen méretű ez az OpenProject, de érzésre bőven elég kicsi ahhoz, hogy könnyebb/gyorsabb legyen a nyelvi fájlokat manuálisan átnézni és javítani, mint programot írni rá. Még ha a keresésre lenne is nyelvi szoftver, nem lesz 100%-os, és az átírás már bőven NLP terület.

Kötelező olvasmány: https://xkcd.com/1205/

Tekintve, hogy nem ezen (nyelvészeti) területen dolgozom fogalmam sincs milyen megoldások létezhetnek a problémára. Simán előfordulhat az, hogy valaki erre írt már szakdolgozat/whatever gyanánt egy libet. Onnantól némi reszelést megér az, hogy egy szkript végignézze, aztán manuálisan javítgassuk.

A feladatnak fajsúlya, határideje nincs, csak gondoltam körbekérdezek, hátha van valakinek valami iránymutatása.

Sokan olvassák, mégsem szólnak hozzá, pedig - ahogy az egykori takarítónőnk mondta volt - komponensek benne. Nem véletlenül:... áh, nekem sincs felsorolni az okokat. Elég legyen annyi, hogy azonkívül, hogy szóról szóra tartalmilag nem lehet fordítani a többes jelentésű szavak miatt (sem), működés közben is látni kell a programot. Azt meg egy szoftver soha a büdös életben nem látja.
Amit te keresel, az talán a Déjà Vu programszerűség. Az is (rész)mondatokban erős, nem szavakban.

Elég legyen annyi, hogy azonkívül, hogy szóról szóra tartalmilag nem lehet fordítani a többes jelentésű szavak miatt (sem), működés közben is látni kell a programot. Azt meg egy szoftver soha a büdös életben nem látja.

Nem szoftverrel akarok fordítani. Van egy kész magyar fordítás amiben keverednek a magázó és a tegező formulák. Ezt szeretném konzisztenssé tenni.

Értettem, de jobb (lenne) újrafordíttatni, ha - tegyük fel - lenne rá szoftver.
Egyébként a Déjà Vu-féle szoftvereknél sem úszod meg, hogy legalább egyszer ne magyarítanád.
Ha mindenáron programot akarsz kicsiholni, akkor pl. cseréld ki az összes "írja le" kifejezést "írd le"-re. Mezei mintaillesztés. De akkor is sz*póroller, mert ennél a példánál maradva az "Ez a funkció azt írja le, hogy mit tegyél akkor, ha..." mondatból "Ez a funkció azt írd le, hogy mit tegyél akkor, ha..." lesz.
Érted már, miért nem lehet kihagyni a szürkeállományt?

Nem kell nyelvésznek lenni, elég magyarul tudni hozzá, hogy lásd, mennyire nehéz a feladat. Szintén releváns: https://xkcd.com/1425/

Mondok pár példát.

"Ő mit gondol erről?" és "Ön mit gondol erről?", mindkét esetben ugyanaz az ige, tehát pusztán a ragozásból nem látszik, hogy az magázás vagy nem. Az is lehet, hogy csak "mit gondol erről" van alany nélkül, és másik tagmondatból derül ki, hogy kire vonatkozik.

"Üdvözlöm önt" és "Üdvözöllek téged", itt változik az ige ragozása, de "Üdvözlöm az anyádat és téged", itt már nem változik.

Ehhez hozzájön, hogy hányféleképpen lehet igét ragozni, hogyan hasonulnak a betűk, stb., még erre is csak tökéletlen programok vannak, mert sokszor ez is csak kontextusból egyértelmű.

Sok sikert hozzá... Szerintem egyszerűbb és gyorsabb átnézni. :D
Sajnos a magyar olyan bonyolult nyelv, hogy egy végződésből egyszerűen ezt nem lehet eldönteni.
--
"Sose a gép a hülye."

fogni kell egy neuralis halo modellt (pl ltsm kezdetnek megteszi) es adni neki nagyon sok magazos es tegezos szoveget, amibol megtanulja hogy kell megkulonboztetni oket. nyilvan ez se lesz 100%-os de viszonylag keves munka osszerakni, es nem nagyon kell nyelveszet ismeret hozza. ha jo a modell es a tananyag, meg mukodhet is :)
google://sentence classification machine learning

igen a tananyag jo moka tud lenni.
en mondjuk forum hsz-eket vennek a tegezosnek (anno letoltottem a hup mellett sok mas forum tartalmat hasonlo projekthez) es valami hivatalos szovegeket (ez mondjuk jo kerdes hogy mit.. talan eu parlament felszolalasok jegyzete?) magazosnak.
de az se hulyeseg ha keresel olyan opensource projekt magyaritasokat amirol tudod hogy vegig magaz vagy tegez :)

A'rpi

Tippem: Erre nem fogsz találni jó megoldást. Mert kb. annyi idő alatt, amíg leellenőrzöd az eredményt, azalatt kézzel szét is válogathatod. Nem egyszerű ez a magyar nyelv: Most akkor magázzalak, vagy tegezhetem? :-)

ha ilyesmit csinálnék valahogy így fognék neki (feltételezem, hogy egy program message fájljáról van szó, egy sor egy mondat/üzenet struktúrában):
- Összegyűjteném egy szövegfájlba a magázós igéket, legalábbis azokat, amik a project szövegében szerepelnek (E/2 esetleg T/2 személyű igék)
- Így sima egyeztetéssel le lehetne válogatni a magázós igéjű mondatokat egy másik szövegfájlba (erre már lehetne a grep-et is használni). gondolom, hogy melyik hányadik sorban van, az fontos, a tegezős sorok helyére mehet pl. üres sor.
- Ezzel a magázós mondatok nagy része már a helyére került, ( az 100% hogy mind nem fog sikerülni) a többi mondatot meg kézzel átírni, és helyére tenni.
- közben figyelni, nem-e került át tegezős mondat is (a magyar nyelv sajnos ilyen irracionális valami)

-fs-
Az olyan tárgyakat, amik képesek az mc futtatására, munkaeszköznek nevezzük.
/usr/lib/libasound.so --gágágágá --lilaliba

Tulajdonképpen mekkora a szöveg terjedelme? Hány oldal?

Amúgy - hogy értelmes választ is adjak, mint programozó - én azt csinálnám, hogy fognék egy (vagy inkább több) kortárs író irományait aminek olyan a műfaja, hogy csakis kizárólag magázódnak benne. Majd fognék egy hasonló műfajút, de csak tegező stílusban.
MI-t végigolvastatnám vele, öntanuló módon megtanulná a szavak és mondatok magázását és tegezését.

Mégha ezzel nem is tudom kvázi átfordítani, de detektálni igen, hogy hol van magázás és tegezés.

Mivel már többen leírták hogy mik a problémák az automatikus leválogatással, inkább azt írom le, hogy én hogyan csinálnám. Lehúznám a forrásfájlokat, ITS Toollal PO-t csinálnék belőlük, elvégezném a javításokat (pl. POEdittel), majd visszapakolnám őket az XLIFF fájlba. Aztán már csak fel kell tölteni a fordításokat.

Önmagát szívatja meg minden projekt, amelyik közvetett megszólítást használ (kritikus szakmákban, ahol fontos a megértés, műtő, tűzoltó, informatika tilos is), ugyanis félreérthető, nehezen elemezhető, ugyanis nincs önálló nyelvtani formája, hanem félreérthető módon 3. személyt használ. Van olyan nyelv, amiben van önálló formája, de a magyarban nincs, egyes indoeurópai nyelvekre is jellemző, a magyarban nyelvidegen, egyszerűen rossz a félreérthető közvetett megszólítás, szerintem még sértő is, a számítástechnikában is viharos sebességgel szorul ki minimum semleges formára, semmi keresnivalója itt, egy komoly műszaki környezetben a közvetett megszólításnak.

Szervác Attila - http://321.hu/sas

meg egy otlet: irj egy facebook appot, ami egy quiz jatek, es 10 random mondatrol kell eldonteni hogy tegez vagy magaz. jutalombol mondjuk kiscicas kepet oszthat meg az user vagy valami hasonlo hasznos juttatas kell :) elnezve ismeroseim fb postjait, egy ilyennek nagy sikere lenne. es ha ugyanazt a feladvanyt sok ember kitolti es egybehangzo az eredmeny akkor az vszinu jo is.

Frappáns, tetszik!

Arra kell vigyázni, hogy a játékos be legyen pozícionálva: kontrollként elég sok olyan mondatot kell feldobni, aminek ismert az eredménye, és a jó kontrolleredményt elérőket jobban kell súlyozni.

Abból indulok ki, hogy ilyen khmmm... mérsékelten nagy kihívást jelentő nyelvi fejtörő közönségében inkább azok volnának, akik számára a játék mégis kihívást jelent. Viszont pont nem rájuk kéne támaszkodni; aki határozottan tudja, hogy egy tegező mondat "te" nélkül is az, sőt a magázáshoz se kell a "maga", és mégis élvezetet talál egy ilyen játékban, azt meg kell becsülni és felértékelni, hogy jobban kilátsszon a randomközeli zajból.

> Tud-e valaki valami megoldási ötletet erre?

megnyálazod az ujjadat, betöltöd az emacsot és nekiugrasz. Volt már ilyen gondom nekem is. Az ökölszabály: ha szórakoztató programról van szó akkor tegeződés, minden egyéb esetben szigorú magázódás. (nem sok minden van, amit az oroszoktól meg a németektől át kell venni, de ez az).

--
GPLv3-as hozzászólás.

csinálj captcha service-et a leválogatásból, ahogy a google tette a az ocr korrektúrázással :)

Eszembe jutott valami, két lépcsőben kellene nekiugrani. 1. kigyüjtöd az összes szót a projektből egy ismétlődés nélküli case insensitive listába egy szkripttel/programmal, ahonnan kigyűjtöd a tegezésre utaló szavakat kézzel.
Második lépésben már csak ezekre keresel rá.

Nem kell külső lista, minden szavad meglesz, ami kell, gyorsabb manuális átnézés.

Így-így.

Másfeledik lépésként végiggondolhatod, hogy tegező igék milyen betűre végződhetnek (hirtelen: d [húzzad], j [klikkelj], l [húzol], s [kattints], z [húzz] [ebbe most beleértem az sz-t is, pl. kattintasz] – kihagytam valamit a rendhagyókon (pl. higgy) kívül?), ezekre szűrhetsz, valamint igékre is mondjuk a magyar igék listája szószedetből azt mondod, hogy mindegyik végéről lecsippentesz 2-3 betűt, az extrém rövideket kézzel kezelve, és a fordításodban szereplő szavaknak ezek valamelyikével kell kezdődniük ahhoz hogy utána kézzel ránézz.

Valszeg tudod, melyik contributor írta magázóban, melyik tegezőben.

Átnézed a tegező contributorok patcheit kézzel, a többit meg békénhagyod.

Áh. Ahogy elnéztem egy tag fordította a fordítások 90%-át egy menetben valószínűleg úgy, hogy nem használta/nem is látta magát az alkalmazást.

Ilyenekről indultunk mint:
Estimated time -> Tervezett időpont (a feladat becsült idejéről van szó órában). Mindez az új feladat űrlapon lévő egyik input labelje, amit egy projekt managment rendszernél aki felvisz egy feladatot az találkozik vele.
A nyitott feladatok státuszneve "kinyit" volt, meg hasonlók.

De az ötlet alapvetően jó köszönöm szépen!

en anno a zimbra-t (webmail) forditgattam meg az 5.5/6.x idejen. lehetetlen hasznalhatot alkotni ugy, ha csak a szoveget latod.
en ugy csinaltam, hogy elkezdtem hasznalni, es a guin latott angol szavakra kerestem ra a nyelvi fileokban es irtam at. volt olyan hogy ugyanaz az angol szo 3x is szerepelt de mas kornyezetben, es magyarul maskepp kellett megfogalmazni.
eleg pepecselos melo volt, pedig csak egy kis reszet forditottam (ami az alap webmail hasznalathoz kell, aki nagyon advanced dolgokat akar vagy beallitasokkal matatni, az kerjen segitseget vagy tudjon angolul), de igy is rengeteg ido volt.
aztan asszem a 7.x-tol gyarilag van benne magyaritas, hat az nem valami jol sikerult. eleinte meg szorakoztam azzal hogy diff-elgettem az en verziomat es a gyarit es ahol nalam is volt magyaritas ott azt hasznaltuk...

0. definiálni kell, hogy mit értünk hibamentes transzformáción (== mennyire vagyunk toleránsak a hibákkal szemben típus, mennyiség tekintetében).
1. tisztázni kell mi az elsődleges: Egy hibamentes doksi, vagy egy javítórendszer létrejötte.
2. ha a hibamentes doksi, akkor nagyobb a szabadságfok.
3. ha a javítórendszer, akkor egy nyelvész alkalmazása nélkülözhetetlen, pl ez egy nagyon jó diplomamunka téma.
4. legegyszerűbb egy több személy általi átnézés: pl kitenni a netre és aki talál valami hibát, az javít, a javítások átvezetését EGYETLEN személy végzi.

Megjegyzés - nem értem a kifogásokat a magáz-tegez vs opensouce kérdésben. Ha jól vettem le, akkor a doksi VEGYESEN tegez-magáz és egy ebbéli következetesség a cél. A probléma szempontjából mindegy hogy az összes tegezést vagy az összes magázást akarjuk lecserélni.

> Sol omnibus lucet.

Mekkora az ellenőrzésre/javításra váró szöveg?
És mennyire publikus a projekt?
Ha néhányszor tíz könyvoldalnál nem több és publikus a forrás, akkor akár én is segíthetek. Időm van, ehhez túl sokat még gondolkodni sem kell... (feltéve, hogy csak ennyi a feladat és nem a konverter program kifejlesztése a cél)

Leszedtem a fordításokat yaml-ben durván 3600 sor az összes pluginnal együtt.

Van webes fordítási lehetőség a crowdin-en:
https://crowdin.com/profile/opf

Elvileg maga webapp tud in-context-localizationt (nyelvként kell beállítani) és akkor magán az UI-n tudod fordítani, ami nekem részlegesen működött csak.

Az a vicces, hogy amennyi időt itt már elvitázgatott mindenki, annyi alatt le is lehetett volna fordítani az egészet közösségileg :). Én is azok közé tartozom, akik szerint az automatizálás ötlete időpazarlás, de így a HUP közönségének hála az egész témanyitás is :).

100 év múlva talán lesz ilyen. :)

Az, hogy egy program teljes stilisztikai ellenőrzést végezzen? "áááá" pl.: ott a Word, tele fogja rakni az írást piros hullámmal. Pedig ez még csak helyesírás ellenőrzés, ott még sehol sincs a szavak közti „rejtett” tartalom és az érzés.

Diákmunkába mehet a meló (és abból sem a sutyerák), azt még úgyis kell majd utána ellenőrizni …