SuikaWiki4

SuikaWiki4

[1] SuikaWiki4 は、 SuikaWiki の4つ目のメジャー・バージョンでした。

本項は歴史的事項を説明しています。本項の内容の一部または全部は、現在の状況とは異なるかもしれません。

(なお本項の内容の一部または全部は、互換性または歴史的連続性のために現在も有効な場合もあります。しかし新たに利用することは避けるべきです。)

目次

  1. シェリング
    1. /i/$id;terms → ちゃんと実装したので消した
    2. /i/$id;related-$id2, /i/$id;unrelated-$id2
    3. /g/$nid
    4. /g/id$id
    5. /n/$names;search → 本実装完了
    6. 目標
    7. 表示 (ID ベース)
    8. 表示 (名前ベース) → 実装済み
    9. 新規追加
    10. 文書更新
    11. シェリング更新
    12. 満足判定学習
  2. tfidf データベース → 本実装済み
  3. 転置索引データベース → 本実装済み
  4. メモ

シェリング#

/i/$id;terms → ちゃんと実装したので消した#

文書の tfidf データ & 転置索引データを更新する

要・ID ロック (文書 XML キャッシュデータ作成のため)

要・ID ロック (文書 tfidf データ更新のため)

要・転置索引ロック

ちょっと遅い

/i/$id;related-$id2, /i/$id;unrelated-$id2#

$id と $id2 は関係がある、またはないと学習させる

要・語重みロック (語重みベクトル更新のため)

/g/$nid#

/g/id$id#

要・ID ロック (グラフノード対応情報取得のため)

要・グラフロック (グラフノード追加のため)

/n/$names;search → 本実装完了#

$names を含む文書を表示する

目標#

  • 各 Wiki page (ID ベース) に関連 Wiki page (ID ベース) のリンクを出す
  • 各 Wiki page (名前ベース) に含む Wiki page (名前ベース) のリンクを出す

表示 (ID ベース)#

  • Wiki page ID からノード ID を引く
  • ノード ID から隣接ノード ID を引く
  • 隣接ノード ID から Wiki page ID を引く

表示 (名前ベース) → 実装済み#

  • Wiki page 名から転置索引を開く
  • 転置索引から Wiki page ID を得る

新規追加#

  • Wiki page ID に対応するノード ID を決定する (要・グラフロック)
    • 空きノードがあれば、その ID にする
    • 空きノードがなければ、グラフにノードを追加し、そのうちの1つの ID にする
  • Wiki page 内容から文書 tfidf データを作成する (要・ID ロック) → 実装済み
  • tfidf 転置索引を更新する (要・転置索引ロック) → 実装済み

(最後の2ステップは少し遅い)

文書更新#

  • Wiki page 内容から文書 tfidf データを更新する (要・ID ロック) → 実装済み
  • tfidf 転置索引を更新する (要・転置索引ロック) → 実装済み

(少し遅い)

シェリング更新#

  • ある Wiki page ID について
  • Wiki page ID に対応するノード ID を決定する
    • ノード ID がなければ停止する
  • ノードの満足値を決定する
    • 2ノード間の満足・不満足判定を行い、満足率を求める
  • 満足値が閾値を下回らない場合、停止する
  • ノード移動を行う (要・グラフロック、要・ID ロック)
    • 隣接ノード幅優先探索、最大 20 ノードくらい?、見つからなければ停止する
    • ID・ノード関連付け情報を更新する

満足判定学習#

  • ある 2 Wiki page IDs について、
  • tfidf データを読み込み、学習を行い、
  • 語重みベクトルを更新する (要・語重みロック)

tfidf データベース → 本実装済み#

$db->id_tfidf isa SWE::DB::IDText

CVS: なし

キーは文書 ID、値は SWE::Data::FeatureVector を直列化した文字列。

転置索引データベース → 本実装済み#

$db->name_inverted_index isa SWE::DB::HashedIndex

CVS: なし

キーは語、値は文書 ID と文書の TF・IDF 値のハッシュ。

メモ#

[2] sw sw4 ids 12956 + sw3 14175

  1. 27131