2

タグベースの Web サイトは、類義語や同音異義語などの言語のデリケートさに悩まされることがよくあります。情報を探しているプログラマーにとっては、スタック オーバーフローなどで、具体的な例を次に示します。

  • Subversion または SVN (または svn、大文字と小文字を区別するタグ付き)
  • .NET またはモノ
  • 【追加します】

問題は、言語の繊細さを維持し、機械に可能な限り適切に対処させたいということです。

del.icio.us のようなサイトでは、タグ ベースが大幅に増加しているため、使用や検索が妨げられている可能性があります。SVN 関連のエントリを検索すると、subversion タグと svn タグの両方を持つエントリの大部分がリストされる可能性がありますが、次の 3 つの問題が考えられます。

  1. 多くのエントリには両方のタグ (「同義語」) がない可能性があるため、検索は不完全です。
  2. Q/A はより多くの Q につながることが多いため、検索はあまり役に立ちません。特に、特定のトピックの初心者向けです。
  3. 質問にタグを付ける (注: または個別の回答、便利に思えます) ことは哲学的になります: 「正しい方法でタグを付けましたか?」

これらの問題に対処する 1 つの方法は、タグ間にセマンティック リンクを作成することです。これにより、subversion と SVN は、貧弱なユーザーではなく、システムによって自動的にバインドされます。

良い/実現可能/魅力的/有用なアプローチですか? 効率よく実装するには?

4

7 に答える 7

3

同義語と意味的なつながりを認識することは、人間が得意とすることです。SO が特徴としているような制限のない分類法を整理するための解決策は、マッチングを人間に任せる方法を見つけることによっておそらくうまくいくでしょう。

1 つの一般的なアプローチ: 誰か (または一部のチーム)が新しいタグを毎日レビューします。シノニム グループに新しいシノニムが追加されます。検索は類義語グループにヒットします (または、より微妙な違いがある場合は、ユーザーの好みに応じて、文字通りの一致または類義語グループの一致にヒットします)。

これには、バックエンドでの同義語グループのサポートが必要です (開発チームでの作業)。タグ ラングラーまたは 10 が必要です (プリンシパルまたは信頼できるユーザーに対して機能します)。ただし、一定のスケーリングは必要ありません。すべてのタグ プールの成長率は (オープン ベータ版の最初の Here Comes Everyone バンプの後)、時間の経過とともに低下する可能性があります。 .

同義語は、重要な問題として私を襲います。階層マッピングは野心的でより複雑な問題です。価値があるかもしれないし、そうでないかもしれませんが、階層を定義することの相対的な複雑さを考えると、潜在的なシノニム プロジェクトのフェーズ 1 のフェーズ 2 として残しておく方がよいでしょう。

于 2008-09-18T00:20:55.587 に答える
1

blogspot.com のソフトウェアのセットアップ方法は、タグの名前を書き込むボックスに ajax-autocomplete-thingie があることです。これにより、以前のすべての投稿で、同じ文字で始まるタグが検索されます。少なくともそのようにして、さまざまな大文字小文字とスペルをキャッチします (ただし、同義語はキャッチしません)。

于 2008-08-21T23:27:14.410 に答える
1

同意します。現在持っているタグの量。他のタグ付きサイトには参加していません。ただし、 などの代わりに、タグの階層があると非常に役立ちます...

于 2008-08-21T23:30:28.693 に答える
1

システムはどのタグを意味的にリンクするかをどのように知るのでしょうか? 増え続けるタグのマップを保持しますか? 私はそれが働いているのを見ることができません。誰かが代わりに sbversion と入力したらどうなるでしょうか? それはどのようにリンクされますか?

タグを送信するときにユーザーに尋ねることはうまくいくと思います。たとえば、「次のタグを入力しました: sbversion、pascal、およびバインディング。「Subversion」、「Pascal」、および「Bindings」のことですか?

明らかに、システムはそれが機能するためにかなりスマートなマッチングシステムを備えている必要があります. このようにすると、ユーザーにとって余分な入力になります (おそらくユーザーを苛立たせるでしょう) が、人間による入力は、正しく行われれば、タグの重複が少なくなります。

実際、システムはユーザーの入力結果を自動タグ マッチングのベースとして使用できます。前の例から、誰かが「sbversion」のタグを作成し、プロンプトが表示されたらそれを「Subversion」に変更します。システムはそれを学習し、次回は自動的に変更します。

于 2008-08-21T23:35:12.317 に答える
1

あなたが見ている問題の一部は、英語には同義語が蔓延していることです-ビルド管理、サブバージョン、cvs、ソース管理は異なりますか?

多分そうでないかもしれません。[現在] SO で使用されているような、おそらく意図したタグを表示するシステムがあると、非常に役立ちます。しかし、それは人々がタグ付けプロセスをいじめるのを止めるものではありません.

ユーザーの介入なしに「新しい」タグの受け入れを拒否することはできますか? 'sbversion' を入力する前に、強制的にスペル チェックを行いますか?

これは間違いなく興味深い問題です。昨年のブログで、これと同様の未解決の質問をしました。いくつかの回答は非常に洞察に満ちていました。

于 2008-11-13T14:15:55.197 に答える
0

タグは基本的に、検索アルゴリズムが不十分であることを認めるものです。「Subversion」とタグ付けされたものに「svn」とタグ付けされたものと類似したコンテンツがあることを識別するのに十分なほどコンピューターを賢くすることができれば、おそらくコンテンツを解析できるので、タグを完全にスキップして、検索用語を直接コンテンツ (つまり、基本的にキーワードを結果にマッピングする自動タグ付け)?!

于 2008-08-22T00:23:41.653 に答える
0

問題は、「subversion」と「svn」が同じ「もの」を意味するという点で非常に似ているという事実を検索エンジンに使用させることです。

頻度に基づいてタグ間の単純な類似性を計算することは魅力的かもしれません: 「subversion」と「svn」は非常に頻繁に一緒に表示されるため、「svn」を要求すると SVN 関連の質問が返されますが、「subversion」とタグ付けされたまれな質問のみが返されます (およびその逆)。ただし、'java' と 'c#' も一緒に表示されることがよくありますが、その理由は大きく異なります (同義語ではありません)。したがって、頻度に基づく類似性は出ていません。

この問題に対する答えは、この Q/A スレッドで提案されているように、メカニズムの組み合わせである可能性があります。

  • ユーザーがタグを入力するときにタグを提案することで、タイプミスを除外します。
  • ユーザーが生成した同義語のマップを維持します。このマップは、類義語のみを対象とする場合、それほど大きくない可能性があります。
  • ユーザーが検索ボックスに 'subversion svn' または 'subversion && svn' (まあ、プログラマーからプログラマーまで) を入れて両方を取得できるように、マルチタグ検索を許可します。多くのユーザーが、どの用語が最も意味のあるものかわからない場合に、実際にそのようなアプローチを試みる可能性があるため、これは非常に実用的です。

@ニック:同意しました。この質問は、タグに反対することを意図したものではありません。タグには大きな可能性がありますが、タグを「またがって」検索できない場合、ユーザーは増大する問題に直面することになります。

@Steve: タグの増え続けるマップを維持することは、間違いなく実用的ではありません。SO はますます増え続けるタグのバッグを蓄積しているので、Q/A タグの検索を便利な方法でさらに便利にするために、このバッグに光を当てるにはどうすればよいでしょうか?

@Espo: 既存のタグに基づく「Ajax を利用した」タグの提案は、質問を作成するときに SO で利用できるようです。ちなみに、これはタグと適切なスペルを選択するのに非常に役立ちます (Steve からの「subversion」対「sbversion」の問題を回避します)。

于 2008-08-22T16:46:04.647 に答える