Presentation is loading. Please wait.

Presentation is loading. Please wait.

コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など.

Similar presentations


Presentation on theme: "コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など."— Presentation transcript:

1 コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など JISX0201ではASCIIの特殊文字の一部が異なる(¥の使用など)

2 ISO 646 (ASCII) 文字セット 1 2 3 4 5 6 7 8 9 A B C D E F ! “ # $ % & ‘ ( )
1 2 3 4 5 6 7 8 9 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 { | } ~

3 日本語コードの話 1バイトでは最大256文字 字種の多い言語では多バイトコード 1バイトコードで事足りる欧米言語と多バイトコードが必要なアジアの言語とのバトルグランド 文字コードのような基本的情報インフラの標準化は社会への影響莫大

4 ISO2022 エスケープシーケンスにより文字を拡張するための各種のメカニズム 各国のISO646 (アメリカならASCII、日本ならJIS X 0201) を別個の文字集合として指定し切り替えて使える。 ちなみに西ヨーロッパの文字では、ISO8859/1

5 ISO2022 エスケープシーケンス 変化先の文字コード エスケープシーケンス ASCII ESC ( B
JIS X0201(ASCII対応部分) ESC ( J JIS カタカナ ESC ( I JIS 0208 ESC $ B

6 JISコードの歴史 JISX0208(1978) 当時はJISC6226 カタカナ(いわゆる半角カタカナ)および全角英字はいまや無用の長物ないしは有害 半角カタカナと全角英字は97JISでは使わないことに決めた シフトJIS 78JIS  83JIS  90JIS  97JIS

7 内部状態を持つ文字コードと 持たない文字コード
1バイトコードのASCIIは内部状態なし 2バイトの内部状態なしコードを目指したのがユニコード エスケープシーケンスのある文字コード ISO2022 に則るコードは内部状態を持つ。 内部状態を持つと何がまずいのか?

8 JISコードにおける漢字 78JISの第1水準 2965文字=都道府県     名、市町村名を全て記述できる。      第2水準 3384文字 JISX 0212 の補助漢字 5801文字

9 日本語EUC Unixで常用される2バイトコード 上位ビットを見るだけで字種を判別できる
第1バイト最上位ビット=0  JIS X0201(ASCII対応部分) 第1バイト最上位ビット=1 かつ第2バイト最上位ビット=1  JIS漢字 第1バイト=8E かつ第2バイト最上位ビット=1  JISカタカナ 第1バイト=8E かつ第2バイト最上位ビット=1かつ第3バイト最上位ビット=1  JIS補助漢字 上位ビットを見るだけで字種を判別できる

10 シフトJIS JISX0208で使用していない文字を漢字の1バイト目に使う。すなわち、 1バイト目、 2バイト目は#x40-EF
最上位ビット=0 JIS X0201(英数字など ASCII対応部分) 最上位ビット=1 JISカタカナ #x81-9F(JIS X 0201では未使用), E0-EF(ISO2022の制御符号部分) 漢字 2バイト目は#x40-EF 合計24576文字 台湾、中国、韓国版として Big5, GBK,UHC

11 シフトJIS(sjis)の漢字領域のシフト
第2バイト E 80 JISコード 00 21 5E 5F 7E 81 9F E0 EF JIS漢字 sjis 第1バイト(アスキーコード) この行き来(1バイト文字と2バイト文字の行き来)は特殊文字列(ISO2022エスケープシーケンス)で行う   JISカタカナ   JIS X0201 ここは1バイト文字 シフトJIS(sjis)の漢字領域のシフト SJISコード

12 漢字の形 「包摂」 とは 異なる字形を同一視の基準のこと。 例えば、「高」や「富」や「国」のふたつの字形など そもそも字形のぶれをきちんと定義できるのか? 計算機技術によって解決できる種類の問題?

13 文字と文字コードと字形の関係 文字 字形のゆれ 字形  包摂基準で規定 文字と字形の 関係は複雑怪奇 「島」「嶋」 目的に応じて決める
 包摂基準で規定 文字と字形の 関係は複雑怪奇 「島」「嶋」 目的に応じて決める 文字コード

14 情報検索という目的だとどうなるか 人名を検索したいなら「嶋」と「島」は別の文字コードにしておくべき A と a が同じ文字コードでは困ることもあるので別のコードに 字形が増えると文字コードが増える。検索ではいくつかの文字コードを同一視するようなプログラムを書く

15 用字系と使用言語の関係 「どの言語で書かれたテキストか」と「どの用字系が使われているか」を区別することも多言語処理では重要 同じ字と思しき字でも使われる用字系が違うと異なるコードが割り振られるべき。 ユニコードのCJK(日中韓統一漢字コード)は、3ヶ国語の漢字を字形が似ているという理由で同じコードに割り当てている。

16 左右 縦横 文を 右から左に書くか、 左から右に書くか 文を縦書きするか、横書きするか このような問題は文字コードの問題か、言語の問題か、用字系の問題か  平文(plain text) vs 構造化文書

17 Plain Text  vs 構造化文書 Plain text は単なる文字コードの連なり。表示や論理的構造を持たない。 ネットワークエチケットのひとつにメールは Plain text で書くということがある。 構造化文書はタグによって、文書の論理構造や表示の指示、あるいは使用言語などまで指定したもの。 LaTex,SGML、XML、HTMLなど

18 自動文字コード認識 ISO2022のエスケープシーケンスを探す
JIS、SJIS、EUCなどを仮定して復元。日本語らしい言語統計になるのが正しい文字コード 言語統計とは? 文字の頻度統計、N-gram統計、単語の頻度

19 文字コード変換ツール(UNIX) nkf -変換先コード ファイル名 変換先コードは j、s、e、m

20 便利な情報リソース 情報通信辞典:

21 使用言語の推定 あるテキストの文字コードが分かると次はそのテキストが記述されている言語を推定 使用言語推定
言語特有の文字コード、文字列パタン、 言語固有の文字出現頻度、 言語固有の文字列 (n-gram)出現頻度 などによって判断


Download ppt "コードの歴史 ASCII(American Standard Code for Information Interchange)  ANSI ISO 646 = 95文字のラテン文字 アルファベット+数字+特殊文字 制御コード: LF, CR などの表示制御と   ACK,DEL などの通信制御 、など."

Similar presentations


Ads by Google