摘要
建筑、工程和施工(AEC)部门的自动合规性检查(ACC)需要自动化建筑法规的解释,以充分发挥其潜力。由于自然语言的复杂性和高级机器学习(ML)资源的稀缺性,将文本规则转换为机器可读格式具有挑战性。为了应对这些挑战,我们引入了CODE-ACCORD,这是一个来自英国和芬兰建筑法规的862个句子的数据集。只有表达完整规则而不需要额外上下文的自包含句子被认为是ACC所必需的。每个句子都由12名注释者组成的团队用实体和关系手动注释,以方便机器可读的规则生成,然后进行仔细的整理以确保准确性。最终的数据集包括4297个实体和4329个不同类别的关系,作为一个强大的基础事实。CODE-ACCORD支持一系列机器学习和自然语言处理(NLP)任务,包括文本分类、实体识别和关系提取。它能够将深度神经网络和大型语言模型等最新趋势应用于ACC。
背景与概述
建筑规范制定了规定建筑物和构筑物最低安全和福利要求的法规和标准。在建筑的整个生命周期内,包括设计、施工和翻新/拆除,遵守这些规范对于保证建筑设计的稳定性、安全性、可用性和可靠性至关重要。尽管合规检查传统上是手动进行的,但由于手动方法需要大量的时间和人力资源,现在越来越多的人希望自动化这一过程1、2。语义更丰富的建筑信息模型(BIM)的进步进一步鼓励了这一趋势,使自动合规性检查(ACC)成为可能3。然而,由于建筑规范是以文本形式编写的,作为第一步,需要提取其基础信息并将其转换为机器可读格式,以便通过智能方法实现ACC 4。然而,由于与自然语言相关的复杂性,特别是由于非结构化的性质和以人为本的设计,从文本中提取信息一直是一个挑战5,6。
机器可读规则形式化的早期工作侧重于开发软件工具和预定义程序,领域专家可以使用这些工具和程序将文本信息手动格式化为规则。其中一种方法涉及RASE标记7,它将文本块注释为需求(R)、适用性(A)、选择(S)和例外(E),以及元数据,以帮助制定规则8。另一种方法使用面向对象的过程来过滤声明性(或计算机可解释)子句,并提取其物理实体和属性,创建建筑法规的元素视图,以方便更容易的信息处理3。同样,韩语建筑规范引入了一种使用名词和动词短语的基于规则的逻辑机制。然而,手动转换过程很耗时,需要领域专家的不断参与,促使研究人员寻求自动化解决方案。
基于这一趋势,基于规则的方法通常用于从监管文本中提取信息,以生成机器可读的规则10-13。考虑到与文本相关的复杂性,语义和句法特征都被用来设计规则。这些方法还与各种自然语言处理(NLP)技术相结合,例如使用特定领域上下文无关语法(CFG)分析文本结构的句法分析,以提高准确性4,14。然而,基于规则的方法通常缺乏跨不同领域的适应性,因为大多数规则都是特定于特定领域的15。此外,设计规则需要大量的人工工作,这既费时又容易出错,需要广泛的领域专业知识。为了缓解这些困难,最近已经转向基于监督学习的方法。尤其是深度学习技术,在从监管文本中提取信息方面展现出了巨大的潜力,这与NLP16–19的最新趋势相吻合。双向长短期记忆(Bi-LSTM)、卷积神经网络(CNN)和变换器等各种架构已被采用,以有效地提取信息4、15、20-22。最近,这项任务也被视为一个机器翻译问题,使用T5和BART24等高级文本生成模型将文本转换为LegalRuleML23等格式
虽然监督学习方法克服了早期方法的一些挑战,例如减少了对人类或领域专家广泛参与的需求并节省了时间,但它们在很大程度上依赖于高质量的带注释数据进行训练。已经采用了各种策略来注释监管数据并捕获关键信息。例如,一项研究引入了一个JSON格式的数据集,该数据集与中国建筑规范的本体相一致14。另一种方法将类似的方法应用于德国建筑规范,使用领域专家定义的数据特定属性25。然而,这些数据集通常仅限于特定领域(如消防)或地点(如维也纳),因为它们在很大程度上依赖于本体等预定义的信息结构。这种依赖关系使得注释策略难以适应其他领域或地区,需要对底层结构进行重大修改。此外,明显缺乏公开可用的数据集。
为了解决这些局限性,本研究旨在开发一种简单的注释策略,该策略可以在不同子域和地区的建筑规范中推广。我们的方法特别侧重于从自然语言中提取信息,由于其非结构化的性质,这带来了挑战。仔细研究后,文本通常由两种基本类型的信息组成:(1)实体(也称为命名实体)和(2)关系,这对理解所传达的概念至关重要26。实体是一条特定的信息或一个可以分类的概念,或者简单地说,是任何可以使用适当名称引用的东西26。例如,给定句子“防火门必须是自动关闭的。”,“防火门”和“自动关闭”描述实体。关系是实体对26之间的语义连接/关联。例如,在上述句子中,实体“防火门”和“自动关闭”之间存在“必要性”关系。总的来说,实体和关系形成了一个网络/知识图,它捕获了文本中表达的规则。基于这一概念,我们提出了一种基于一组通用实体和关系的注释策略,将非结构化文本转换为机器可读格式。使用这种策略,我们注释了一个名为CODE-ACCORD的数据集,并将其公开,以鼓励采用现代NLP和监督学习技术来推进ACC过程。
总之,CODE-ACCORD语料库包括862个从英国和芬兰的建筑法规中提取的独立句子。自足句被定义为表达规则并包含所有细节的规范性句子,没有任何在句子中无法解决的语言共指、对外部来源的引用或不完整/模糊的概念。这些句子对ACC至关重要,因为它们表达的规则可以直接提取和解释,而无需大量的交叉引用或额外的上下文。每句话都手动标注了实体和关系,并进行了后续几轮的整理以确保准确性。总体而言,CODE-ACCORD包含4297个注释实体,分布在四个类别中,4329个关系分布在十个类别中。
方法
CODE-ACCORD语料库的开发包括两个主要阶段:(1)数据收集和(2)数据注释。最初,句子被仔细提取,然后经过彻底的注释过程,得到最终的数据集。
数据收集方法
我们的数据收集方法主要侧重于从构建监管数据中提取描述规则的句子,以支持我们创建一个能够自动生成机器可读规则的数据集的最终目标。
数据源
CODE-ACCORD使用英国和芬兰公开发布的建筑法规作为其主要/原始数据来源。英格兰的建筑规范是从英国平整、住房和社区部以及住房、社区和地方政府部的官方网站上收集的。芬兰的建筑规范来自环境部的芬兰国家建筑规范官方网站
这项工作旨在建立一个英语语料库,因此使用了芬兰国家建筑规范的英文翻译。英格兰的建筑法规包括规定英格兰建筑物建造和维护的指导方针和标准。这些规定旨在确保建筑物内外人员的安全、健康和福利,并节约这些建筑物的燃料和电力。它们涵盖了建筑施工的各个方面,包括结构完整性、消防安全、可达性、能源效率等。这些规定分为不同的章节或部分,每个章节都涉及建筑的特定领域或方面,如a部分:结构,B部分:消防安全,K部分:防坠落,L部分:燃料和电力节约。芬兰的建筑法规在目的上与英国的法规相似,但在具体要求上可能有所不同,以适应当地情况。它们作为官方政府法令发布,分为章节或章节,如无障碍、消防安全和能源效率,每个章节都涉及特定的领域或功能要求。这些规定主要指导建筑物的规划、设计、施工和维护,以满足国家的安全和环境考虑标准。
在英国和芬兰,建筑法规以PDF文件的形式发布,公众可以在网上查阅。总共有33份文件,其中23份为英国法规,共1548页,10份为芬兰法规,共140页。表1展示了涵盖英国和芬兰法规的数据来源的统计概览。
表1.CODE-ACORD数据源的描述和统计
句子收集与处理
我们按照图1所示的方法处理了上述来源的数据,以创建我们的初始监管判决集合。由于格式的复杂性,我们将英格兰的文件C、D、H和J排除在进一步处理之外。最初,所有来自英语和芬兰语数据存储库的PDF文档都转换为纯文本。随后,采用半自动化流程过滤监管判决。在过滤期间,我们特别关注包含定量、主观和道义要求的数据,这对规则识别至关重要。然后,手动过滤提取的句子,以选择能够清楚地表达规则的自包含句子,而不依赖于前面或后面的句子。下面将进一步描述每个步骤。
图1.自动CODE-ACORD数据准备方法
文档处理:
此步骤包括(i)使用PDFMiner库从原始PDF格式中提取文本数据(https://pypi.org/project/pdfminer/)(ii)通过执行断字、删除换行符和脚注等操作来解析数字监管文件,以及(iii)删除不可转换的表格和数字以及不必要的部分。
句子分割:
这一步包括通过分析单词序列和标点符号来确定句子边界,从而将监管文本拆分为单个句子。为了实现这一点,我们使用了自然语言工具包(NLTK)库提供的句子标记器(https://www.nltk.org/).
句子过滤:
这一步最初涉及一个自动过滤过程,根据下面描述的三个不同特征选择与法规相关的句子。过滤是使用关键字匹配方法进行的。
- 定量要求是指可以用数字或定量术语表示的具体规定。这些要求通常规定了必须满足的精确值、测量值或数字标准,以确保符合规定。定量要求的例子可能包括“小于”、“大于”、“等于”、“至少”、“高于”、“多于”、“低于”等关键字,后面是数值或阈值。定量要求被考虑在内,因为它们主要用于建筑规范中描述要求4。
- 主观要求是涉及使用主观语言或表达的规定。这些要求不是由精确的数值或测量值定义的,而是由传达建议、偏好或意见的语言定义的。主观要求通常包括“应该”、“推荐”、“首选”或“可取”等术语。虽然这些要求本质上是主观的,但在建筑法规中很重要,因为它们允许灵活性和适应不同的情况,同时仍然为最佳实践和质量标准提供了一个框架。据我们所知,将NLP应用于建筑法规自动化领域的现有研究尚未解决其分析、方法或数据集中的主观要求4。
- 道义逻辑属于处理许可、义务、禁令和其他规范性声明的表达的逻辑。它用于表示具有约束力或强制性的规则和要求,例如规定建筑法规中“必须”、“应”、“可以”或“禁止”的规则。道义逻辑在这些法规的规范方面起着至关重要的作用,它提供了一个正式的框架来表示和推理强制性和自由裁量性的要求。与主观要求类似,道义逻辑在以往的研究中也没有得到广泛的考虑。这主要是由于大多数研究都集中在定量要求上,因为它们在建筑法规中的频率更高4。
在自动过滤之后,下一步涉及手动整理,以确保过滤后的句子的准确性。其中一位作者手动审查并删除了自动过滤(自动过滤)句子中的误报,从而得到半过滤句子集,然后在后续步骤中使用。
句子注释:
最后一步包括对过滤后的句子进行手动注释,以识别自包含的句子,这些句子被定义为包含所有必要细节的句子,没有任何无法在句子本身内解决的语言共同引用。此外,自足句不应包含对外部来源的引用,如章节、章节或文件,并应避免包含不完整或模糊的概念。我们的工作特别关注自包含的句子,因为它们传达的规则可以直接提取,而不需要交叉引用或需要人类解决的额外上下文。这允许他们的信息提取和机器可读规则形式化完全自动化。非自足句子被排除在最终监管判决收集之外。
句子统计
在将半自动数据收集方法应用于选定的数据源后,我们获得了表2中总结的一些值得注意的统计数据。总计20674个句子,其中5043个被自动过滤以捕获监管句子,占建筑法规文本内容中总句子的24%。然而,在自动过滤句子的整理过程中,由于PDF格式引起的转换错误,在一些文档中发现了句子分割方法的意外后果。一些句子被发现与节和小节标题以及通常包含冒号和分号的介绍性句子组合在一起,导致句子结构不正确。为了解决这个问题,在句子过滤过程中进行了手动调整,以仔细提取句子。将合并的句子与原始文件进行交叉检查,并删除了其他元素。在此步骤之后,自动过滤句子中的误报也被删除,得到4459个半过滤句子。从这些句子中,手动提取了1246个独立的句子,用于下面描述的注释任务
表2 CODE-ACCORD半自动数据准备方法的输出统计
数据注释方法
在数据注释中,我们主要关注从文本中提取信息,以促进自动规则生成。文本中有两种关键类型的信息:命名实体和关系,它们对于理解自然语言中传达的思想至关重要26。因此,我们在这项工作中的主要重点是注释实体和关系。
对于CODE-ACCORD手动注释,我们使用了一组12名具有计算机科学或土木工程/建筑背景的注释者。由于这项工作的目标是使用机器学习概念实现合规性检查的自动化,我们认为让这两个领域的专家参与注释过程非常重要。所有注释器都来自ACCORD项目(https://accordproject.eu/)并获得了该任务所涉及的工作包的分配补偿。我们使用LightTag文本注释平台27来收集人类注释,考虑到它对不同文本注释的覆盖范围,包括实体和关系、项目管理支持和用户友好的界面。我们概述了我们的注释方法,重点介绍了下面的关键概念。更多详细信息请参阅我们的综合注释手册(https://github.com/Accord-Project/CODE-ACCORD/blob/main/注释数据/Annotation_Strategy_V1.0.0.pdf)。有关注释质量的更多详细信息,请参阅技术验证部分。
实体标注
通过命名实体/实体,我们指的是可以分类的特定信息或概念。简单地说,命名实体是任何可以使用适当名称引用的实体26。
实体类别:
根据4,15中提出的想法,我们选择了表3中描述的四个命名实体类别进行实体注释。然而,与之前的工作不同,我们采用了一种简单的类别结构,主要是为了在定义命名实体时,我们的注释方法在不同子域(如结构、消防安全和可访问性)之间的通用性。此外,我们还考虑了监管判决中所有信息的覆盖范围。
表3 实体类别
命名实体 | 描述 |
对象 | 一个本体概念,表示受特定要求约束的事物(如窗户、防火门) |
属性 | 对象的属性(如宽度、高度) |
质量 | 对象/属性的质量或不可计数的特征(如水平、自闭) |
值 | 定义数量的标准或数值(如1500毫米,5%) |
标注过程:
实体标注过程主要包括两个步骤:(1)标记实体文本跨度和(2)分配实体类别。表4中显示了一些带注释的样本。可以看出,所选类别具有足够的通用性,可以捕获不同句子结构中的所有实体。此外,这些示例来自可访问性和消防安全法规,以表明我们的注释策略在不同子域中的普遍适用性。
表4 命名实体注释示例
关系标注
关系是文本中实体之间的语义连接/关联。提取关系和实体是将非结构化文本中嵌入的信息转换为结构化数据格式(如知识图)的关键过程。
关系类别:
由于在合规性检查中缺乏通用的、非领域特定的关系注释方法,在仔细分析监管文本中可能存在的关系后,我们确定了十个关系类别,详见表5。与我们定义实体标签的方法类似,我们主要关注在识别关系类别时跨不同子域的通用性和语义信息的覆盖率。考虑到识别实体对之间没有关系的实例的潜在模型要求,添加了最后一个类别“无”。
表5 关系类别
标注过程:
总体而言,关系注释过程包括四个步骤:(1)标记实体文本跨度,(2)分配实体类别,(3)识别形成关系的实体对,以及(4)分配关系类别。这项任务已被证明比实体注释更具挑战性,主要是因为它有多个复杂的步骤和错误传播的可能性。然而,我们指示注释者遵守整个流程,并在完成第二和第四步后提取实体和关系注释,使他们能够灵活地同时突出显示所有相关内容。此外,这种方法使他们能够通过检查最终的实体关系表示来查看提供的注释。我们只应用了针对前九个实体类别的手动注释过程,而没有应用“无”类别,因为一旦知道所有可用的关系,其余可能的实体对就形成了无关系。表6显示了完整处理后的几个带注释的示例。
表6 关系注释示例
数据记录
CODE-ACCORD数据集可在https://doi.org/10.5281/zenodo.1021002228 .数据存储库包含三个主要文件夹:English_Regulations、Finnish_Regulations和Annotated_data。前两个文件夹包括用于句子收集的文本数据,后者包含注释数据,如下所述。
句子收集
英格兰和芬兰的监管文本分别有单独的数据文件夹,分别命名为English_Regulations和Finnish_Regulations。每个文件夹的层次结构如下。在主数据文件夹中,有两个主要的子文件夹。第一个子文件夹PDF包含法规文件的原始PDF文件。第二个子文件夹Text and CSV是经过各种预处理阶段后存储TXT和CSV版本的PDF文件的地方。此文本和CSV子文件夹由八个子文件夹组成,每个子文件夹对应一个特定的预处理步骤。它们按照顺序精心组织,以促进系统的数据处理。第一个子文件夹RawTextData包含通过PDF到文本转换获得的初始原始文本数据。随后的子文件夹CleanedData RawText保存了从初始原始文本中导出的已清理数据。AllSentences子文件夹包含从清理后的文本中提取的所有句子。接下来,AutoFilteredSentences包括按照上述数据收集方法中描述的特定标准自动过滤的句子。ManuallyFilteredSentences包含手动整理的句子,以确保一致性并删除不必要的内容。FinalFilteredSentences子文件夹在删除空行和冗余信息后存储半自动过滤句子的最终原始文本。接下来,CSV FinalFilteredSentences以CSV格式显示FinalFilteredSendences文件夹中的句子,为最终子文件夹准备数据,分类将句子分为“自包含”或“其他”,其中只有自包含的句子被考虑用于最终数据注释。这种结构化的层次结构简化了法规文件的数据处理和分析,确保了有组织和高效的工作流程。
标注数据
从英国和芬兰的建筑法规中提取的1246个独立句子中随机选择了862个句子,进行了我们全面的数据注释过程,针对实体和关系,这对从文本中提取信息至关重要。所有带注释的数据都可以在annotated_data文件夹中找到。其中有两个子文件夹,分别命名为实体和关系,分别保存实体注释数据和关系注释数据。每个文件夹都有三个CSV文件,分别命名为all.CSV、train.CSV和test.CSV。文件all.csv包含完整的数据集。train.csv拥有完整数据集的80%,可用于训练机器学习模型,test.csv拥有剩余的20%,可用于模型的性能测试。一个文件夹中的所有三个文件都遵循相同的格式。实体和关系数据文件格式将在下面进一步描述。
实体数据格式
表7 实体数据文件格式
属性 | 描述 |
example_id | 为每个句子内容分配的唯一id |
content | 句子的原始文本内容 |
processed_content | 标记化(使用NLTK的word_tokenize包)句子的文本内容 |
label | IOB格式的实体标记序列 |
metadata | 句子的附加信息(即从中提取句子的原始批准文件) |
表7总结了ner文件夹中可用的实体数据文件的格式。实体注释以BIO(开始、内部、外部)格式提供,该格式被认为是信息提取任务的标准2,如图2中的示例所示。图中显示的对象和质量标签是所选实体类别的两类,在上面的数据注释方法中有进一步的描述。
图2:BIO格式的实体标签示例
关系数据格式
表8总结了文件夹中可用的关系数据文件的格式。根据最近研究18、30中使用的格式,我们采用了以下格式来标记表示数据样本中关系的实体对:
特殊标签<e1>和</e1>表示句子中出现的第一个实体的开始和结束。类似地,<e2>和</e2>表示第二个实体。
表8 关系数据文件格式
属性 | 描述 |
example_id | 为每个句子内容分配的唯一id |
content | 句子的原始文本内容 |
metadata | 句子的附加信息(即从中提取句子的原始批准文件) |
tagged_sentence | 带有标记实体对的句子 |
relation_type | 标记实体对之间关系的类别 |
描述统计分析
对最终注释数据集的统计分析对于未来的工作至关重要,这些工作将使用CODE-ACCORD作为资源,将文本规则自动转换为机器可读格式,促进自动合规性检查(ACC)。
实体统计:
图3 实体类别分布
图4 每句话中实体数量的分布
我们最终的实体标注数据集包含862个句子。它有4297个实体,分布在四个类别中,如图3所示。图4中每句话中实体数量的图示分布提供了对注释数据的详细了解。可以看出,大多数句子最多包含五个实体。我们进一步分析了每个类别的文本序列长度,以及由此产生的直方图如图5所示。大多数实体跨度由一个或两个单词/标记组成。然而,总体而言,与其他类别相比,质量低下的文本跨度更长。
图5 标注文本跨度作为实体的序列长度分布
关系统计:
我们总共注释了862个句子,得出3329个关系。我们自动将句子中未标注的实体对识别为不相关的实体对,属于“无”类别。在分类为“无”的8104个样本中,我们在最终数据集中包含了1000个随机子集,以确保与其他关系的平衡分布。图6显示了十个类别中总共4329个关系的细分。此外,图7显示了每句话中关系数量的分布。大多数句子包含两三个关系,尽管少数句子包含十多个关系。
图6 关系类别的分布
图7 每句话中关系数量的分布
技术验证
标注质量
我们采用了多种方法来确保标注的质量。标注策略最初是基于文本中的两种基本信息类型(即实体和关系)以及可用方法设计的。然后通过多次迭代对其进行改进,并结合了几位领域专家的反馈。此外,我们与一个由两名熟悉该策略的标注者组成的团队进行了两轮测试注释,以在最终确定之前验证其可行性和覆盖率。
我们在多轮中对实体和关系进行了注释。第一轮是注释员的培训课程。他们有足够的时间审查注释策略和示例,并在开始新一轮之前根据要求提供额外的澄清。在这一轮之后,举行了问答环节,在几位领域专家的帮助下以解决任何查询。随后,实际的注释轮次开始了,共有七轮。在这些轮次中,每个句子都由两三个注释者独立注释。
为了衡量注释的质量,我们在整个轮次中计算了注释者间协议(IAA)。作为实体IAA,我们使用了实体的成对相对协议。注释器A与注释器B的一致性使用方程式127计算。只有当标记的文字跨度和指定的标签相等时,一个注释器注释的图元才被视为与另一个注释者注释的图元匹配。图8总结了在整个注释轮次中获得的实体IAA值的分布。平均IAA为0.37,最大值为0.66。任务的复杂性(即两步注释过程和特定领域的知识要求)和协议计算过程中使用的严格匹配标准可以被确定为导致这种分布的主要因素。然而,考虑到关系注释在四步过程之后的复杂性,我们将IAA计算仅限于实体。
A与B的协议= B与A实体匹配的实体数量 /B注释的实体总数
图8 实体IAA值的分布
为了提高注释的准确性,每一轮注释之后都会进行一轮策展,以确定最终的注释。注释组的三名成员是领域专家,他们担任数据管理员。他们的策划工作被仔细分配,与注释工作没有任何重叠。在策展过程中,所有实体的最终注释以及注释者之间存在分歧的关系由策展人决定,考虑到提出的注释和每个句子的整体实体关系表示。此外,每个句子的内容都与最终的实体关系表示或知识图进行了交叉检查,以确认其完整性,并验证文本中的所有相关信息都被准确捕获。
数据分割质量
除了完整的注释数据集外,CODE-ACCORD还为每种注释类型(即实体和关系)提供了两个数据分割:训练和测试。每个训练分割包括相应完整数据集的80%,用于训练机器学习模型。剩下的20%形成了测试分割,旨在评估模型性能。确保数据分割中的类分布相等至关重要,因为它直接影响模型训练和评估过程以及最终模型的整体准确性。因此,我们使用分层抽样来创建这些分割,确保每个分割中的类分布都反映了原始数据的类分布。我们使用探索性数据分析进一步验证了这一事实,如图9和图10所示,分别显示了训练和测试数据分割中实体和关系类别的分布,证明了这些分割中分布的一致性。