Prezentace se nahrává, počkejte prosím

Prezentace se nahrává, počkejte prosím

Kódování znaků Datové formáty

Podobné prezentace


Prezentace na téma: "Kódování znaků Datové formáty"— Transkript prezentace:

1 Kódování znaků Datové formáty
Zdroje jazykových dat Kódování znaků Datové formáty

2 Kódování znaků Počítače současnosti – číslicové
neexistuje přirozený vztah mezi čísly a znaky abecedy  potřeba konvence Neexistence konvence nebo mnoho konvencí  CHAOS Na začátku bylo slovo, a to slovo bylo v ASCII …

3 Základní pojmy Znak (character)‏
abstraktní pojem (An „A“ is something like a Platonic entity: it is the idea of an „A“ and not the „A“ itself)‏ nemá sám o sobě žádnou číselnou reprezentaci ani pevnou grafickou podobu Př. „velké písmeno A s čárkou“ Repertoár znaků (character repertoire)‏ Množina znaků Otázka identity: stejně vypadající znaky mohou být považovány za logicky odlišné (A v latince a alfabetě)‏

4 Základní pojmy Kódování (encoding)‏
Algoritmus pro převod posloupnosti znaků na posloupnost oktetů kódová pozice znaku (code position)‏ Číselná reprezentace znaku (nezáporné celé číslo)‏ Kódování (character code)‏ 1-1 relace mezi prvky repertoáru znaků a nezápornými celými čísly Glyf Vizuální prezentace znaku Font Repertoár glyfů pro množinu znaků

5 ASCII (1)‏ American Standard Code for Information Interchange (od 1950’s)‏ Sedm bitů – hodnoty 0-127 0-31,127 - Kontrolní znaky (Escape, Line Feed)‏ – mezera, speciální znaky, číslice, velká a malá písmena latinky: ! " # $ % & ' ( ) * + , - . / : ; < = > A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z { | } ~ Pozn. Nesmyslný termín ‘8-bit ASCII’

6 ASCII (2)‏ Výhody: Zásadní nevýhoda:
Velice jednoduché kódování: jeden znak – jedna kódová pozice Minimální objem: 1 znak – 1 oktet (jeden bit zbyde - oktety zůstávají nevyužité)‏ Zásadní nevýhoda: Neprosto nedostačující pro repertoáry znaků národních abeced

7 8-bitová kódování (1)‏ Potřeba dalších znaků
vznikají nová kódování obsahují ASCII jako podmnožinu navíc využívají oktety (stále platí jeden znak – jeden oktet)‏ International Standard Organisation vydává skupinu standardních kódování pro některé skupiny jazků – rodina ISO (1980’s)‏ ISO (ISO Latin 1) – západoevropské jazyky ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ­ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý þ ÿ

8 8-bitová kódování (2)‏ pro češtinu a ostatní středo- a východoevropské jazyky - anarchie: ISO (ISO Latin 2)‏ Windows-1250 Koi-8 Bratři Kameničtí vlastní „standardy“ IBM, Apple

9 Unicode (1)‏ Jediné řešení: víceoktetová kódování
1991 – Unicode Consortium Unicode (resp. ISO 10646)‏ určuje repertoár znaků a jejich kódové pozice v současnosti- 30 světových abeced užívaných v několika stovkách jazyků, cca znaků …arabština, sanskrt, čínština, japonština, korejština… ambice: 250 abeced pro několik tisíc jazyků Znaky v Unicode: „LATIN CAPITAL LETTER A WITH ACUTE“

10 Unicode (2)‏ Mýtus: Unicode – 16-bitové kódování Obvyklá kódování:
UTF-32 každý znak – čtyři oktety UTF-16 – každý znak v každý znak v BMP (Basic Multilingual Plane) – dva oktety Ostatní znaky – čtyři oktety UTF-8 proměnná délka: 1-6 oktetů na znak v prvním oktetu posloupnosti určuje počet bitů zleva po první nulu celkový počet oktetů Jakýkoli byte, který nezačíná na 10xxxxxx je začátek zápisu dalšího znaku výhoda: znaky ASCII se v UTF-8 kódují stejně -: kompatibilita Výhoda pro češtinu: všechny znaky české abecedy se kódují jedním nebo dvěma oktety

11 Unicode (3)‏ Ve srovnání s 8-bitovými kódováními vznikají nové otázky:
řetězcová ekvivalence vizuálně totožných znaků různých abeced (napr. A v latince, azbuce a alfabetě)? abecední řazení ? („LATIN CAPITAL LETTER A WITH ACUTE“ vs. „LATIN CAPITAL LETTER A WITH GRAVE“)‏

12 Jiná řešení „escape notation“ - znaky mimo kódování, které je k dispozici, mohou být nahrazeny dohodnutou posloupností znaků (různé pro různé systémy)‏ TeX: Ä \”{A} HTML Ä Ä transliterace

13 Konverze souborů Linux: Windows:
iconv –f windows-1250 –t utf8 text-win > text-utf8 Windows: nouzové řešení: v MS Word otevřít jako soubor s kódovaným textem a uložit jako soubor s kódovaným textem

14 Práce s kódováním v Perlu (1)‏
Since Perl 5.8.0: Normal users of Perl should never care how Perl encodes any particular Unicode string (because the normal ways to get at the contents of a string with Unicode--via input and output--should always be via explicitly-defined I/O layers). Perl FAQ: How Do I Know Whether My String Is In Unicode? You shouldn't care. No, you really shouldn't. No, really.

15 Práce s kódováním v Perlu (2)‏
Pokud zdrojový soubor obsahuje jiné znaky než ASCII, je nutné určit jeho kódování, ve kterém je uložen: use encoding ’utf-8’; Při otevírání vstupních nebo výstupních souborů…, je nutné určit jejich kódování: open FH, ’>:encoding(iso )’, ’myfile’; Na otevřených souborech: binmode STDOUT, ’:encoding(iso ) ’;

16 Prameny http://www.cs.tut.fi/~jkorpela/chars.html
2/perl/pod/perluniintro.pod

17 Datové formáty Rozmanitost datových zdrojů  rozmanitost datových formátů Ale stejně …

18 Negra #BOS 1 1 985275570 1 Mögen VMFIN 3.Pl.Pres.Konj HD 508
Puristen NN Masc.Nom.Pl.* NK aller PIDAT *.Gen.Pl NK Musikbereiche NN Masc.Gen.Pl.* NK auch ADV MO die ART Def.Fem.Akk.Sg NK Nase NN Fem.Akk.Sg.* NK rümpfen VVINF HD , $, die ART Def.Fem.Nom.Sg NK Zukunft NN Fem.Nom.Sg.* NK der ART Def.Fem.Gen.Sg NK Musik NN Fem.Gen.Sg.* NK liegt VVFIN 3.Sg.Pres.Ind HD für APPR Akk AC viele PIDAT *.Akk.Pl NK junge ADJA Pos.*.Akk.Pl.St NK Komponisten NN Masc.Akk.Pl.* NK im APPRART Dat.Masc AC Crossover-Stil NN Masc.Dat.Sg.* NK $ # NP GR # NP OA # NP GR # PP MO # PP MO # NP SB # VP OC # NP SB # S MO # S #EOS 1

19 Penn Treebank ( (S (NP-SBJ The proposed changes)‏ (ADVP also)‏
(VP would (VP allow (S (NP-SBJ executives)‏ (VP to (VP report (NP (NP exercises)‏ (PP of (NP options)))‏ (ADVP-TMP (ADVP later)‏ and (ADVP less often)))))))‏ .))‏

20 PDT [#,Z# ,#7,AuxS,ln95049:125- p8s4A,origf=#7,ord=0,trlemma=#7,func=SENT,dord=0,sentord=0,reserve1 =TR_TREE]([politika_^(v?da),NNFS1-----A---- ,politika,ExD,origf=politika, AID=ln p8s4Aw2,2,formtype=lower,tagMD_a=NNFS1-----A---- ,tagMD_b=NNFS1-----A---- ,politika_^(věda),politika_^(věda),ordorig=0,politika,???,SG,NA,tfa=T,DE NOM,memberof=NIL,dord=2,sentord=2,funcauto=DENOM,(286.0/14.0),# {custom4},trneg=A,reserve2=ExD]([cenový,AAFS1----1A---- ,Cenová,Atr,origf=Cenová,AID=ln p8s4Aw1,1,formtype=cap,tagMD_a=AAFS1----1A----,tagMD_b=AAFS A---- ,cenový,cenový,ordorig=2,cenový,???,SG,POS,tfa=T,RSTR,memberof=NI L,dord=1,sentord=1,funcauto=RSTR,(3028.0/67.1),#{custom4},trneg=A,re serve2=Atr]))‏

21 WordNet n 05 entrance 0 entering 0 entry 0 ingress 0 incoming n v v v v 0101 ~ n 0000 ~ n 0000 ~ n 0000 ~ n 0000 ~ n 0000 ~ n 0000 ~ n 0000 | the act of entering; "she made a grand entrance"

22 Valenční slovník extrahovaný ze SSJČ
angažovat <v>hPc4-hTc2r{do},hPc4-hTc6r{v},hPc4-hTc2r{do}-hTc6r{v} angažovat se <v>hTc6r{v},hTc2r{do},hTc6r{p?i},hPTc4r{pro},hPTc4r{za} anglikanizovat <v>hPTc4 anglikanizovat se <v> animovat <v>hPTc4,hPc4,hPc4-hTc3r{k},hPc4-hTc4r{pro} antedatovat <v>hTc4 anticipovat <v>hTc4 antropomorfizovat <v>hTc4 anulovat <v>hTc4 apelovat <v>hPTc3r{ke},hPTc4r{na} aplaudovat <v>hPTc3 aplikovat <v>hTc4,hTc4r{na},hTc4-hTc4r{na},hTc4,hTc6r{v},hTc4-hTc6r{v} aportovat <v>hTc4,hPc3-hTc4 apretovat <v>hTc4 aprobovat <v>hPTc4 aprobovat se <v>hTc4r{na}

23 Valenční slovník VALLEX
* HLÁSIT ~ ned: hlásit + ACT(1;obl) ADDR(3;opt) PAT(o+6;opt) EFF(4,jak,že;obl) LOC(;typ)‏ -synon: oznámit -example: hlásit někomu o něčem zprávu -reciprex: hlásili si navzájem o sob? nové zprávy -reciprocity: ACT-ADDR-PAT -use: prim -class: communication -freq: 8;9 + ACT(1;obl) ADDR(3;opt) PAT(na+4;opt) EFF(4,jak,?e;obl) LOC(;typ)‏ -synon: udat -example: hlásit na něj, že přechovává zakázané knihy -use: posun -freq: 3

24 Přechod na jednotný formát?
XML!


Stáhnout ppt "Kódování znaků Datové formáty"

Podobné prezentace


Reklamy Google