【发布时间】:2019-03-06 14:10:25
【问题描述】:
我一直在从事一个关于在法律领域对文本文档进行分类 (法律判断预测类问题)的项目。
给定的数据集由 700 个法律文件组成(在两个类别中很好地平衡)。在包括应用所有最佳实践(例如删除停用词等)的预处理之后,每个文档有 3 个段落,我可以一起或单独考虑。平均而言,文本文档大小为 2285 字。
我的目标是使用与经典 n-gram 模型不同的东西(不考虑任何单词顺序或语义):
- 使用神经网络 (Doc2Vec) 将每个文档的文本转换为连续域中的向量;为了创建一个包含向量、代表文档和相应标签的数据集(正如我所说,有 2 个可能的标签:0 或 1);
- 训练 SVM 对样本进行分类,我一直在使用 10 折交叉验证。
我想知道是否有人在这个特定领域有一些经验,他可以建议我其他方法或如何改进模型,因为我没有得到特别好的结果:74% 的准确率。
使用 Doc2Vec 将文本转换为向量并用于输入分类器是否正确?
我的模特代表:
【问题讨论】:
-
一些事情...... 700 并不是一个特别多的样本,所以这可能是您问题的很大一部分 - 您可能会遭受很大的差异。更多样本应该会有所帮助。尝试使用 CV 为您的分类器调整更好的超参数(此外,您可以尝试不同的分类器,而不仅仅是 SVM)。 10倍CV也比较高。可能相当耗时。您可能会在网格搜索过程中减少折叠次数
-
您的问题似乎相当模糊。关于特定的编程问题,您究竟想知道什么?你试过什么,你到底卡在哪里?
-
这不是一个特定的编程问题,而是关于使用这种文本表示是否有意义。 如何在适合训练分类器的连续域中表示文本文档?@petezurich
-
谢谢@Tgsmith6159,感谢您的cmets。如果问题是我没有足够的样本,我就卡住了!!你会使用预训练模型从文本中获取向量吗?
标签: python svm text-classification word-embedding doc2vec