尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Label Studio Text 标签完全指南:文本对象配置、参数解析与 NER 偏移量精度控制

Label Studio Text 标签完全指南:文本对象配置、参数解析与 NER 偏移量精度控制 Label Studio Text 标签完全指南文本对象配置、参数解析与 NER 偏移量精度控制【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studioLabel Studio 通过 XML 风格的标签体系配置标注界面其中Text标签用于在界面上展示可标注的文本对象是 NLP 与 NER命名实体识别项目中最常用的对象标签之一。本文基于开源仓库的官方标签文档与前端编辑器源码完整讲解Text标签的参数、标注结果结构以及文本空白字符、换行符对偏移量计算的影响帮助你写出可复制、可运行的文本标注配置并得到精确的 span 结果。Text 标签是什么Text标签用于在标注界面中展示可以被标注的文本任何类型的文本内容都可以通过它呈现在任务中。它属于对象Object标签需要与控制Control标签如Labels、Choices、TextArea通过name/toName机制配合使用具体标签分类与连接方式可参考标签体系总览。适用数据类型text。在标注界面中Text标签的底层交互逻辑由前端编辑器中的文本区域TextRegion实现其标签与区域结果的文档定义分别位于 Text 标签定义 与 TextRegion 区域结果定义标签文档中的参数说明与前端实现中的 JSDoc 注释保持一致。快速上手两个最小示例示例一词级粒度的 NER 标注以下配置展示了一个词级word粒度的 NER 标注场景用Labels控制标签对Text对象中的文本进行命名实体标注View Text nametext-1 value$text granularityword highlightColor#ff0000 / Labels namener toNametext-1 Label valuePerson / Label valueLocation / /Labels /View配置要点value$text通过变量$text引用任务数据中text字段的文本内容变量机制可参考标签总览中的 Variables 一节granularityword将选中粒度限制为单词级避免标注者选中半个词highlightColor#ff0000指定高亮颜色为红色若不设置则默认使用标签Label的颜色Labels的toNametext-1必须与Text的nametext-1一致二者才能建立关联。示例二直接在标签中内嵌文本除了从任务数据中取值Text标签也可以直接内嵌静态文本内容Text namep1Some simple text with explanations/Text此写法适合在任务中固定展示说明性文字、指令或提示无需依赖任务数据字段。参数详解Text标签支持以下参数完整参数表位于 docs/source/includes/tags/text.mdParamTypeDefaultDescriptionnamestringName of the elementvaluestringData field containing text or a UR[valueType]url|texttextWhether the text is stored directly in uploaded data or needs to be loaded from a URL[saveTextResult]yes|noWhether to store labeled text along with the results. By default, doesnt store text forvalueTypeurl[encoding]none|base64|base64unicodeHow to decode values from encoded strings[selectionEnabled]booleantrueEnable or disable selection[highlightColor]stringHex string with highlight color, if not provided uses the labels color[showLabels]booleanWhether or not to show labels next to the region; unset (by default) — use editor settings; true/false — override settings[granularity]symbol|word|sentence|paragraphControl region selection granularity参数使用要点name必填元素名称作为控制标签toName的关联目标同一配置内需保持唯一。value文本来源字段通常是任务数据中的字段名也可以指向一个 URL配合valueTypeurl。valueType决定文本是直接存放在上传数据中text默认值还是需要从 URL 加载url。从源码注释看当使用valueTypeurl时默认不把文本内容随结果存储如需存储需显式设置saveTextResultyes。encoding当文本值以编码字符串形式存储时可用base64或base64unicode解码后展示默认none不解码。selectionEnabled是否允许选中文本默认true设为false后文本将不可选中标注适合纯展示场景。highlightColor高亮颜色十六进制字符串未提供时沿用对应标签的颜色。showLabels是否在区域旁显示标签。未设置时遵循编辑器全局设置显式设置true/false可覆盖全局设置。granularity区域选择粒度可选symbol符号/字符级、word词级、sentence句级、paragraph段落级控制标注者一次可选中文本的最小单位。标注结果的 JSON 结构Text标签产生的区域结果TextRegion由start、end与可选的text字段构成结果参数定义见 TextRegion 结果说明NameTypeDescriptionvalueObjectvalue.startstringposition of the start of the region in charactersvalue.endstringposition of the end of the region in characters[value.text]stringtext content of the region, can be skipped对应的标注结果示例 JSON{ value: { start: 2, end: 81, labels: [Car] } }其中start/end是按字符计数的偏移位置labels由关联的Labels标签生成text为可选字段当配置了saveTextResultyes时会把选中的文本内容一并写入结果。由于偏移量精确到字符位置读取结果时可用text[start_offset:end_offset]直接切片还原被标注的文本片段。空白字符与偏移量精度容易被忽略的关键细节官方文档特别强调了两点与结果精度直接相关的细节空格也会计入偏移量文本样例中的每一个空格在计算结果偏移量时都会被计数。这一点对 NER 这类 span 级标注任务至关重要——如果空格被折叠或裁剪start/end与原始文本将无法对齐。默认空白会被裁剪标签文档明确说明可用Style.htx-text{ white-space: pre-wrap; }/Style保留文本中的所有空格否则空格在展示和保存结果时会被裁剪trim进而破坏偏移量的准确性。在实际配置中如果需要在标注界面原样保留连续空格、缩进等空白字符建议在View中增加Style标签View Style.htx-text{ white-space: pre-wrap; }/Style Text nametext-1 value$text / Labels namener toNametext-1 Label valuePerson / Label valueLocation / /Labels /View换行符 \r\n 的处理Python 读取文件的正确姿势Label Studio 编辑器会把\r\n计为两个不同的符号并在界面上显示为\n\n导致行与行之间看起来多出额外间距更严重的是这会让偏移量与原始文本不一致。文档给出了两种推荐做法预处理文件将文件中的\r\n全部替换为\n使用 Python 的newline参数打开文件避免 Python 在读取时自动把\r\n转换为\nwith open(my-file.txt, encodingutf-8, newline) as f: text f.read()当你进行 span NER 标注、需要依据结果中的偏移量还原文本时这一点尤其重要因为只有保证读取方式与编辑器内部的字符计数一致才能正确执行text[start_offset:end_offset]从源码结构看 Text 标签的实现在仓库中Text标签的官方文档以 JSDoc 注释的形式维护在 web/libs/editor/src/tags/object/Text.js该文件同时导出TextModel并声明其区域类型为TextRegion区域结果的示例与字段说明定义在 web/libs/editor/src/regions/TextRegion.js。标签文档中的所有参数valueType、saveTextResult、encoding、selectionEnabled、granularity等与这两个源码文件中的 JSDoc 注释一一对应说明docs/source/tags/text.md中的文档与前端实现保持同步维护。从源码结构可以推断编辑器实际承担文本渲染与区域交互的底层对象是富文本区域RichText体系相关实现位于 web/libs/editor/src/regions/RichTextRegion.js 与 web/libs/editor/src/tags/object/RichText 目录Text标签文档即为其面向用户的配置入口。若你的任务数据本身是超文本HTML内容可改用 HyperText 标签 并结合HyperTextLabels控制标签进行标注。小结Text标签是 Label Studio 文本类标注任务的基石通过value 变量机制对接任务数据通过granularity控制标注粒度通过Labels等控制标签完成 NER 实体标注并最终产出以字符偏移量start/end为核心的结构化结果。实际使用中最需要注意的是空白与换行符的一致性——配合white-space: pre-wrap样式和newline的 Python 读取方式才能保证导出结果的偏移量可以直接用于切片还原原始文本。【免费下载链接】label-studioLabel Studio is a multi-type data labeling and annotation tool with standardized output format项目地址: https://gitcode.com/GitHub_Trending/la/label-studio创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表