Mongodb 层次数据的语义类别预测
我正在构建一个web应用程序,为一些行业的企业提供服务。 我想建立一个搜索框,只需 你做什么工作 |____搜索框_____| 用户可以输入任何文本,并根据关键字,我想建议一些类别。理想情况下,我希望返回5个结果及其相关的置信水平,并让他们通过复选框进行选择 例如,如果 关键词:洗涤 结果: 0:[房屋清洁,209] 1:[租赁结束清理,589] 2:[办公室清洁,210] 3:[室外清洁,202] 4:[一般园艺,161] 或者如果关键字:自动车轮 结果: 0:[汽车喷漆,533] 1:[小组讨论,104] 2:[汽车清洁和细节设计,96] 3:[汽车修理工,101] 4:[自动门和闸门,185] 右边的数字是信心 注意,我经常使用同义词作为关键字。假设我在MongoDB文档中有这样的类别:Mongodb 层次数据的语义类别预测,mongodb,search,machine-learning,classification,Mongodb,Search,Machine Learning,Classification,我正在构建一个web应用程序,为一些行业的企业提供服务。 我想建立一个搜索框,只需 你做什么工作 |____搜索框_____| 用户可以输入任何文本,并根据关键字,我想建议一些类别。理想情况下,我希望返回5个结果及其相关的置信水平,并让他们通过复选框进行选择 例如,如果 关键词:洗涤 结果: 0:[房屋清洁,209] 1:[租赁结束清理,589] 2:[办公室清洁,210] 3:[室外清洁,202] 4:[一般园艺,161] 或者如果关键字:自动车轮 结果: 0:[汽车喷漆,533] 1:[小组
{
'cleaning' : {
'Outdoor Cleaning' : [ 'Outdoor', 'Yard', 'Cleaning', 'Field' ],
'Office Cleaning' : ['Indoor', 'Office', 'Business', 'Corporate', Cleaning', 'Scrubbing']
},
'auto': {
'mechanic' : ['car', '...']
}
}
如何返回所需的结果?
我训练了一个朴素贝叶斯分类器,但它只分类到一个类别。
我现在正在研究术语频率–反向文档频率tf idf,以获得一组排名结果,但我有点担心我的数据模型不符合算法
我是否必须包含所有可能的同义词来训练类别?我是否应该等到它上线后再根据真正的关键字搜索手动训练类别
如果有人知道更好的方法来组织这些信息,我仍然可以更改我的数据模型。。。如果有人遇到过这样的问题,任何洞察都是值得赞赏的
谢谢您必须针对所有类别对分类器进行训练,建立训练集,我建议使用Elasticsearch或SOLR对结果进行排名。您还可以存储用户输入,以查看用户通常搜索的内容,并将这些信息用于训练分类器。朴素贝叶斯实际上对类别进行排序,因此它可以用于输出多个类别,而不是只选择概率最大的类别,按概率排序,并选择前5名。