コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
検索
検索
表示
アカウント作成
ログイン
個人用ツール
アカウント作成
ログイン
Hah圧縮のソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
←
Hah圧縮
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
ページの編集を始める前にメールアドレスの確認をする必要があります。
個人設定
でメールアドレスを設定し、確認を行ってください。
このページのソースの閲覧やコピーができます。
== 概要 == '''hah圧縮''' (hah compress) とは、長大語を短縮するために考案された圧縮法である。名前の由来は、情報科学で使われる「ハッシュ(hash)関数」の「ハッシュ」をhah圧縮法で圧縮した結果である。応用の範囲が広いため、工学的な手法を好む者が改良案や発展的な方法を提案しているため、時々話題に挙がる。 オリジナルの手法については [http://pontama314.tumblr.com/post/118266419227/%E9%9D%9E%E5%8F%AF%E9%80%86%E5%9C%A7%E7%B8%AE%E3%81%AB%E3%82%88%E3%82%8B%E9%95%B7%E5%A4%A7%E8%AA%9E%E3%81%AE%E5%9C%A7%E7%B8%AE%E6%96%B9%E6%B3%95%E3%81%AE%E5%8F%AF%E8%83%BD%E6%80%A7 ponta氏による投稿] を参照のこと。 == 種類 == オリジナルの手法に加え、それを拡張した様々な手法が考案されている。 === オリジナルの手法 === # 圧縮したい文字列を ''N'' (≧3) 文字ごとに区切る。 # 区切った部分文字列それぞれに対し、最初と最後の文字のみを取り出し、それ以外の文字は削除する。 # 取り出した文字を繋ぎ合わせる。 # 完成した文字列が言語の音韻構造に合わない場合は、手順 2 において削除した文字列内の母音字や子音字を適宜補う。 '''例1:''' * jugemujugemugokounosurikire (寿限無寿限無 五劫の擦り切れ) を圧縮する。 区切りの長さは ''N''=4 とする。 # juge / muju / gemu / goko / unos / urik / ire # je / mu / gu / go / us / uk / ie # jemugugousukie # (上記の文字列は日本語として発音可能なのでこの手順を行う必要はない) '''例2:''' * ryuuguunootohimenomotoyuinokirihazusi を圧縮する。 区切りの長さは同様に ''N''=4 とする。 # ryuu / guun / ooto / hime / nomo / toyu / inok / irih / azus / i # ru / gn / oo / he / no / tu / ik / ih / as / i # rugnoohenotuikihasi # gn の部分が日本語で発音不可能なので、この部分に相当する圧縮前の guun から u を補い rugunoo~ とする。 === ランダム hah 圧縮 === # 圧縮したい文字列をランダムに並び替える。 # 以下、並び替えた文字列に対してオリジナルの手法を施す。 === ソート型 hah 圧縮 === # 圧縮したい文字列のそれぞれ文字に対して、その位置を表す数を与えてペアにする。 # 文字に関して何らかの順序 (辞書順など) でソートを行う。 # ソートした文字列にオリジナルの手法を施す (音節構造に合わせて文字を補うことはしない)。 # 手順 1 で各文字に与えた数に関してソートを行う。 # 完成した文字列が言語の音韻構造に合わない場合は、適宜文字を補う。 '''例:''' * gokounosurikire を圧縮する。 文字のソートはラテン文字順とし、区切りの長さは ''N''=4 とする。 # g0 o1 k2 o3 u4 n5 o6 s7 u8 r9 i10 k11 r12 e13 # e13 g0 i10 k2 k11 n5 o1 o3 o6 r9 r12 s7 u4 u8 # ↓ ## e13 g0 i10 k2 / k11 n5 o1 o3 / o6 r9 r12 s7 / u4 u8 ## e13 k2 / k11 o3 / o6 s7 / u4 u8 ## e13 k2 k11 o3 o6 s7 u4 u8 # k2 o3 u4 o6 s7 u8 k11 e13 → kouosuke # (上記の文字列は日本語として発音可能なのでこの手順を行う必要はない) === 母子音字別hah圧縮 === # 圧縮したい文字列のそれぞれの文字に対して、その位置を表す数を与えてペアにする。 # 文字に関して言語での母音字と子音字に分けてリストにする。 # それぞれのリストに対してオリジナルの手法を施す。 # 母音字と子音字とを連結し一つのリストにする。 # 最初に各文字に与えた数に関してソートを行う。 # 完成した文字列が言語の音韻構造に合わない場合は、適宜文字を補う。 '''例:''' * jugemujugemugokounosurikire を圧縮する。文字が母音字か子音字かはヘボン式に準じるとし、区切りの長さはN=4とする。 # j0 u1 g2 e3 m4 u5 j6 u7 g8 e9 m10 u11 g12 o13 k14 o15 u16 n17 o18 s19 u20 r21 i22 k23 i24 r25 e26 # [u1 e3 u5 u7 e9 u11 o13 o15 u16 o18 u20 i22 i24 e26], [j0 g2 m4 j6 g8 m10 g12 k14 n17 s19 r21 k23 r25] # ## [u1 e3 u5 u7 / e9 u11 o13 o15 / u16 o18 u20 i22 / i24 e26], [j0 g2 m4 j6 / g8 m10 g12 k14 / n17 s19 r21 k23 / r25] ## [u1 u7 / e9 o15 / u16 i22 / i24 e26], [j0 j6 / g8 k14 / n17 k23 / r25] ## [u1 u7 e9 o15 u16 i22 i24 e26], [j0 j6 g8 k14 n17 k23 r25] # u1 u7 e9 o15 u16 i22 i24 e26 j0 j6 g8 k14 n17 k23 r25 # j0 u1 j6 u7 g8 e9 k14 o15 u16 n17 i22 k23 i24 r25 e26 → jujugekounikire # (日本語として発音可能なのでこの手順を行う必要はない。) == 参考 == [[ハッシュ値]]
Hah圧縮
に戻る。