Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb 层次数据的语义类别预测_Mongodb_Search_Machine Learning_Classification - Fatal编程技术网

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:[小组

我正在构建一个web应用程序,为一些行业的企业提供服务。 我想建立一个搜索框,只需

你做什么工作

|____搜索框_____|

用户可以输入任何文本,并根据关键字,我想建议一些类别。理想情况下,我希望返回5个结果及其相关的置信水平,并让他们通过复选框进行选择

例如,如果

关键词:洗涤

结果:

0:[房屋清洁,209] 1:[租赁结束清理,589] 2:[办公室清洁,210] 3:[室外清洁,202] 4:[一般园艺,161] 或者如果关键字:自动车轮

结果:

0:[汽车喷漆,533] 1:[小组讨论,104] 2:[汽车清洁和细节设计,96] 3:[汽车修理工,101] 4:[自动门和闸门,185] 右边的数字是信心

注意,我经常使用同义词作为关键字。假设我在MongoDB文档中有这样的类别:

{
  'cleaning' : {
   'Outdoor Cleaning' : [ 'Outdoor', 'Yard', 'Cleaning', 'Field' ],
   'Office Cleaning' : ['Indoor', 'Office', 'Business', 'Corporate', Cleaning', 'Scrubbing']
  },
  'auto': {
    'mechanic' : ['car', '...']
  }
}
如何返回所需的结果? 我训练了一个朴素贝叶斯分类器,但它只分类到一个类别。 我现在正在研究术语频率–反向文档频率tf idf,以获得一组排名结果,但我有点担心我的数据模型不符合算法

我是否必须包含所有可能的同义词来训练类别?我是否应该等到它上线后再根据真正的关键字搜索手动训练类别

如果有人知道更好的方法来组织这些信息,我仍然可以更改我的数据模型。。。如果有人遇到过这样的问题,任何洞察都是值得赞赏的


谢谢

您必须针对所有类别对分类器进行训练,建立训练集,我建议使用Elasticsearch或SOLR对结果进行排名。您还可以存储用户输入,以查看用户通常搜索的内容,并将这些信息用于训练分类器。朴素贝叶斯实际上对类别进行排序,因此它可以用于输出多个类别,而不是只选择概率最大的类别,按概率排序,并选择前5名。