require 'chise' include CHISE p "字" #"字" p "字".ucs #23383 p "字".total_strokes #6 p "字".inspect_all #いろいろでてくる。 p "字".ideograph_daikanwa #6942 #大漢和番号6942である。
このように実行することができる。 つまり文字そのものが自分の持つ属性を知っていて、そこにメソッドとしてアクセスできる。
p "字字".ucs #エラー
Character classのオブジェクトを生成し、それを直接用いることもできる。
char = "字".char #Character classのインスタンスを生成。 char = Character.get("字") #上記とまったく同じ。
flyweightパターンを用いている。同じ字の場合は同じインスタンスとなる。
Characterは文字データベースに問い合わせを行い、属性の値を取得する。
p "字". to_er #"字" #実体参照化する p "字".de_er #"字" #実体参照を解除 p "&J90-3B7A;".de_er #JISX0208-1990による実体参照を解除 p "&M-06942;".de_er #大漢和番号による実体参照を解除
このように、様々なCCSにおける実体参照を解除することができる。
他に、to_er, de_erなど、Characterと共通の要素を各文字毎に摘要するというメソッドもいくつか用意されている。
"木".mydepth = 1 "林".mydepth = 2 "森".mydepth = 3
実行すると自動的にデータベースに保存されるため、
プログラム終了後も属性は保存される。
p "木".mydepth p "林".mydepth p "森".mydepth
このようにして、自分独自の必要な属性を作り、
その属性に基づいたプログラムを書くことができる。
IDSによる字形分解・合成ができる。
p "字".decompose #"⿱ 宀子" #分解する p "⿱ 宀子".compose #"字" #合成する p "鬱".decompose #"木缶木冖鬯彡" #難しい字もOK p "鬱".decompose_all #再帰的に分解する。 p "木缶".find #この二つの部品を含む漢字をリストアップ
字形構造は内部的にはできるだけ集約した形で持っている。
漢字の字形内部の構造をデータとして扱うことができる。
JISX0208集合(6355字)において:
|
|
|
---|
このようにして、字形構造分析を効率的に行うための基盤が構築された。
この基盤を元に、より詳細な字形構造分析を予定である。
CES関連は不足している。
ドキュメントが不足している。