„Második fejezet” a LibreOffice-ban és a parancssorban

 ( nemethl | 2018. május 4., péntek - 19:57 )

A LibreOffice 6.1 újdonságaként magyar számneves számozási stílusokat is használhatunk kiadványainkban a következő videón látható módon. Az FSF.hu Alapítvány támogatásával megvalósult fejlesztés az OOXML szabványban már meglévő hasonló számozások export/import támogatását is tartalmazza.

A fejlesztés mögött az előző hírben szereplő Soros programozási nyelv, illetve az új libnumbertext programkönyvtár áll, amely több mint 30 nyelven teszi elérhetővé az új számozási stílusokat, l. a következő videó angol, francia és német példáit. Rene Engelhard megkezdte a libnumbertext Debian-integrációját, egyszerű hozzáférést biztosítva a programkönyvtárhoz, amellyel nemcsak a LibreOffice felületén alapértelmezetté váló funkciókat, hanem több új érdekes magyar számnévformátumot is használhatunk akár a parancssorban is:

$ spellout
spellout 1.0.1-3: convert numbers to number names and money amounts
Usage: spellout [-l lang] [-p prefix] par1 [par2...]
Parameter: n: number; n-m: range; n-m~s: range with step
Examples: spellout 1-10 500 1000-10000~1000
          spellout -l en-GB -p ordinal 1-100
          spellout -l en -p ordinal-number 1-100
          spellout -l en -p USD 100.45
          spellout -l en -p "money USD" 100.45
Help of language module: spellout -l es help
$ spellout -l hu help
egy, kettő, három
ordinal: első, második, harmadik
ordinal-number: 1., 2., 3.
year: kétezeregy, kétezerkettő, kétezerhárom
formal: egyszáz, kettőszáz, egyezer
text: egy, 12 ezer, 10 milliárd
currency (for example, HUF): két forint ötven fillér
formal HUF: egyszázkettő forint ötven fillér
$ spellout -p ordinal -l hu 1-3
első
második
harmadik

A fejlesztés a LibreOffice fordítói közösség bevonásával, illetve a még hiányzó többnyelvű számneves oldalszámozás megvalósításával folytatódik. Kapcsolódó hibajegy: tdf#117171.

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

igazabol lenyugozo. Csak ezeket mar irodalmi folyoiratokban kene lekozolni, mert itt mar nem uti meg az emberek ingerkuszobet. Egyszeruen az informatikusok ennyire nem vajtfuluek.

Ahogy regen az irodalomtanarnom mondta: engem annyira erdekelt a matematika, hogy a fizetesemet meg tudjam szamolni...

Egyebkent forditva is mukodik parancssorbol?

Ertem ez alatt, hogy szoveget tokenizalok, es az irott szamokat kiveszi szamokkent.
pl:
kettoezer-tiz forint -> 2010 huf

---
Saying a programming language is good because it works on all platforms is like saying anal sex is good because it works on all genders....

"irodalmi folyóiratokban kéne leközölni"

Teljesen egyetértek. A kivitelezés tényleg bravúros, minden tiszteletem, de mivel a számokat könnyebb számjegyként kezelni és értelmezni emberi oldalon is, így nagyon ritka, amikor erre a betűátírásra tömegesen/automatizáltan szükség van.

Amúgy szép munka! :-)

Igaz, a hír inkább érdekes, mint hasznos a legtöbb informatikusnak. De most kaptam több javítást, illetve észrevételt többek között kínai, izlandi és bolgár LibreOffice-fejlesztőktől, úgyhogy bízom az informatikus olvasókban is! :) Bíró ismerősöm a Linux Libertine G Graphite betűkészletekkel alakította át automatikusan még az évszámokat is a jogi szakszövegekben, pl. „kelt kétezer-tizennégyben”. A jövőben ez a kerülő megoldás, és a Calc Numbertext kiegészítő is kiváltható lesz a libnumbertext-integrációval.

A szövegfelismeréshez külön Soros programot lehet írni, alapból még nem támogatott a programkönyvtárban (bár a szabályokat meg lehetne fordítani valószínűleg). A külön program előnye, hogy tetszőleges rugalmasságú lehet, pl. a következő magyar példa a furcsább számok („ezermilliárd”), helyesírási hibák („milió”, „nyócvan”), felesleges szóközök és kötőjelek esetén is működik, pl.

$ spellout -l hu_fordítva "ezer milliárd nyócvan milió--tiz forint"
1000080000010 HUF

A program (amely ékezet nélküli bemenetre is könnyen módosítható):

# currency

"(.*) forint" $1 HUF

# add zeroes

== e12 ==

(.*)mill?iárd(.*)	$(e3 \1)$(e9 \2)
(.*)			000$(e9 \1)

== e9 ==

(.*)mill?ió(.*)		$(e3 \1)$(e6 \2)
(.*)			000$(e6 \1)

== e6 ==

"[- ]?ezer(.*)"		001$(e3 \1)
(.*)ezer(.*)		$(e3 \1)$(e3 \2)
(.*)			000$(e3 \1)

== e3 ==

(.*száz.*)	$1
(.*(t[ií]z|h[uú]sz|harminc|v[ea]n).*) 0$1
(..+)		00$1
"[- ]?"		000

== ==

# numbers

(egy)?bill?ió(.*)		1$(e12 \2)
(.*)bill?ió(.*)			$1$(e12 \2)
(egy)?mill?iárd(.*)		1$(e9 \2)
(.*)mill?iárd(.*)		$1$(e9 \2)
(egy)?mill?ió(.*)		1$(e6 \2)
(.*)mill?ió(.*)			$1$(e6 \2)
(egy)?ezer(.*)			1$(e3 \2)
(.*)ezer(.*)			$1$(e3 \2)

# remove inner spaces and hyphens

"[- ](.*)" $1
"(.*)[- ]" $1

# numbers

(egy)?száz	100
(.*)száz	$100
(egy)?száz(.*(t[ií]z|h[uú]sz|harminc|v[ea]n).*) 1$2
(.*)száz(.*(t[ií]z|h[uú]sz|harminc|v[ea]n).*) $1$2
(egy)?száz(.*)	10$2
(.*)száz(.*)	$10$2

nulla		0
egy		1
(két|kettő)	2
három		3
n[eé]gy		4
öt		5
hat		6
h[eé]t		7
(nyolc|nyóc)	8
kilenc		9
t[ií]z		10
t[ií]zen(.*)	1$1
h[uú]sz		20
h[uú]szon(.*)	2$1
harminc		30
harminc(.*)	3$1
(negy|öt|hat|het|nyolc|nyóc|kilenc)v[ae]n $10
(negy|öt|hat|het|nyolc|nyóc|kilenc)v[ae]n(.*) $1$2

Én pont fordítva működök mint az irodalomtanárnőd.
Engem érdekel a matek, de csak tisztán!
Nagyon nem szeretem ha nyelvtannal vegyítik, szóval ha betűket is látok benne, akkor ott már valakinek az édesanyját. :-)

https://9gag.com/gag/6110446/technically-yes-but-never-again

(rejtett subscribe)

BlackY
--
"en is amikor bejovok dolgozni, nem egy pc-t [..] kapcsolok be, hanem a mainframe-et..." (sj)

Wow. :)

Ez a fejlesztés szerintem a felolvasó programokban jöhet nagyon jól, ahol vakoknak, gyengénlátóknak lehet nagy segítség, amikor a számokat illetve a jelöléseket, rövidítéseket értelmesen, pontosan tudja szöveggé konvertálni, majd felolvasni.

Nem mindegy, hogy:
"egy hat pont öt három e ú er megfelel öt kettő nulla egy pont négy kettő há ú ef nek"
vagy pedig
"tizenhat egész ötvenhárom euró megfelel ötezer-kétszázegy egész negyvenkettő forintnak"

Briliáns észrevétel!

Ezen a téren valóban hatalmas előrelépés lenne ha tudják alkalmazni.

Ez a probléma szerintem évek óta meg van oldva.

Annak idején egy szerző a Linuxvilágban leközölte a mbrola nevű szoftver magyarításának menetét. A számok felolvasásához történetesen azt a shellszkriptet használta fel, ami az én könyvemben található példaprogramként.

---
Science for fun...