0

私はHTMLテーブルの非常に大きなデータセットを持っています(元々ウィキペディアから抽出されました)。これらの各テーブルから意味のあるtripleSetを抽出したいと思います(これは、比較的簡単なタスクであるwikipediaインフォボックスからのトリプルの抽出と競合しないようにする必要があります)。

トリプルは、URIやその他の形式に抽出されるDBpediaとは異なり、人間にとって意味的に意味のあるものでなければなりません。だから私はテーブルのテキスト値を抽出するだけで大​​丈夫です。

テーブルの向きや形の多様性に注意してください。私が見る主なタスクは、テーブルレコードのメインエンティティ(たとえば、学校のレコードの学生名)を抽出して、トリプルの「サブジェクト」として使用できるようにすることです。

ここに画像の説明を入力してください

このようなテーブルの場合、メインエンティティは「サーバー」であり、他のエンティティはオブジェクトのみであるため、リレーションは次のようになります。

<AOLserver> <Developed by> <NaviSoft>.
<AOLserver> <Open Source> <Yes>.
<AOLserver> <Software license> <Mozilla>.
<AOLserver> <Last stable version> <4.5.1>.
<AOLserver> <Release date> <2009-02-02>.

また、メインエンティティがテーブルの最初の列にあるとは限らないことに注意してください。同じ主題について話しているわけではないテーブルもあります。

これは、メインエンティティが最初ではなく最後の列であるテーブルです。

ここに画像の説明を入力してください

このテーブルは、次のような関係を生成する必要があります。

<Arsène Wenger> <Position> <Manager>.
<Steve Bould> <Position> <Assistant manager>

質問

私の最初の質問は、これをルールベースのメソッドを使用して実行し、例に基づいていくつかのルールを作成し、適切なエンティティを検出できるように一般化することを試みることができるかどうかです。ルールの例を提案できますか?

2番目の質問は評価についてですが、どうすればそのようなシステムを評価できますか?パフォーマンスを向上させるために、どのようにパフォーマンスを測定できますか?

4

2 に答える 2

1

素晴らしいプロジェクト!! それが機能するようになったら、defはそれをdbpediasのクローラー/エクストラクター(http://wiki.dbpedia.org/Documentation )に組み込んでみてください。

参考のために-http://en.wikipedia.org/wiki/Comparison_of_web_server_software

HTMLを見ると、列のタイトルはthead要素にあり、行はすべてtbody要素内のtr要素に含まれており、エンティティのタイトル(/ rdfs:label)はth要素に含まれています。汚くなりすぎず、不正確にならずに問題を解決するための長い道のり。

このアプローチを評価するには、html構造をチェックして、要素を含む行がいくつあるかを確認する価値があると思います。

2番目の例(http://en.wikipedia.org/wiki/Arsenal_F.C。)では、thead要素のヘルプがないという事実があります。-ページ自体を想定できるようにします。アーセナルは表のデータの主題です。

ウィキペディアについてのvcardscatterのようなマイクロフォーマットもあり、関係を半減させる可能性があります

ウィキペディアのすべての表でどれほど一般化できるかはわかりませんが、良いスタートになるはずです。トリッキーすぎることよりも、HTML構造とマイクロフォーマットにできるだけ固執する方がはるかに優れていると思います。

また、各リンクには、それを識別するためのdbpedia uriがあります。これは、このような状況で非常に役立ちます。例えば。http://example.com/resource/AOLserverhttp://example.com/property/Serverhttp://dbpedia.org/resource/AOLserver_ _ http://example.com/resource/AOLserverhttp://example.com/property/Developed_byhttp://dbpedia.org/resource/NaviSoft_ _ http://example.com/property/Developed_by a rdf:Property。http://example.com/property/Developed_by rdfs:label "Developed by" @en

見たことがありますか-http : //wifo5-03.informatik.uni-mannheim.de/bizer/silk/-マッピングを生成する価値があるかもしれません

于 2013-02-11T22:37:07.253 に答える
1

それで、ようやくプロジェクトの目標を達成することができました。多くの作業とテストが必要でしたが、達成されました。

アイデアは主に次のようなパイプラインにありました。

1-テーブルを抽出してメモリ内オブジェクトにインポートするコンポーネント

2-不良テーブルを除外するコンポーネント。これらはテーブルタグで使用されるものですが、実際にはテーブルではありません(ページの作成者がデータの外観を整理したい場合があるため、テーブルに配置します)

3-テーブルのスタイルを削除し、スパンの数だけデータを繰り返すことによって列/行のスパンを解決するコンポーネント

4-テーブルの方向(水平/垂直)とそのテーブルのヘッダー行/列を分類するための機械学習ベースの分類子。

5-関係トリプル<サブジェクト><述語><オブジェクト>の「サブジェクト」である必要がある行/列を分類するための機械学習ベースの分類子

最初の分類器は、文字数、テーブル/行セル数の比率、テキストに対する数値の比率、大文字と小文字の区別などの機能を備えたサポートベクターマシン分類器です。適合率と再現率の両方で約80〜85%を達成しました

2番目の分類子は、1つの行/列内のセルの関連性により関連する機能を取得するランダムフォレスト分類子です。適合率と再現率の両方で約85%を達成しました。

出力をより明確にし、テーブルのコンテキストに関連させるために、他のいくつかの改良コンポーネントとヒューリスティックがプロセスに関与していました

一般に、ツールをWeb上のHTMLテーブルに対してより一般的にするために、ウィキペディアから使用される追加のデータはありませんでした。しかし、分類器のトレーニングデータは主にウィキペディアのコンテンツに偏っていました。

質問コードが完成したら、ソースコードで更新します。

于 2013-02-12T09:56:55.633 に答える