假设我有一个DB问题,比如SO!当用户提出问题时,我想在侧栏上提供相关问题。
这是否有标准化技术?按空格分割问题,搜索每个单词等等...... ??
不确定从哪里开始。
答案 0 :(得分:3)
答案 1 :(得分:0)
很可能您需要设计一个存储关键字的表格,并根据问题的标题搜索相关项目。因此,一旦输入问题,每个关键字的点击计数器将定义问题与其他存储问题的相关性,并且通过排名,您可以按最高命中显示其他问题到最低。这就是我的想法。希望我的想法有所帮助,尽我所能,所以可能不是最好的答案,但帮助它有所贡献。 :)
答案 2 :(得分:0)
一种天真的方式是在常见单词的问题中查询字符串。
例如,此页面上的大多数相关问题都在其标题中包含“queries”或“algorithm”这两个词,尽管它们似乎谈论SQL,学习发展等多个领域。
所以基本上你可以提出一个问题,拆分问题字符串,消除停用词,然后尝试在其他问题标题上尽可能多地匹配单词。
一旦你有一组问题,你在标题中有匹配的单词,按照匹配数或其他指标(例如upvotes,answers或viewcount)来排序。
答案 3 :(得分:0)
我会像这样处理问题。首先,删除所有胶水词:“the,a,an,but,if,cant,can,so,not”等等(可能是一个巨大的列表)......
那时应该留下的主要是名词和动词。
使用K-Means聚类等方式对帖子进行聚类。最后,针对您的群集训练一个贝叶斯分类器,当您收到一个新帖子时,将其归类为您的一个群集...最后,从该群集返回其他问题....