Är kinesiska mera ekonomiskt än engelska?

 

I den här Economistartikeln sägs det (bland annat) att kinesiska är ett idealiskt språk för mikrobloggar som Twitter eftersom det går att få in mera på ett begränsat utrymme som 140 tecken. Genomsnittligt krymper en tweet (vad heter det på svenska?) med två tredjedelar när den översätts till engelska till kinesiska. Men här anar man en gravad hund. I datoriserat format kan man uttrycka en engelsk text med en byte per tecken, medan kinesiska tecken kräver två, eftersom de är många tusen och inte ryms inom de 256 möjligheterna som en byte erbjuder. Nu är det visserligen så att Unicodestandarden utjämnar den här skillnaden genom att koda alla tecken oberoende av skriftsystem som två bytes. Men i praktiken återuppstår skillnaden eftersom man använder olika listiga system för att koda om Unicode så att det i alla fall för det mesta bara blir en byte när man lagrar en text med latinskt alfabet. Så även om Twitters begränsning till 140 tecken tillämpas oberoende av skriftsystem så kan det hända att kinesiskans fördel ändå bara är skenbar. Detta fick bli dagens frukostexperiment att reda ut.

Jag tog Economistartikeln och översatte den med Google Translate till kinesiska. Mycket riktigt krympte den ordentligt, till cirka en tredjedel, i tecken räknat. Sen sparade jag texterna som rena textfiler med hjälp av Windowsprogrammet Notepad. I första omgången använde jag det vanligaste omkodningssystemet, UTF-8, och det visade sig att den engelska och kinesiska filen blev nästan lika långa – med en liten fördel för den kinesiska, mindre än 10 procent. Men Notepad erbjuder också ett annat kodningsformat, "Unicode Bigendian" (det låter som något ur Gullivers resor), och med det blev den kinesiska texten cirka 2 kilobyte i stället för nästan 3 som med UTF-8. Så UTF-8 missgynnar tydligen kinesiska relativt till engelska, medan det omvända gäller för Bigendian (den engelska texten växte och blev 6 kilobyte). I alla fall blir slutsatsen att det ser ut som om kinesiska fortfarande är mer ekonomiskt än engelska, fast inte alls i lika hög grad som det verkar på ytan. 

Men innan ni nu alla låter översätta era texter till kinesiska för att spara utrymme på era hårddiskar så måste jag rapportera om den sista omgången i frukostexperimentet – jag zippade alla texterna. Resultatet blev att jag reducerade den engelska texten med 47 procent medan den kortaste kinesiska bara lät sig reduceras med 22. I zippat skick blev alltså texterna ungefär lika långa. Lärdomen bör då vara att informationsteorins järnhårda lagar inte går att komma runt – i slutändan tar ett visst informationsinnehåll alltid upp samma utrymme. Fast – om man hade använt ett kinesiskt komprimeringsprogram kanske resultatet hade blivit ett annat?  

Det här inlägget postades i Okategoriserade. Bokmärk permalänken.

7 kommentarer till Är kinesiska mera ekonomiskt än engelska?

  1. Per Starbäck skriver:

    Big-Endian

    »Det låter som något ur Gullivers resor« – Det är för att det är det!
    För övrigt så kan du inte få in alla tecken i två bytes var heller. Det skulle bara ge 65536 möjligheter vilket inte skulle räcka till på långa vägar. UTF-8 är ett sätt för att lagra alla tecken i 1–4 bytes. UTF-16 är ett sätt för att lagra alla tecken i 2 eller 4 bytes.

  2. Christer Romson Lande skriver:

    Och det går att registrera nya sådana ”Unicode Transfer Encodings”, t.ex. sådana som gynnar kinesiska tecken på bekostnad av västerländska. Däremot så skulle inte ett kinesiskt zip-program gynna den kinesiska texten mera. Zip betraktar filen som en godtycklig sekvens av ettor och nollor.

  3. Sebastian Liem skriver:

    Räkna tecken

    Resonemanget ovan antar att Twitter räknar antal bytes, vilket de faktiskt inte gör. Istället normaliserar de texten, och sen räknar så kallade codepoints. Codepoints är (nära nog) abstrakta tecken som representeras av olika många bytes i olika "transfer encodings" som UTF-8 och UTF-16.
    Dina experiment med big-endian UTF-16 och zip verkar faktiskt visa att kinesiska kan säga mer med mindre tecken.

  4. Östen Dahl skriver:

    Svar till kommentarerna

    @Per: Jo, jag förstod att det var inspirerat av Gullivers resor ("bigendians", partiet som ansåg att man skulle knacka av ägg i tjockändan). Men jag är alltså lite efter min tid och befinner mig på det ursprungliga "plan 0" i Unicode. Dock vill jag säga till mitt försvar att detta plan med teoretiskt sett 65536 kodpunkter rymmer de flesta tecken som används i moderna skriftsystem inklusive kinesiska — och jag misstänker att rätt mycket mjukvara håller sig på det här planet också. 
    @Christer: tack för klargörandet.  För att ytterligare komprimera en text behöver man då ett intelligent komprimeringssystem som "begriper" språket i fråga.
    @Sebastian: Ja jag uttryckte mig tydligen inte tillräckligt klart men du har missuppfattat vad jag ville säga. Jag förutsatte inte att Twitter räknar bytes utan utgick tvärtemot ifrån att när de säger 140 tecken så menas samma sak som när Economist säger att det är 24 "characters" i den här kinesiska texten motsvarande 78 i engelskan: 
    (det som räknas är alltså inte några abstrakta kodpunkter utan konkreta krumelurer på skärmen)
    Eftersom det finns fler kinesiska tecken än latinska bokstäver så är det trivial informationsteori att det går att få in mer information med samma antal tecken med kinesisk skrift. Men min poäng är att den här skillnaden försvinner helt eller delvis när man lagrar texten i en dator, eftersom varje kinesiskt tecken tar större plats i filen. Alltså skulle man kunna säga att Twitter ger kinesiska twittrare en fördel eftersom de erbjuder dom större lagringsutrymme per tweet. Men det kan man ju unna dom med tanke på den begränsade yttrandefriheten i Kina.  

  5. Ullah skriver:

    Så det är inte ett enda långt aprilskämt alltihop?!?

  6. Robert Östling skriver:

    Språkets förfall

    Kinesiskan har, liksom alla andra språk, långsamt förfallit. Den som använder modern skriven standardkinesiska lär mycket riktigt inte spara speciellt mycket plats. Klassisk kinesiska, å andra sidan, är inte bara vackrare utan även mer kompakt.
    Jag råkade ha en bok med mig som innehåller både originaltexten (från några århundraden f.k.) och en översättning till modern skriven kinesiska, och valde på måfå ett kort stycke att räkna tecken i.
    76 tecken i originalet översätts med 238 tecken i modern kinesiska, alltså drygt tre gånger så många. Det här varierar förstås med översättaren, men mellan 2 och 3 gånger längre är normalt.
    Det är kanske onödigt att tillägga att den klassiska versionen kräver lite mer av läsaren.

  7. Robert Östling skriver:

    Efter att ha skrivit ovanstående funderade jag lite på precis varifrån alla extratecken i den moderna översättningen kommer. Mina fördomar säger att varje tecken i originalet nog bara har fått ett synonymt tecken påhängt, men jag bestämde mig för att räkna lite på det. Nu använder jag en annan text, med en mer konservativ och koncis översättning. I mitt urval (det första stycket) blev 80 tecken till 142, alltså "bara" 78% längre.
    Så här fördelar sig orsakerna till att översättningen blir längre:
    * Tecken översatt med sammansättning (där originaltecknet inte ingår): 12 fall
    * Tecken översatt med sammansättning (som inkluderar originaltecknet): 11 fall
    * Grammatisk konstruktion ändrad till en med fler/längre funktionsord: 5 fall
    * Utelämnat subjekt tillfört: 4 fall
    * Pronomen/titel ersatt med namn: 3 fall
    * Klargörande ord tillfört: 3 fall
    Det finns även ett enda fall där översättningen hoppar över ett tecken (ett objektspronomen) i originalet.
    En kombination av korta (oftast mångtydiga) ord och utelämnande av sådant som "borde vara uppenbart" är alltså hemligheten. Det kan vara bra att veta för oss doktorander, eftersom disputationsbudgeten inte räcker till för att trycka en avhandling på ett så slösaktigt språk som engelska.

Kommentera

E-postadressen publiceras inte. Obligatoriska fält är märkta *


*

Följande HTML-taggar och attribut är tillåtna: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>