python - 如何对合法领域的文本文档进行分类

标签 python svm text-classification word-embedding doc2vec

我一直在做一个关于在法律领域对文本文档进行分类 (法律判断预测类问题)的项目。
给定的数据集包含 700 份法律文件(在两类中很平衡)。在应用所有最佳实践(例如删除停用词等)的预处理之后,每个文档有 3 个段落,我可以将它们放在一起或单独考虑。平均而言,文本文档大小为 2285 个单词。

我的目标是使用不同于经典 n-grams 模型的东西(它不考虑任何词序或语义):

  • 使用神经网络 ( Doc2Vec ) 将每个文档的文本转换为连续域中的向量;为了创建一个包含向量的数据集,表示文档和相应的标签(正如我所说,有 2 种可能的标签:0 或 1);
  • 训练 SVM 对样本进行分类,我一直在使用 10 折交叉验证。

我想知道是否有人在这个特定领域有一些经验,可以建议我其他方法或如何改进模型,因为我没有得到特别好的结果:74% 的准确率。

使用 Doc2Vec 将文本转换为向量并将其用于提供分类器是否正确?

我的模型表示:

enter image description here

最佳答案

Doc2Vec 是一种将可变长度文本转换为摘要向量的合理方法,这些向量通常可用于分类——尤其是主题或情感分类(原始“段落向量”论文中突出显示的两个应用)。

但是,700 个文档作为训练集来说是非常小的。已发表的作品倾向于使用数万到数百万文档的语料库。

此外,您的特定分类目标(预测法律判决)让我印象深刻,这比主题或情感分类要难得多。了解案件将如何决定取决于大量外部法律/先例(不在训练集中)和逻辑推论,有时取决于情况的个别细节。这些是单一文本向量的模糊摘要不太可能捕捉到的东西。

与此相反,您报告的 74% 准确率听起来令人印象深刻。 (外行人也能用这些摘要做吗?)我想知道摘要中是否有某些“告诉”——摘要者的用词选择强烈暗示,或直接揭示实际判断。如果这是文本中最强的信号(除非实际领域知识和逻辑推理),您可能会从更简单的 n-grams/词袋表示和分类器中获得同样好的结果。

对您的训练参数进行元优化可能会逐步改善结果,但我认为您需要更多的数据,也许还需要更先进的学习技术,才能真正接近您的合法能力人类水平的预测可能是为了。

关于python - 如何对合法领域的文本文档进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52591572/

相关文章:

machine-learning - 为什么weka在WEKA上计算stringToWordVector的数字函数错误?

machine-learning - 使用 TextBlob 进行文本分类

python - 将 NetworkX MultiDiGraph 与字典相互转换

Python 类继承 : How to initialize a subclass with values not in the parent class

java - 如何在 Java 中使用 Encog SVM 预测多个值

machine-learning - 处理 apache Spark MLLib 中 SVM 中的缺失值

python scrapy : spider follows links but won't download images

python - 如何在 bash 中解析 json 或将 curl 输出传递给 python 脚本

machine-learning - libsvm 返回一个简单的解决方案

machine-learning - 具有零个或多个标签的多标签文本分类