堆栈溢出相关问题算法
nlp
7
0

输入标题后出现的相关问题以及查看问题时右侧栏中的问题似乎暗示着非常恰当的问题。

Spolsky在一次演讲中说,Stack Overflow只对它进行SQL搜索,并且不使用特殊算法。

在这种情况下,存在哪些算法可以给出良好的答案。在这种情况下,如何进行数据库搜索?使标题可搜索,搜索关键字或搜索标签以及那些投票最多的问题?

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

如果您想了解“相关”算法,请查看Porter词干以了解词干提取算法。

例如,英语的词干分析器应基于根“ cat”来识别字符串“ cats”(可能还包括“ catlike”,“ catty”等),而“ stemmer”,“ stemming”,“ stemmed”则应识别为基于“词干”。词干提取算法将单词“ fishing”,“ fished”,“ fish”和“ fisher”简化为词根“ fish”。

处理完文档并完成其词干处理后,您可以按计数为词干索引,然后将其与其他文档进行比较。这是解决此问题的最基本方法。

还请注意忽略停用词,例如“ the”,“ an”,“ of”等。

收藏
评论
收藏
评论

相关问题侧边栏将建立在每个问题的标签上(可能是基于标签重叠对它们进行排名,因此,常见的5个标签>常见的4个标签等)。

其余的将基于适合自然语言处理的启发式算法和算法。在通用语言中,这些通常不是很好,但是一旦将词汇缩减到单个技术领域(例如编程),它们中的大多数就非常好。

收藏
评论

如果您收听Stack Overflow播客32 (不幸的是,笔录内容不多),您会听到Jeff Atwood谈了他的工作方式。

似乎算法是这样的:

  • 提出问题
  • 删除英语中最常用的单词(从他从Google那里获得的列表中)
  • 向SQL Server 2008全文搜索引擎提交全文搜索

有关全文搜索的更多详细信息,可以在这里找到: http : //msdn.microsoft.com/zh-cn/library/ms142571.aspx

到目前为止,这可能已经过时了-他们正在谈论转向更好/更快的全文搜索(例如Lucene) ,我隐约记得Jeff在播客中说这已经完成了。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号