我最近推出了我的 humble side project并希望在查看提交时添加“相关提交”部分。与 SO 在这里所做的完全一样 - 请参阅右栏,标题为“相关”
考虑到每个提交都有一个标题和一组标签,什么是最有效(最佳结果)、最有效(快速、内存友好)的方式来查询相关提交的数据库?
我可以想出一种方法来做到这一点(我会将其作为答案发布),但我很想知道其他人怎么说。或者也许已经有实现此目标的标准方法?
最佳答案
这是我的两分钱解决方案:
为了获得最佳输出,我们需要对查询结果进行“加权”。
首先,假定数据库中的每个提交的权重为零。 然后,如果“池”中的提交与当前提交共享一个标签,我们将向找到的提交添加 +3。因此,如果发现另一个提交与当前提交共享两个标签,我们将权重增加 +6。
接下来,我们拆分/标记当前提交的标题并删除“停用词”。
我在 google 上看到了一个停用词列表,但现在我将停用词定义为:[“of”、“a”、“the”、“in”]
例子:
标题“有史以来最好的作品”
结果数组:[“The”、“Best”、“Submission”、“of”、“All”、“Times”]
删除停用词:[“Best”、“Submission”、“All”、“Times”]
然后我们在数据库中查询包含任何提到的标题的提交,并为每个结果添加权重:+2
最后将列表按权重降序排序,取前N个结果。
你怎么看? (要温柔!)
关于c# - 查找相关提交的高效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1559545/