我是NLP的新手,我正在为我的问题寻找最合适的解决方案
在简化中,我想从标题创建一个“标记列表”
标记是预定义的,我可以很容易地为培训示例添加标签
简单示例:
Format "exemplary sentence" - "exemplary tag list"
我不需要标签的特定值
例如tags = { Animal: Elephant }
与tags = [Animals]
一样有用
我可以找到提取实体的唯一解决方案。我只列出了一个matcher的建筑列表,然后尝试了所有这些,有什么聪明和高效的方法可以做到这一点吗
感谢您的建议、提示和资源,祝您度过愉快的一天:)
您要执行的操作称为多标签分类。您的“标签”是标签,每个文档可以有多个标签
实现这一点的一个典型方法是为每个标签训练一个二进制分类器,然后在其预测中考虑高于阈值的标签为正。p>
spaCy支持多标签分类。它在the tutorial for textcat中没有被调用,但是您可以添加比POS和NEG更多的类,并且它应该能够学习它们
您可以构建自己的自定义分类器(如polm23所建议的),但鉴于您是NLP新手,这可能太复杂和耗时
一种激动人心的新方法是所谓的“零炮分类”。这基本上意味着您采用了一个通用的机器学习模型,该模型已由其他人以非常通用的方式预先训练用于文本分类,您只需将其应用于您的特定用例,而无需对其进行训练/微调。{a1}Transformers库有一个非常易于使用的实现。下面是一个交互式的web application,看看它在没有编码的情况下做了什么。下面是一个Jupyter notebook演示如何在Python中使用它。您可以从笔记本中复制粘贴代码
具体应用到您的用例中,这看起来像这样:
如果您希望该算法将一个以上的标签添加到文本中,您可以激活多标签分类,并且它将考虑每一个文本的多个标签。p>
=>用你的话来说:它为每个文本“创建一个“标记列表”。i、 e.对于每个预定义的标签,它提供了一个置信度得分,然后您可以为“真实标签列表”选择置信度得分最高的标签
我测试了它,实际输出在上面的代码中。它正确地分类了一切:)
它在其他用例上进行了尝试,但不是100%准确,但是它非常好,因为代码非常简单,您不必自己训练模型。 如果你有兴趣,这里有details on the theory
相关问题 更多 >
编程相关推荐