Upload
bishop
View
30
Download
2
Embed Size (px)
DESCRIPTION
基本編の用語説明 その2 エディタと日本語入力. エディタ. エディタ (editor) : 文書を作成、編集するアプリケーションソフトウェア 教育用計算機システムのエディタは、 テキストエディット 基本的な編集方法は ここ カーソル :文字が入力される位置を表している目印 カッペ、コピペ 検索と置換 編集結果の保存 文系のみなさんには興味はないだろうが emacs というエディタもある. さて、いよいよ日本語入力だが。。。. 文字コード : コンピュータの内部 対応 画面やキーボードで見える文字 - PowerPoint PPT Presentation
Citation preview
基本編の用語説明 その2エディタと日本語入力
エディタエディタ (editor) :文書を作成、編集する
アプリケーションソフトウェア 教育用計算機システムのエディタは、
テキストエディット 基本的な編集方法はここ
カーソル:文字が入力される位置を表している目印 カッペ、コピペ検索と置換編集結果の保存
文系のみなさんには興味はないだろうが emacs というエディタもある
さて、いよいよ日本語入力だが。。。 文字コード: コンピュータの内部 対応画面やキーボードで見える文字
( 2 進数で表現) 文字コード (人間に読める:フォント) フォント:画面にみえる字の形
Unicode: 世界の主な文字を文字集合として 16 ビットの文字コード詳しくはここ
アスキーコード: 7 ビットで英数字を表す文字コード ビット: 2 進数 1 桁のこと。計算機で情報を表す最小単位
漢字コード:漢字は 8 ビットでは表現できないので、 16ビット以上使うコードになる ShiftJIS(SJIS), EUC, JISなどが混在。 これらのコードが混在した状態でいったいどうやって文字コード
を認識するのだろうか?
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 { | } ~
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 コード
• MacOS での日本語入力はここ• 全角と半角
– 半角カタカナや全角英文字は避けましょう。
ここから先は難しいので、根性の無い人は、これ以上進んではいけません:
コードの歴史• ASCII(American Standard Code for
Information Interchange) ANSI• ISO 646 = 95 文字のラテン文字• アルファベット+数字+特殊文字• 制御コード: LF, CR などの表示制御と
ACK,DEL などの通信制御 、など• JISX0201 では ASCII の特殊文字の一部が
異なる(¥の使用など)
日本語コードの話
• 1 バイトでは最大256文字• 字種の多い言語では多バイトコード• 1 バイトコードで事足りる欧米言語と多バ
イトコードが必要なアジアの言語とのバトルグランド
• 文字コードのような基本的情報インフラの標準化は社会への影響莫大
ISO2022
• エスケープシーケンスにより文字を拡張するための各種のメカニズム
• 各国の ISO646 (アメリカならASCII 、日本なら JIS X 0201 ) を別個の文字集合として指定し切り替えて使える。
• ちなみに西ヨーロッパの文字では、 ISO8859/1
ISO2022 エスケープシーケンス
変化先の文字コード エスケープシーケンス
ASCII ESC ( B
JIS X0201 ( ASCII対応部分)
ESC ( J
JIS カタカナ ESC ( I
JIS 0208 ESC $ B
JISコードの歴史
• JISX0208(1978) 当時はJISC6226 カタカナ(いわゆる半角カタカナ)および全角英字はいまや無用の長物ないしは有害
• 半角カタカナと全角英字は 97JIS では使わないことに決めた
• シフトJIS• 78JIS 83JIS 90JIS 97JIS
内部状態を持つ文字コードと持たない文字コード
• 1 バイトコードの ASCII は内部状態なし• 2バイトの内部状態なしコードを目指し
たのがユニコード• エスケープシーケンスのある文字コード
ISO2022 に則るコードは内部状態を持つ。• 内部状態を持つと何がまずいのか?
JIS コードにおける漢字
• 78JIS の第1水準 2965文字=都道府県 名、市町村名を全て記述できる。 第2水準 3384文字
• JISX 0212 の補助漢字 5801文字
日本語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 補助漢字
• 上位ビットを見るだけで字種を判別できる
シフト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
JIS 漢字JIS 漢字
00
21
5E
5F
7E
81
9F
E0
EF
第 2 バイト
00 21 40 7E 80
第1
バイト
JIS カタカナ JIS X0201
シフトJISの漢字領域のシフト
漢字の形
• 「包摂」 とは 異なる字形を同一視の基準のこと。 例えば、「高」や「富」や「国」のふたつの字形など
• そもそも字形のぶれをきちんと定義できるのか?
• 計算機技術によって解決できる種類の問題?
文字と文字コードと字形の関係
文字
文字コード
字形字形のゆれ 包摂基準で規定文字と字形の
関係は複雑怪奇「島」「嶋」
目的に応じて決める
情報検索という目的だとどうなるか
• 人名を検索したいなら「嶋」と「島」は別の文字コードにしておくべき
• A と a が同じ文字コードでは困ることもあるので別のコードに
• 字形が増えると文字コードが増える。検索ではいくつかの文字コードを同一視するようなプログラムを書く
用字系と使用言語の関係
• 「どの言語で書かれたテキストか」と「どの用字系が使われているか」を区別することも多言語処理では重要
• 同じ字と思しき字でも使われる用字系が違うと異なるコードが割り振られるべき。
• ユニコードのCJK(日中韓統一漢字コード)は、3ヶ国語の漢字を字形が似ているという理由で同じコードに割り当てている。
左右 縦横
• 文を 右から左に書くか、 左から右に書くか
• 文を縦書きするか、横書きするか• このような問題は文字コードの問題か、
言語の問題か、用字系の問題か 平文( plain text ) vs 構造化文書
Plain Text vs 構造化文書
• Plain text は単なる文字コードの連なり。表示や論理的構造を持たない。
• ネットワークエチケットのひとつにメールは Plain text で書くということがある。
• 構造化文書はタグによって、文書の論理構造や表示の指示、あるいは使用言語などまで指定したもの。 LaTex , SGML 、XML 、 HTML など
自動文字コード認識• ISO2022 のエスケープシーケンスを探す• JIS 、 SJIS 、 EUC などを仮定して復元。
日本語らしい言語統計になるのが正しい文字コード
• 言語統計とは?• 文字の頻度統計、 N-gram統計、単語の頻度
文字コード変換ツール( UNIX)
• nkf - 変換先コード ファイル名• 変換先コードは j 、 s 、 e 、 m
便利な情報リソース• 情報通信辞典:http://www.e-words.ne.jp/
使用言語の推定• あるテキストの文字コードが分かると次
はそのテキストが記述されている言語を推定
• 使用言語推定– 言語特有の文字コード、文字列パタン、– 言語固有の文字出現頻度、– 言語固有の文字列 (n-gram)出現頻度– などによって判断