20

これは、一般的なタグ付けアイテムに適用される実際の問題です (はい、これは StackOverflow にも適用されます。いいえ、StackOverflow に関する問題ではありません)。

タグ付けの問題全体は、アイテムが何であれ (ジョーク、ブログ投稿、質問など)、類似のアイテムをクラスター化するのに役立ちます。ただし、(通常ではありますが厳密ではありませんが) タグの階層が存在します。つまり、一部のタグは他のタグも暗示します。おなじみの例を使用すると、「c#」so タグは「.net」も意味します。別の例として、ジョーク データベースでは、"blondes" タグは、"irish"、"belge"、"canadian" などと同様に、ジョークの出身国に応じて "derisive" タグを意味します。

プロジェクトでこれをどのように処理しましたか? 2つの別々のケースで使用した2つの異なる方法(実際には同じメカニズムですが、2つの異なる環境で実装されています)について説明する回答を提供しますが、同様のメカニズムだけでなく、階層の問題に関するあなたの意見にも興味があります.

4

3 に答える 3

7

これは難しい質問です。両極端は、オントロジー (すべてが階層的) とフォークソノミー (タグに階層がない) です。私はWikiAnswers でこれに答えました.Clay Shirkyの「オントロジーは過大評価されています」という記事を参照して、階層を設定してはいけないと主張しています。

于 2008-09-23T12:43:37.933 に答える
4

実際には、それは階層的なシステムではなく、タグの意味の間に感じられる距離を持つセマンティック・ネットであると言えます。つまり、数学はガーデニングよりも実験物理学に近いということです。

このようなネットを構築する可能性: タグのペアを構築し、認識された距離を人々に判断させます ([同義語、類似、...、反意語] などを意味する 1-10 のような尺度を使用)。特定の距離内にあるすべてのタグを検索します。

反対方向 ([a,b] close -> [b,a,] close) から来る場合、メジャーは等距離でなければなりませんか? それとも、近接は [a,b] が近く、[b,c] が近い -> [a,b] が近いことを意味しますか?

おそらく、最初の単語はデフォルトで別のセマンティックフィールドをトリガーしますか? 「社会人」から始めれば「アナリスト」が近い。「プログラマー」から始めれば「アナリスト」も近い。しかし、これらのポイントのいずれから始めても、おそらく他の人を近いとは見なさないでしょう (「社会労働者」は決して「プログラマー」に近いわけではありません)。

したがって、ペアのみが判定され、両方向で判定されます (ランダムな順序で)。

[TagRelations]
tagId integer
closeTagId integer
proximity integer

類似タグの選択例:

select closeTagId from TagRelations where tagId = :tagID and proximity < 3
于 2008-09-23T12:52:33.077 に答える
2

私が実装したメカニズムは、指定されたタグ自体を使用するのではなく、タグを多くの暗黙のタグにリンクする間接的なルックアップ テーブル (厳密には DBMS 用語ではありません) を使用することでした (明らかに、これが機能するためにタグはそれ自体にリンクされています)。

Python プロジェクトでは、ルックアップ テーブルは、タグの値セット (タグはプレーンな文字列) を持つ、タグをキーとする辞書です。

データベース プロジェクト (どの RDBMS エンジンかは問わない) には、次のテーブルがありました。

[Tags]
tagID integer primary key
tagName text

[TagRelations]
tagID integer # first part of two-field key
tagID_parent integer # second part of key
trlValue float

ここで、trlValue は (0, 1] スペース内の値であり、リンクされた各タグに重力を与えるために使用されます。自己対自己タグの関係は、trlValue で常に 1.0 を保持しますが、残りはアルゴリズムで計算されます (そうではありません)。私が与えたジョーク データベースの例を考えてみてください; ['blonde', 'derisive', 0.5] レコードは ['pondian', 'derisive', 0.5] に相関し、別のものを与えられたすべての嘲笑的なジョークを示唆します。

于 2008-09-23T12:34:31.480 に答える