2

基于标签的网站经常遭受语言的微妙之处,例如同义词、同音异义词等。对于寻找信息的程序员来说,比如在 Stack Overflow 上,具体的例子是:

  • Subversion 或 SVN(或 svn,带有区分大小写的标签)
  • .NET 或单声道
  • [将添加更多]

问题是我们确实希望保留我们语言的精致性并使机器尽可能地处理它。

像 del.icio.us 这样的网站看到它的标签库增长了很多,因此可能会阻碍使用或搜索。搜索与 SVN 相关的条目可能会列出大多数带有 subversion 和 svn 标签的条目,但我可以想到三个问题:

  1. 搜索是不完整的,因为许多条目可能没有两个标签(它们是“同义词”)。
  2. 搜索不太有用,因为 Q/A 通常会导致更多 Q!特别是对于给定主题的新手。
  3. 标记一个问题(注意:或单独的答案,听起来很有用)变成了哲学:“我标记了正确的方法吗?”

解决这些问题的一种方法是在标签之间创建语义链接,这样 subversion 和 SVN 会自动被系统绑定,而不是被糟糕的用户绑定。

这是一种听起来不错/可行/有吸引力/有用的方法吗?如何有效实施?

4

7 回答 7

3

Recognizing synonyms and semantic connections is something that humans are good at; a solution to organizing an open-ended taxonomy like what SO is featuring would probably be well served by finding a way to leave the matching to humans.

One general approach: someone (or some team) reviews new tags on a daily basis. New synonyms are added to synonym groups. Searches hit synonym groups (or, more nuanced, hit either literal matches or synonym group matches according to user preference).

This requires support for synonym groups on the back end (work for the dev team). It requires a tag wrangler or ten (work for the principals or for trusted users). It doesn't require constant scaling, though—the rate at which the total tag pool grows will likely (after the initial Here Comes Everybody bump of the open beta) will in all likelihood decrease over time, as any organic lexicon's growth-rate does.

Synonymy strikes me as the go-to issue. Hierarchical mapping is an ambitious and more complicated issue; it may be worth it or it may not be, but given the relative complexity of defining the hierarchy it'd probably be better left as a Phase 2 to any potential synonym project's Phase 1.

于 2008-09-18T00:20:55.587 回答
1

您正在查看的部分问题是英语充斥着同义词 - 以下是不同的:构建管理、颠覆、cvs、源代码控制?

也许,也许不是。拥有一个系统,例如[现在]在 SO 上使用的系统,它会显示您可能想要的标签,这非常有帮助。但这并不能阻止人们通过标记过程来欺负。

也许您可以拒绝接受没有用户交互的“新”标签?在你让'sbversion'进入之前,强制进行拼写检查?

这绝对是一个有趣的问题。去年我在我的博客上问了一个类似的开放性问题。有几个回答很有见地。

于 2008-11-13T14:15:55.197 回答
1

blogspot.com 上的软件设置方式是在您写下标签名称的框中有一个 ajax-autocomplete-thingie。这会搜索您以前的所有帖子以查找以相同字母开头的标签。至少这样你就可以捕捉到不同的大小写和拼写(但不是同义词)。

于 2008-08-21T23:27:14.410 回答
1

我完全同意。当前拥有的标签的质量。我不参与其他基于标记的网站。然而,拥有标签的层次结构会非常有帮助,而不是 等......

于 2008-08-21T23:30:28.693 回答
1

系统如何知道要在语义上链接哪些标签?它会保留不断增长的标签地图吗?我看不到那行得通。如果有人键入 sbversion 怎么办?这将如何联系起来?

我认为在用户提交标签时询问他们是可行的。例如,“您输入了以下标签:sbversion、pascal 和 bindings。您的意思是“Subversion”、“Pascal”和“Bindings”吗?

显然,该系统必须有一个相当智能的匹配系统才能工作。这样做会为用户带来额外的输入(这可能会惹恼他们),但如果操作正确,人工输入会减少重复的标签。

事实上,说了这么多,系统可以将用户输入的结果作为自动标签匹配的基础。在前面的示例中,有人创建了“sbversion”标签,并在收到提示时将其更改为“Subversion”——系统可以学习并在下次自动执行此操作。

于 2008-08-21T23:35:12.317 回答
0

问题是让搜索引擎使用“subversion”和“svn”非常相似的事实,它们意味着相同的“事物”。

根据频率计算标签之间的简单相似性可能很有吸引力:“subversion”和“svn”经常一起出现,因此请求“svn”会返回与 SVN 相关的问题,但也会返回仅标记为“subversion”的罕见问题(反之亦然)。然而,'java' 和 'c#' 也经常一起出现,但出于非常不同的原因(它们不是同义词)。因此,基于频率的相似性不复存在。

这个问题的答案可能是多种机制,正如这个 Q/A 线程中所建议的那样:

  • 通过在用户输入标签时建议标签来过滤错别字。
  • 维护用户生成的同义词映射。如果仅针对同义词,此地图可能不会那么大。
  • 允许多标签搜索,这样用户可以在搜索框中输入“subversion svn”或“subversion && svn”(嗯,从程序员到程序员)并获取两者。这将非常实用,因为许多用户在不知道哪个术语最有意义时实际上可能会尝试这种方法。

@尼克:同意。这个问题并不是要反对标签。标签具有巨大的潜力,但如果不能“跨”标签搜索,用户将面临日益严重的问题。

@Steve:维护不断增长的标签绝对不切实际。由于 SO 正在积累一个不断增长的标签,我们如何才能在这个袋子上遮住一些光,以一种方便的方式使 Q/A 标签的搜索更加有用?

@Espo:在创建问题时,基于现有标签的“基于 Ajax 的”标签建议显然可以在 SO 上使用。顺便说一句,这对于选择标签和适当的拼写非常有帮助(避免史蒂夫的“颠覆”与“sbversion”问题)。

于 2008-08-22T16:46:04.647 回答
0

标签基本上是我们承认搜索算法达不到标准。如果我们可以让计算机足够聪明,可以识别标记为“Subversion”的内容与标记为“svn”的内容相似,那么我们大概可以解析内容,那么为什么不完全跳过标记,直接将搜索词与内容(即自动标记,基本上是将关键字映射到结果)?!

于 2008-08-22T00:23:41.653 回答