python - 如何对法律领域的文本文档进行分类
问题描述
我一直在从事一个关于在法律领域对文本文档进行分类的项目 (法律判断预测类问题)。
给定的数据集由 700 个法律文件组成(在两个类别中很好地平衡)。在包括应用所有最佳实践(例如删除停用词等)的预处理之后,每个文档有 3 个段落,我可以一起或单独考虑。平均而言,文本文档大小为 2285 个单词。
我的目标是使用与经典 n-gram 模型不同的东西(不考虑任何单词顺序或语义):
- 使用神经网络 ( Doc2Vec ) 将每个文档的文本转换为连续域中的向量;为了创建一个带有向量的数据集,代表文档,以及相应的标签(正如我所说,有 2 个可能的标签:0 或 1);
- 训练一个支持向量机对样本进行分类,我一直在使用 10 倍交叉验证。
我想知道是否有人在这个特定领域有一些经验,他可以建议我其他方法或如何改进模型,因为我没有得到特别好的结果:74% 的准确率。
使用 Doc2Vec 将文本转换为向量并将它们用于提供分类器是否正确?
我的模型表示:
解决方案
Doc2Vec 是将可变长度文本转换为摘要向量的合理方法,这些向量通常可用于分类——尤其是主题或情感分类(原始“段落向量”论文中突出显示的两个应用程序)。
但是,作为训练集,700 个文档非常小。已发表的作品倾向于使用数万到数百万个文档的语料库。
此外,你的特定分类目标——预测法律判决——比主题或情感分类更让我印象深刻。了解如何决定案件取决于大量外部法律/先例(不在训练集中)和逻辑推论,有时取决于情况的个别细节。这些是单个文本向量的模糊摘要不太可能捕获的内容。
与此相反,您报告的 74% 准确率听起来令人印象深刻。(外行人也会这样做吗,只有这些摘要?)我想知道摘要中是否有某些“告诉”——摘要器的单词选择强烈暗示或彻底揭示实际判断。如果这是文本中最强的信号(除了实际的领域知识和逻辑推理),您可能会从更简单的 n-grams/bag-of-words 表示和分类器中获得同样好的结果。
元优化你的训练参数可能会逐渐改善结果,但我认为你需要更多的数据,也许需要更先进的学习技术,才能真正接近你可能瞄准的那种具有法律能力的人类水平预测为了。
推荐阅读
- java - 抽象类的多个子类型和动态转换的通用接口
- bash - Azure Devops 在触发新创建的管道时通过休息问题触发管道
- html - 使用 1 个标记创建 2 个基于断点的布局
- reactjs - 当单击来自 custombodyrender 的操作按钮时,如何防止 onRowClick?
- vue.js - 在 vue 项目中保存 css js 图像文件的位置
- java - 仅在特定地区使用应用程序的能力(仅使用代码)
- visual-c++ - 为 MSVC 工具链的 Rust 构建提供编译器标志
- google-colaboratory - python错误 - 返回NULL而不设置错误
- spring - 在本地计算机上运行 Docker 容器时,“日志系统无法使用来自‘null’的配置进行初始化”
- android - 在 Mac(Android Studio) 上编译 android 版本时遇到问题