そこで、表内のデータを認識して、表頭とデータ部分の切り分けを自動的に行う ことができるシステムがあると、様々な応用が考えられます。
本研究ではセル間の類似度をベクトル空間法によって計算し、 類似度の比を用いて、行と列の項目名と項目データを計算し区別します。 まず、表の正規化 (第一正規形) を行い、 表の各セルデータに対して言語的性質を適用したベクトルのマトリク スを作成します。 次に行方向の切れ目を認識するために、 各セルの列方向の類似度をベクトル空間法によって算出します。 算出したセルの類似度に対して行ごとの平均値を求め、 行の類似度が低くなる部分には、行間に内容的な切れ目があると認識します。 行と列を入れ換えて類似度を計算すれば、 列間の切れ目を認識することができます。 評価実験では80%程度の認識率が得られました。
詳細については参考文献をご覧ください。
増田英孝, 塚本修一, 安富大輔, 中川裕志: HTMLの表形式データの構造認識と携帯端末表示への応用, 情報処理学会論文誌: データベース, Vol.44, No. SIG 12 (TOD 19), pp.23-32 (2003年9月).
本システムでは、HTMLの表を表ではない別の形式に変換します。 特に、 携帯端末上に表を表示する際の問題として、 項目名と項目データが乖離してしまう、 表示に充分は幅がとれないために改行が増えてしまうことがあります。 そこで、 携帯端末上で理解しやすい形に表示するための変換の方針としては、 常に項目名と項目データをペアで表示することにしました。 これには、システムが認識した項目名(表頭)と項目データを利用します。 変換の例は 変換前の表 と 変換後 にリンクを貼ってあります。 これらのファイルを携帯端末で表示した例を以下に示します。
変換前 | 変換後 | ||
---|---|---|---|
スクロール前 | スクロール後 | スクロール前 | スクロール後 |
![]() |
![]() |
![]() |
![]() |
本システムに関連した卒業研究として主に以下のような論文があります。
著者 | 論文題名 | 卒業年 |
---|---|---|
小西 陽子 | 複数Webページからの表情報の抽出と統合 | 2007 |
臼田 雄一 | HTML表形式データの構造解析の精度向上 | 2005 |
福原 健介 |
tableconverter年月日.tar.gz をダウンロードして展開します。 TableConvert.java がある tableconverter ディレクトリに移動します。
臼田雄一, 福原健介: HTML表形式データの構造解析の精度向上, 2004年度 東京電機大学 コミュニケーションデザイン研究室 卒業研究論文 (2005).により、
. |-- TableConvert.java (起動用メイン) |-- buddha | |-- Path | | |-- GetPath.java | | `-- Stdin.java | |-- controller | | `-- ConvertController.java (旧: サーブレットとして提供していた名残) | |-- main | | `-- SourceConverter.java | |-- source | | |-- source.html (変換前のHTMLファイル) | | `-- sourceConvert.html (変換後のHTMLファイル) | |-- tableAnalyzer | | |-- AttributeNumberChecker.java | | |-- SemanticAttributeAnalyzer.java | | |-- StructualAttributeAnalyzer.java | | |-- TableDistinct.java (臼田、福原改良済) | | `-- originalTableDistinct.java (オリジナル動作に戻す場合) | |-- tableConverter | | |-- EmphasisTableConverter.java | | |-- LayoutTableTypeConverter.java | | |-- ListTypeConverter.java | | |-- ReverseListTypeConverter.java | | |-- ScheduleTableTypeConverter.java | | `-- TableConverter.java | |-- util | | |-- ArrayChain.java | | |-- HtmlGetter.java | | |-- HtmlStyle.java | | |-- RemoveTag.java | | |-- TableArray.java | | |-- TableDataWriter.java | | |-- TablePerl.java (臼田、福原改良済) | | `-- originalTableArray.java (オリジナル動作に戻す場合) | `-- vectorspace | |-- CellVector.java | |-- Data.java | |-- Fileio.java | |-- StructureTableArray.java | |-- VectorCosine.java | |-- cell.data (作業用ファイル) | |-- cellvector.data (作業用ファイル) | |-- kutouten.data (句読点の定義ファイル) | |-- renzoku.data (連続データの定義ファイル) | |-- settouji.data (接頭辞の定義ファイル) | |-- setubiji.data (接尾辞の定義ファイル) | |-- tani.data (単位の定義ファイル) | |-- tokushu.data (特殊文字の定義ファイル) | `-- weight.data (各ベクトルの重み定義ファイル) |-- readme-j.txt `-- usage.txt./buddha/vectorspace/ 以下の *.data ファイルを調整することで精度の向上が期待できます。