基本編の用語説明 その2 エディタと日本語入力
エディタ エディタ (editor) :文書を作成、編集する アプリケーションソフトウェア 教育用計算機システムのエディタは、 テキストエディット テキストエディット 基本的な編集方法はここここ カーソル:文字が入力される位置を表している目印 カッペ、コピペ カッペ、コピペ 検索と置換 検索と置換 編集結果の保存 編集結果の保存 文系のみなさんには興味はないだろうが emacs というエディ タもある emacs
さて、いよいよ日本語入力だが。。。 文字コード: コンピュータの内部 対応 画面やキーボードで見える文字 ( 2 進数で表現) 文字コード (人間に読める:フォント) フォント:画面にみえる字の形 Unicode: 世界の主な文字を文字集合として 16 ビットの 文字コード詳しくはここここ アスキーコード: 7 ビットで英数字を表す文字コード ビット: 2 進数 1 桁のこと。計算機で情報を表す最小単位 漢字コード:漢字は 8 ビットでは表現できないので、 16 ビット以上使うコードになる 漢字コード ShiftJIS(SJIS), EUC, JIS などが混在。 ShiftJIS(SJISEUCJIS これらのコードが混在した状態でいったいどうやって文字コード を認識するのだろうか?
ISO 646 (ASCII) 文字セット ABCDEF 2!“ #$ %&‘()*+,./ :;<=>? 4 @ ABCDEFGHIJKLMNO 5PQRSTUVWXYZ[\]^_ 6`abcdefghijklmno 7pqrstuvwxyz{|}~
JIS 漢字 sjis E 5F 7E 81 9F E0 EF 第 2 バイト E 80 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 エスケープシーケン ス 変化先の文字コードエスケープシーケンス ASCIIESC ( B JIS X0201 ( ASCII 対 応部分) ESC ( J JIS カタカナ ESC ( I JIS 0208ESC $ 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 漢字 E 5F 7E 81 9F E0 EF 第 2 バイト E 80 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
便利な情報リソース 情報通信辞典: 情報通信辞典:
使用言語の推定 あるテキストの文字コードが分かると次 はそのテキストが記述されている言語を 推定 使用言語推定 – 言語特有の文字コード、文字列パタン、 – 言語固有の文字出現頻度、 – 言語固有の文字列 (n-gram) 出現頻度 – などによって判断