本发明涉及文本分类,特别涉及一种不平衡小样本下多层级标签分类判别方法及装置。
背景技术:
1、对预包装食品中的食物名称进行分类是现有技术经常遇到的场景。在预包装食品中,例如食物名称“××品牌的盐焗腰果180g”对应的所属分类标签“休闲食品->坚果炒货->......->高脂肪坚果炒货”,存在以下特点:
2、(1)标签层级为三级或多级,且存在父子关系;
3、(2)叶子节点对应一级标签、二级标签、三级标签......都有可能;
4、(3)数据库样本数较小;
5、(4)样本数据在各自标签下存在严重不平衡性,例如数据集中某些类别数量较少,而其他类别样本数较多,形成长尾分布(长尾分布数据是一种偏态分布,是指几个类别即头类包含大量的样本,而大多数类别即尾类只有非常少量的样本)。
6、现有技术通常采用如下方案进行标签分类判别:
7、第一,采用多个分类模型分别识别多层级标签的方案。该方案优点是采用多个分类模型细粒度识别层级标签效果好,精度高。缺点是多个模型维护成本高、串联模型会形成错误积累。
8、第二,采用单一分类模型识别多层级标签的方案。该方案的优点是单个模型容易维护、不会形成错误积累,缺点是忽略了不同层级的标签关联关系,模型效果不好。
9、第三,采用局部和全局模型相结合的层次多标签分类网络模型。该方案的优点是考虑了不同层级标签的关系、单个模型维护成本低、效果好,缺点是未考虑到小样本在各自标签下长尾分布的不平衡性。
技术实现思路
1、鉴于现有技术中的上述缺陷或不足,本发明提供了一种不平衡小样本下多层级标签分类判别方法及装置,其针对小样本长尾分布下的层级标签使用了规则器校准方式,对大样本层级标签使用了分类模型判别方式,并将两种分类结果通过判别条件融合在一起。本发明的模型结构使机器学习的f1值提高到95%,相对于单独分类模型的方案增加了8%,同时相比于多分类模型的方案大大降低了维护成本。
2、本发明的一个方面,提供了一种不平衡小样本下多层级标签分类判别方法,包括:
3、获取样本数据集,所述样本数据集包括作为输入样本的食物名称和作为输出样本的多层级标签;
4、统计所述样本数据集在多层级标签的每级标签下的样本数,对每级标签分别设置样本数阈值;
5、将样本数小于等于样本数阈值的每级标签下的样本数据作为第一数据集,将其余标签下的样本数据作为第二数据集;
6、通过关键词库对所述第一数据集进行分类,得到第一预测标签,通过分类模型对所述第二数据集进行分类,得到第二预测标签;
7、对第一预测标签和第二预测标签进行融合处理,将融合处理后的标签作为最终预测出的当前标签;
8、根据上述步骤,按照从上级标签到下级标签的顺序,依次预测每个食物名称对应的多层级标签。
9、进一步的,所述通过关键词库对所述第一数据集进行分类,得到第一预测标签的步骤,包括:
10、对所述第一数据集中的样本数据和该样本数据对应的关键词库求交集,得到关键样本数据,统计关键样本数据在每级标签下的单词的tf-idf值,并对每级标签下的单词的tf-idf值求和,将tf-idf值之和最大的标签作为第一预测标签。
11、进一步的,所述通过分类模型对所述第二数据集进行分类,得到第二预测标签的步骤,包括:
12、利用分类模型对所述第二数据集中的样本数据进行向量化,输出预测的标签概率,将概率最高的标签作为第二预测标签。
13、进一步的,所述对第一预测标签和第二预测标签进行融合处理,将融合处理后的标签作为最终预测出的当前标签的步骤,包括:
14、若第一预测标签和第二预测标签同为一级标签,或者,第一预测标签的父标签和第二预测标签的父标签相同,则判断第二预测标签的概率是否大于或等于预设阈值,若是则以第二预测标签为融合处理后的标签,否则以第一预测标签为融合处理后的标签;
15、若第一预测标签和第二预测标签不同为一级标签,或者,第一预测标签的父标签和第二预测标签的父标签不相同,则判断第一预测标签的父标签是否和已经预测出的上级标签一致,是则以第一预测标签为融合处理后的标签,否则以第二预测标签为融合处理后的标签;
16、将融合处理后的标签作为最终预测出的当前标签。
17、进一步的,通过如下方式获取所述关键词库:
18、根据下式计算支持度s(a,b):
19、s(a,b)=p(a,b)
20、根据下式计算置信度c(a,b):
21、
22、根据下式计算提升度l(a,b):
23、
24、其中,a为食物名称,b为食物名称对应的标签,p(a,b)表示食物名称和对应标签共同出现的概率,p(a)为食物名称出现的概率,p(b)为食物名称对应的标签出现的概率;
25、根据支持度和支持度阈值的大小、置信度和置信度阈值的大小以及提升度和提升度阈值的大小,抽取第一数据集中的关键词,构成所述关键词库。
26、本发明的另一方面,提供了一种不平衡小样本下多层级标签分类判别装置,包括:
27、获取模块,被配置为获取样本数据集,所述样本数据集包括作为输入样本的食物名称和作为输出样本的多层级标签;
28、统计模块,被配置为统计所述样本数据集在多层级标签的每级标签下的样本数,对每级标签分别设置样本数阈值;
29、标签数据划分模块,被配置为将样本数小于等于样本数阈值的每级标签下的样本数据作为第一数据集,将其余标签下的样本数据作为第二数据集;
30、分类模块,被配置为通过关键词库对所述第一数据集进行分类,得到第一预测标签,通过分类模型对所述第二数据集进行分类,得到第二预测标签;
31、融合模块,被配置为对第一预测标签和第二预测标签进行融合处理,将融合处理后的标签作为最终预测出的当前标签;
32、预测模块,被配置为根据上述步骤,按照从上级标签到下级标签的顺序,依次预测每个食物名称对应的多层级标签。
33、进一步的,所述分类模块被进一步配置为:
34、对所述第一数据集中的样本数据和该样本数据对应的关键词库求交集,得到关键样本数据,统计关键样本数据在每级标签下的单词的tf-idf值,并对每级标签下的单词的tf-idf值求和,将tf-idf值之和最大的标签作为第一预测标签。
35、进一步的,所述分类模块被进一步配置为:
36、利用分类模型对所述第二数据集中的样本数据进行向量化,输出预测的标签概率,将概率最高的标签作为第二预测标签。
37、进一步的,所述融合模块被进一步配置为:
38、若第一预测标签和第二预测标签同为一级标签,或者,第一预测标签的父标签和第二预测标签的父标签相同,则判断第二预测标签的概率是否大于或等于预设阈值,若是则以第二预测标签为融合处理后的标签,否则以第一预测标签为融合处理后的标签;
39、若第一预测标签和第二预测标签不同为一级标签,或者,第一预测标签的父标签和第二预测标签的父标签不相同,则判断第一预测标签的父标签是否和已经预测出的上级标签一致,是则以第一预测标签为融合处理后的标签,否则以第二预测标签为融合处理后的标签;
40、将融合处理后的标签作为最终预测出的当前标签。
41、进一步的,还包括关键词库获取模块,被配置为:
42、根据下式计算支持度s(a,b):
43、s(a,b)=p(a,b)
44、根据下式计算置信度c(a,b):
45、
46、根据下式计算提升度l(a,b):
47、
48、其中,a为食物名称,b为食物名称对应的标签,p(a,b)表示食物名称和对应标签共同出现的概率,p(a)为食物名称出现的概率,p(b)为食物名称对应的标签出现的概率;
49、根据支持度和支持度阈值的大小、置信度和置信度阈值的大小以及提升度和提升度阈值的大小,抽取第一数据集中的关键词,构成所述关键词库。
50、本发明提供的不平衡小样本下多层级标签分类判别方法及装置,针对小样本长尾分布下的层级标签使用了规则器校准方式,对大样本层级标签使用了分类模型判别方式,并将两种分类结果通过判别条件融合在一起,有效的提高了机器学习的f1值,同时相比于多分类模型的方案大大降低了维护成本。