5

なに?:ウィキペディアのページのページ間のリンク マップ (マトリックス) を次の形式で
取得しようとしています。page_id

from1 to1 to2 to3 ...
from2 to1 to2 to3 ...
...

なぜ ?:
PageRank を試すためのデータ セット (ウィキペディアのページ) を探しています。

問題: dumps.wikimedia.org
では、次のような形式の XML であるpages-articles.xmlをダウンロードできます。

<page>
  <title>...</title>
  <id>...</id>          // pageid
  <text>...</text>
</page>

記事の取得に使用します ( )。次に、ページに関する詳細を含む基本textページ データ ( page.sqlpage_id )と、最後に私に関連すると思われるデータは、ページ間のリンク レコードを含むpagelinks.sqlです。 . 問題は、pagelinksテーブルに次のフィールドがあることです: pl_frompl_namespaceおよびpl_title

アイデア:一時データベース、インポートpage、およびテーブルを作成し、テーブルを使用してs に従って sを取得する pagelinksことにより、このマトリックスを作成します。考えられる解決策:pagelinkspage_idpl_title

SELECT pl_from, GROUP_CONCAT(page_id SEPARATOR ' ') FROM pagelinks
    JOIN page ON 
        pl_title = page_title AND pl_namespace = page_namespace
GROUP BY pl_from

または「バックリンク」のマップを取得する場合 (to1 from1 from2 from3 ...ではなくfrom1 to1 to2 to3 ...):

SELECT page_id, GROUP_CONCAT(pl_from SEPARATOR ' ') FROM pagelinks
    JOIN page ON 
        pl_title = page_title AND pl_namespace = page_namespace
GROUP BY page_id

質問:自分で作成する必要がないように
、この種のページ間リンクのマトリックスを取得する場所はありますか? page_idまたは、そうでない場合、私が指摘した解決策よりもこの種のマトリックスを取得する方法はありますか?

4

2 に答える 2

1

両方のテーブルをデータベースにインポートし、それを使用するのがおそらくこれを行う最も簡単な方法だと思います (その必要はありませんpages-articles.xml)。

別のオプションは、2 つの sql ファイルをデータベースにインポートせずに手動で解析することです。私は実際に .Net で正確にそれを行うライブラリを作成しました。

于 2012-10-01T11:11:41.753 に答える
0

さて、XML ファイルを解析するには、次のリンクを試すことができると思います。

http://haselgrove.id.au/wikipedia.htm

アプローチに加えて、ダンプを消去できるいくつかの事前作成された .m(MATLAB,OCTAVE) ファイルがあります。また、.txt ファイルに前処理のダンプがあります。とはいえ、かなり古いです。2009年かそこら。

于 2014-10-25T14:07:50.470 に答える