26
基基基基基基基基 基基基基基基基基基基基基

基本編の用語説明 その2 エディタと日本語入力

  • Upload
    bishop

  • View
    30

  • Download
    2

Embed Size (px)

DESCRIPTION

基本編の用語説明 その2 エディタと日本語入力. エディタ. エディタ (editor) : 文書を作成、編集するアプリケーションソフトウェア 教育用計算機システムのエディタは、     テキストエディット 基本的な編集方法は ここ カーソル :文字が入力される位置を表している目印 カッペ、コピペ 検索と置換 編集結果の保存 文系のみなさんには興味はないだろうが emacs というエディタもある. さて、いよいよ日本語入力だが。。。. 文字コード : コンピュータの内部   対応 画面やキーボードで見える文字 - PowerPoint PPT Presentation

Citation preview

Page 1: 基本編の用語説明 その2 エディタと日本語入力

基本編の用語説明 その2エディタと日本語入力

Page 2: 基本編の用語説明 その2 エディタと日本語入力

エディタエディタ (editor) :文書を作成、編集する

アプリケーションソフトウェア 教育用計算機システムのエディタは、 

   テキストエディット 基本的な編集方法はここ

カーソル:文字が入力される位置を表している目印 カッペ、コピペ検索と置換編集結果の保存

文系のみなさんには興味はないだろうが emacs というエディタもある

Page 3: 基本編の用語説明 その2 エディタと日本語入力

さて、いよいよ日本語入力だが。。。 文字コード: コンピュータの内部 対応画面やキーボードで見える文字

  ( 2 進数で表現)   文字コード  (人間に読める:フォント) フォント:画面にみえる字の形

Unicode: 世界の主な文字を文字集合として 16 ビットの文字コード詳しくはここ

アスキーコード: 7 ビットで英数字を表す文字コード ビット: 2 進数 1 桁のこと。計算機で情報を表す最小単位

漢字コード:漢字は 8 ビットでは表現できないので、 16ビット以上使うコードになる ShiftJIS(SJIS), EUC, JISなどが混在。    これらのコードが混在した状態でいったいどうやって文字コード

を認識するのだろうか?         

Page 4: 基本編の用語説明 その2 エディタと日本語入力

ISO 646 (ASCII) 文字セット0 1 2 3 4 5 6 7 8 9 A B C D E F

2 ! “ # $ % & ‘ ( ) * + , . /

3 0 1 2 3 4 5 6 7 8 9 : ; < = > ?

4 @ A B C D E F G H I J K L M N O

5 P Q R S T U V W X Y Z [ \ ] ^ _

6 ` a b c d e f g h i j k l m n o

7 p q r s t u v w x y z { | } ~

Page 5: 基本編の用語説明 その2 エディタと日本語入力

JIS 漢字JIS 漢字

sjis sjis sjis

sjis sjis sjis

00

21

5E

5F

7E

81

9F

E0

EF

第 2 バイト

00 21 40 7E 80

第1

バイト(アスキーコード)

   JIS カタカナ    JIS X0201 ここは 1 バイト文字

シフトJIS (sjis) の漢字領域のシフト

この行き来( 1 バイト文字と2バイト文字の行き来)は特殊文字列( ISO2022 エスケープシーケンス)で行う

JIS コード

SJIS コード

Page 7: 基本編の用語説明 その2 エディタと日本語入力

ここから先は難しいので、根性の無い人は、これ以上進んではいけません:

コードの歴史• ASCII(American Standard Code for

Information Interchange) ANSI• ISO 646 = 95 文字のラテン文字• アルファベット+数字+特殊文字• 制御コード:  LF, CR などの表示制御と

    ACK,DEL などの通信制御 、など• JISX0201 では ASCII の特殊文字の一部が

異なる(¥の使用など)

Page 8: 基本編の用語説明 その2 エディタと日本語入力

日本語コードの話

• 1 バイトでは最大256文字• 字種の多い言語では多バイトコード• 1 バイトコードで事足りる欧米言語と多バ

イトコードが必要なアジアの言語とのバトルグランド

• 文字コードのような基本的情報インフラの標準化は社会への影響莫大

Page 9: 基本編の用語説明 その2 エディタと日本語入力

ISO2022

• エスケープシーケンスにより文字を拡張するための各種のメカニズム

• 各国の ISO646  (アメリカならASCII 、日本なら JIS X 0201 ) を別個の文字集合として指定し切り替えて使える。

• ちなみに西ヨーロッパの文字では、 ISO8859/1

Page 10: 基本編の用語説明 その2 エディタと日本語入力

ISO2022  エスケープシーケンス

変化先の文字コード エスケープシーケンス

ASCII ESC ( B

JIS   X0201 ( ASCII対応部分)

ESC   (   J

JIS  カタカナ ESC   (   I

JIS   0208 ESC  $  B

Page 11: 基本編の用語説明 その2 エディタと日本語入力

JISコードの歴史

• JISX0208(1978) 当時はJISC6226 カタカナ(いわゆる半角カタカナ)および全角英字はいまや無用の長物ないしは有害

• 半角カタカナと全角英字は 97JIS では使わないことに決めた

• シフトJIS• 78JIS    83JIS   90JIS 97JIS

Page 12: 基本編の用語説明 その2 エディタと日本語入力

内部状態を持つ文字コードと持たない文字コード

• 1 バイトコードの ASCII は内部状態なし• 2バイトの内部状態なしコードを目指し

たのがユニコード• エスケープシーケンスのある文字コード

ISO2022 に則るコードは内部状態を持つ。• 内部状態を持つと何がまずいのか?

Page 13: 基本編の用語説明 その2 エディタと日本語入力

JIS コードにおける漢字

• 78JIS の第1水準 2965文字=都道府県     名、市町村名を全て記述できる。      第2水準 3384文字

• JISX 0212 の補助漢字 5801文字

Page 14: 基本編の用語説明 その2 エディタと日本語入力

日本語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 補助漢字

• 上位ビットを見るだけで字種を判別できる

Page 15: 基本編の用語説明 その2 エディタと日本語入力

シフトJIS

• JISX0208で使用していない文字を漢字の 1 バイト目に使う。すなわち、

• 1 バイト目、– 最上位ビット= 0 JIS X0201( 英数字など ASCII

対応部分)– 最上位ビット= 1 JIS カタカナ– #x81-9F ( JIS X 0201 では未使用) , E0-

EF ( ISO2022 の制御符号部分) 漢字• 2 バイト目は #x40-EF• 合計24576文字• 台湾、中国、韓国版として  Big5, GBK,UHC

Page 16: 基本編の用語説明 その2 エディタと日本語入力

JIS 漢字JIS 漢字

00

21

5E

5F

7E

81

9F

E0

EF

第 2 バイト

00 21 40 7E 80

第1

バイト

   JIS カタカナ    JIS X0201

シフトJISの漢字領域のシフト

Page 17: 基本編の用語説明 その2 エディタと日本語入力

漢字の形

• 「包摂」 とは 異なる字形を同一視の基準のこと。 例えば、「高」や「富」や「国」のふたつの字形など

• そもそも字形のぶれをきちんと定義できるのか?

• 計算機技術によって解決できる種類の問題?

Page 18: 基本編の用語説明 その2 エディタと日本語入力

文字と文字コードと字形の関係

文字

文字コード

字形字形のゆれ  包摂基準で規定文字と字形の

関係は複雑怪奇「島」「嶋」

目的に応じて決める

Page 19: 基本編の用語説明 その2 エディタと日本語入力

情報検索という目的だとどうなるか

• 人名を検索したいなら「嶋」と「島」は別の文字コードにしておくべき

• A  と  a  が同じ文字コードでは困ることもあるので別のコードに

• 字形が増えると文字コードが増える。検索ではいくつかの文字コードを同一視するようなプログラムを書く

Page 20: 基本編の用語説明 その2 エディタと日本語入力

用字系と使用言語の関係

• 「どの言語で書かれたテキストか」と「どの用字系が使われているか」を区別することも多言語処理では重要

• 同じ字と思しき字でも使われる用字系が違うと異なるコードが割り振られるべき。

• ユニコードのCJK(日中韓統一漢字コード)は、3ヶ国語の漢字を字形が似ているという理由で同じコードに割り当てている。

Page 21: 基本編の用語説明 その2 エディタと日本語入力

左右 縦横

• 文を 右から左に書くか、 左から右に書くか

• 文を縦書きするか、横書きするか• このような問題は文字コードの問題か、

言語の問題か、用字系の問題か 平文( plain text ) vs 構造化文書

Page 22: 基本編の用語説明 その2 エディタと日本語入力

Plain Text  vs 構造化文書

• Plain text は単なる文字コードの連なり。表示や論理的構造を持たない。

• ネットワークエチケットのひとつにメールは Plain text で書くということがある。

• 構造化文書はタグによって、文書の論理構造や表示の指示、あるいは使用言語などまで指定したもの。  LaTex , SGML 、XML 、 HTML など

Page 23: 基本編の用語説明 その2 エディタと日本語入力

自動文字コード認識• ISO2022 のエスケープシーケンスを探す• JIS 、 SJIS 、 EUC などを仮定して復元。

日本語らしい言語統計になるのが正しい文字コード

• 言語統計とは?• 文字の頻度統計、 N-gram統計、単語の頻度

Page 24: 基本編の用語説明 その2 エディタと日本語入力

文字コード変換ツール( UNIX)

• nkf - 変換先コード ファイル名• 変換先コードは  j 、 s 、 e 、 m

Page 25: 基本編の用語説明 その2 エディタと日本語入力

便利な情報リソース• 情報通信辞典:http://www.e-words.ne.jp/

Page 26: 基本編の用語説明 その2 エディタと日本語入力

使用言語の推定• あるテキストの文字コードが分かると次

はそのテキストが記述されている言語を推定

• 使用言語推定– 言語特有の文字コード、文字列パタン、– 言語固有の文字出現頻度、– 言語固有の文字列 (n-gram)出現頻度– などによって判断