java - 精细文本分类 - 什么算法?

标签 java algorithm machine-learning classification

我希望实现一个包含大约 150 个类别的分类器(可能在 Java 中),主要用于推文(非常小的文档)。一些类具有非常相似的域,例如。 “公司”、“竞争”、“消费者”、“国际法”、“国际组织”、“国际政治与政府”。当需要如此高分辨率时,哪种算法/方法最好?我已经尝试过朴素贝叶斯 (obv),但到目前为止它的表现不是很好(尽管这可能只是由于训练数据的质量)。非常欢迎社区的想法!

谢谢,

标记

最佳答案

提出一个从(可能很多)级别的子分类器构建的层次分类器可能是值得的(即,为您的文档标签提出一个分类法)。

单一分类器

single classifier with many possible class labels

单个分类器可以输出许多可能的类标签中的任何一个。

层次分类器

hierarchical classifier

层次分类器将相关的类标签组合在一起,并执行额外的分类层,直到到达叶节点(或直到置信度降至特定阈值以下)。

直觉

直觉是,当类别数量较少时,分类器将更容易学习判别特征。

例如,分层分类器可能更容易学习 player 是表示运动的良好特征,而如果 player,则单个分类器会更难学习> 只在一个类别(篮球)中出现,在另一个类别(曲棍球)中没有出现。

关于java - 精细文本分类 - 什么算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16317893/

相关文章:

c++ - 如何改进 Twitter 情绪分析器?

java - Java中如何获取仅包含特定字段的对象列表?

java - 是否可以在 Spring Boot 应用程序中使用具有冗余功能的 HashiCorp Vault?

java - 确定字符串是否具有唯一字符

c - 如何实现具有惰性传播的线段树?

algorithm - 查找有向图中的所有根

text - 需要体育、娱乐、健康等类别以及所有子类别的训练数据

JAVA添加总计

java - 从第二个 Activity 传输数据时出错

python - Tensorflow 将张量数组转换为单个张量