如何在表面语义级别上找到技术文本的类别

人工智能 机器学习 深度学习 自然语言处理 Python 语义
2021-11-07 13:05:38

有一些预定义的类别(概述、数据架构、技术细节、应用程序等)。要求是将段落的输入文本分类为它们的对应。类别。我不能使用任何预训练的词嵌入(Word2Vec、Glove),因为输入的数据不是一般英语(谈论狗、环境等),而是纯技术(特定程序如何运作,下载 anaconda 的步骤,等等)。互联网上也没有任何可用于训练的数据。任何理解句子语义表面级别的东西都可以工作

1个回答

问题陈述

在表面语义级别上查找技术文本的类别。要求是将段落的输入文本分类到各自的类别中。

预定义的类别如下。

  • 概述
  • 数据架构
  • 技术细节
  • 应用
  • 等等

将添加以代替“等”的某些文档类型可能包括这些。

  • 要求
  • 高级设计
  • 系统架构
  • 测试计划
  • 部署计划
  • 灾难恢复计划

技术文档的语义结构

需求文档和数据架构之间的术语可能有很多共同点,这是正确的。更准确地说,给定系统或项目共有的所有文档的语言元素的分布可能包含领域共性。驾驶无人机的系统将在其文档中以类似的分布具有语言元素“drone(s)”、“hover(ing|s)”、“target(ing|s)”、“flight plan(s)”。

指标

这五个区别特征很可能可以在分类中加以利用。

  • 句子语义
  • 插入图解和图示约定
  • 标头约定
  • 仅在一种类型的技术文档中常见的语言元素
  • 复制以前的文件和修改它们或在特定部门使用样板和模板的元素和结构

而不是完全专注于文本识别并放弃上面列表中的其他项目是不明智的。使用深度卷积方法可以很容易地识别诸如网络图和 UML 图之类的图表,并且可以清楚地识别托管文档所属的类别。测试用例表也是如此。

认识到上述五个指标和指标部分之间的比例是模型中应用培训的变量将产生最佳结果。例如,最后一段可能比正文的其余部分更能说明问题。

此外,请注意,可以将记录在案的所有文本文档中的语言元素的比例外观与示例中标识的语言元素结合起来,然后在以后使用经过训练的模型。如果特征包括表明出现在输入文本中的语言元素“测试用例”在技术文档领域中的流行程度明显低于语言元素“ -ing”表示动词的连续时态。

避免使用静态语法

与基于关联的语义映射相比,基于固定语言规则(语法)的语言解析器并没有取得太大成功,并且出于类似原因,语言学已经远离那些静态模型。避免基于语法的解析。

现有工作

对于文本分类,以下学术出版物是一些最近已经获得一些恶名的工作。

错误的方法

评论中比较句子语义的方法只会确定两个句子之间信息冗余的一个方面。

比较的次数也是一个考虑因素。为了χ每个包含的文件σ句子需要χ(χ1)σ(σ1)比较。为了χ=10,000包含的文件σ=1,000句子,我们有 99,890,010,000,000 个句子比较,它们的总数没有提供关于任何文档类别的特别有用的信息。

文档必须与概念类相关,而不是彼此相关。

除非您正在寻找某些东西并且可视化旨在呈现所寻找的东西,否则语义的可视化并不是特别有用。

更好的计划

  • 确定示例训练文档的数量,t,需要由专家进行分类,以创建足够大的训练数据集。(考虑使用为此目的设计的 PAC 学习框架。)
  • 使用适当的随机或高度伪随机方法从整套文档中提取该数字,本文称为方法D. 那是训练示例集。
  • 使用方法再次从全套文档中提取该数字D. 那是测试示例集。
  • 让专家根据技术文档类型对两个示例集进行标记(分类)。使用相同的专家进行培训和测试,并让他们定期在两组之间交替,以便他们的学习、疲劳或无聊曲线对他们对两组的分类影响最小。
  • 根据上述五个指标对每个带有类别标签的文档进行剖析。请注意,要将文档中嵌入的图像用作分析的一部分,这可以极大地提高系统可靠性,必须通过一个单独的图表分类网络运行图像,该网络对图像进行单独训练,以找到一种技术文档类型的图表特征。这听起来像是很多工作,但考虑到对绘图类型进行分类是一门成熟的科学,并且标签只是代表特定文档类型的图表类型。
  • 训练一个设计合理的人工网络来对文档进行分类,使用分析结果作为示例输入和来自专家分类的标签。
  • 使用测试集进行测试
  • 根据测试结果,决定是使用当前训练还是使用从第一次训练获得的信息重新执行上一步并再次训练
  • 在完整文档集上运行经过训练的网络
  • 使用方法从结果中提取样本D验证运行的有效完成