vue做的个人网站,网页图片不显示,2021年中国企业500强,怎么做监测网站的浏览量1.doccano的安装与初始配置 1.1 doccano的用途 document classification 文本分类sequence labeling 序列标注#xff0c;用于命名实体识别sequence to sequence seq2seq#xff0c;用于翻译speech to text 语音转文本标注 命名实体标注 序列标注#xff08;如机器翻译… 1.doccano的安装与初始配置 1.1 doccano的用途 document classification 文本分类sequence labeling 序列标注用于命名实体识别sequence to sequence seq2seq用于翻译speech to text 语音转文本标注 命名实体标注 序列标注如机器翻译 文本分类任务如情感分析 官方文档 GitHub - doccano/doccano: Open source annotation tool for machine learning practitioners. 1.2 安装与初始配置 记的进虚拟环境 Step 1. 本地安装doccano请勿在AI Studio内部运行本地测试环境python3.8 $ pip install doccano Step 2. 初始化数据库和账户用户名和密码可替换为自定义值 # 初始化设置用户名 admin,密码passdoccano initdoccano createuser --username admin --password pass -------------------------个人设置---------------------------$ doccano init $ doccano createuser --username my_admin_name --password my_password Step 3. 启动doccano 在一个窗口启动doccano的WebServer保持窗口 $ doccano webserver --port 8000 在另一个窗口启动doccano的任务队列 $ doccano task 打开浏览器推荐Chrome在地址栏中输入http://127.0.0.1:8000/后回车即得以下界面。 2. doccano无法上传标注的数据 or 无法导出标注数据 2.1 上传下载数据---界面不断加载状态 在另一个终端中运行以下命令 doccano task 看一下原文档。 运行的话重新按一下回车键 2.2 端口被占用 启动的时候不要使用应用程序我是开着酷狗音乐软件这个软件占用了端口如果使用的话会报以下错误 OSError: [WinError 10013] 以一种访问权限不允许的方式做了一个访问套接字的尝试。 2.3 导出数据报错 导出数据时如果报错找到writer.py这个文件 C:\Users\Glenn.conda\envs\dataannotation\Lib\site-packages\backend\api\views\download\writer.py line 9,增加encodingutf-8 class LineWriter(BaseWriter): extension txt def write(self, records: Iterator[Record]) - str: files {} for record in records:filename os.path.join(self.tmpdir, f{record.user}.{self.extension}) if filename not in files: f open(filename, modea,encodingutf-8) #就是这个位置files[filename] ff files[filename]line self.create_line(record)f.write(f{line}\n) for f in files.values():f.close()save_file self.write_zip(files) for file in files:os.remove(file) return save_file 3.项目doccano来标注实体和关系 3.1 项目创建 参考文档 PaddleNLP/doccano.md at develop · PaddlePaddle/PaddleNLP · GitHub 登陆账户。点击右上角的LOGIN登录输入Step 2中设置的用户名和密码登陆。 UIE支持抽取与分类两种类型的任务根据实际需要创建一个新的项目 抽取式任务项目创建 创建项目时选择序列标注任务并勾选Allow overlapping entity及Use relation Labeling。适配命名实体识别、关系抽取、事件抽取、评价观点抽取等任务。 分类式任务项目创建 创建项目时选择文本分类任务。适配文本分类、句子级情感倾向分类等任务。 以抽取为例 创建项目。点击左上角的CREATE跳转至以下界面。 勾选序列标注Sequence Labeling填写项目名称Project name等必要信息勾选允许实体重叠Allow overlapping entity、使用关系标注Use relation labeling创建完成后项目首页视频提供了从数据导入到导出的七个步骤的详细说明【可以学习参考】。 3.2 数据上传 如图所示doccano总共支持4种格式的文本他们的区别如下 Textfile要求上传的文件为txt格式并且在打标的时候一整个txt文件在打标的时候显示为一页内容Textline要求上传的文件为txt格式并且在打标的时候该txt文件的一行文字会在打标的时候显示为一页内容JSONL是JSON Lines的简写每行是一个有效的JSON值。CoNLL是“中文依存语料库”是根据句子的依存结构而建立的树库。其中依存结构描述的是句子中词与词之间直接的句法关系。具体介绍看汉语树库。 注意 doccano官方推荐的文档编码格式为UTF-8。在使用JSONL格式的时候文字数据本身要符合JSON格式的规范。数据集中不要包含空行。 这里我们以Textline格式举例。 点击“TextLine格式”。然后在跳转到的界面里设置File Format和Encoding。然后点击下图中的“Drop files here…”来上传文件。最后点击右下角的“injest”将数据集添加到项目此处有拼写错误正确的拼写估计为“inject”或者ingest“。 此时再点击“数据集”的标签我们就可以看到一条一条的文本已经被添加到项目中了。将来我们将对这些文本进行打标。 3.3 添加标签 构建抽取式任务标签 抽取式任务包含Span与Relation两种标签类型Span指原文本中的目标信息片段如实体识别中某个类型的实体事件抽取中的触发词和论元Relation指原文本中Span之间的关系如关系抽取中两个实体SubjectObject之间的关系事件抽取中论元和触发词之间的关系。 注意这里只是添加将来可供选择的标签是项目配置的过程而不是进行文本标注。 我们点击左侧的“标签”按钮就来到了添加标签的界面。 设置标签。在Labels一栏点击ActionsCreate Label手动设置或者Import Labels从文件导入。 最上边Span表示实体标签Relation表示关系标签需要分别设置。 在弹出的“创建标签”窗口里面在第一行写上标签的名字。例如在NER的例子中可以写People、Location、Organization等。 在第二行添加该标签对应的快捷键---短键。例如我们给People设置的快捷键是p。将来在打标的时候右手用鼠标选中段落中的文字例如“白居易”左手在键盘按下快捷键p就可以把被选中的文字打标成“People”。 再往下我们可以给标签自定义颜色。 全部设置好以后点击右下角的“保存”按钮。 此时一个标签就添加完成了。我们以同样的方法添加其他所需要的标签。 3.4 任务标注 标注数据。点击每条数据最右边的Annotate按钮开始标记。标记页面右侧的标签类型Label Types开关可在实体标签和关系标签之间切换。 实体标注直接用鼠标选取文本即可标注实体。关系标注首先点击待标注的关系标签接着依次点击相应的头尾实体可完成关系标注。 3.4.1 命名实体识别 命名实体识别Named Entity Recognition简称NER是指识别文本中具有特定意义的实体。在开放域信息抽取中抽取的类别没有限制用户可以自己定义。 标注示例 示例中定义了时间、选手、赛事名称和得分四种Span类型标签。 3.4.2 关系抽取 关系抽取Relation Extraction简称RE是指从文本中识别实体并抽取实体之间的语义关系即抽取三元组实体一关系类型实体二。 标注示例 示例中定义了作品名、人物名和时间三种Span类型标签以及歌手、发行时间和所属专辑三种Relation标签。Relation标签由Subject对应实体指向Object对应实体。 3.4.3 事件抽取 事件抽取 (Event Extraction, 简称EE)是指从自然语言文本中抽取事件并识别事件类型和事件论元的技术。UIE所包含的事件抽取任务是指根据已知事件类型抽取该事件所包含的事件论元。 标注示例 示例中定义了地震触发词触发词、等级事件论元和时间事件论元三种Span标签以及时间和震级两种Relation标签。触发词标签统一格式为XX触发词XX表示具体事件类型上例中的事件类型是地震则对应触发词为地震触发词。Relation标签由触发词指向对应的事件论元。 3.4.4 评价观点抽取 评论观点抽取是指抽取文本中包含的评价维度、观点词。 标注示例 示例中定义了评价维度和观点词两种Span标签以及观点词一种Relation标签。Relation标签由评价维度指向观点词。 3.4.5 分类任务 标注示例 示例中定义了正向和负向两种类别标签对文本的情感倾向进行分类 3.5 数据导出 3.5.1 导出抽取式任务数据 导出数据。在Datasets一栏点击Actions、Export Dataset导出已标注的数据。 选择导出的文件类型为JSONL(relation)导出数据示例 { id: 38, text: 百科名片你知道我要什么是歌手高明骏演唱的一首歌曲1989年发行收录于个人专辑《丛林男孩》中, relations: [{ id: 20, from_id: 51, to_id: 53, type: 歌手},{ id: 21, from_id: 51, to_id: 55, type: 发行时间},{ id: 22, from_id: 51, to_id: 54, type: 所属专辑}], entities: [{ id: 51, start_offset: 4, end_offset: 11, label: 作品名},{ id: 53, start_offset: 15, end_offset: 18, label: 人物名},{ id: 54, start_offset: 42, end_offset: 46, label: 作品名},{ id: 55, start_offset: 26, end_offset: 31, label: 时间}]} 标注数据保存在同一个文本文件中每条样例占一行且存储为json格式其包含以下字段 id: 样本在数据集中的唯一标识ID。text: 原始文本数据。entities: 数据中包含的Span标签每个Span标签包含四个字段 id: Span在数据集中的唯一标识ID。start_offset: Span的起始token在文本中的下标。end_offset: Span的结束token在文本中下标的下一个位置。label: Span类型。relations: 数据中包含的Relation标签每个Relation标签包含四个字段 id: (Span1, Relation, Span2)三元组在数据集中的唯一标识ID不同样本中的相同三元组对应同一个ID。from_id: Span1对应的标识ID。to_id: Span2对应的标识ID。type: Relation类型。 3.5.2 导出分类式任务数据 选择导出的文件类型为JSONL导出数据示例 { id: 41, data: 大年初一就把车前保险杠给碰坏了保险杠和保险公司 真够倒霉的我决定步行反省。, label: [ 负向]} 标注数据保存在同一个文本文件中每条样例占一行且存储为json格式其包含以下字段 id: 样本在数据集中的唯一标识ID。data: 原始文本数据。label: 文本对应类别标签。 3.6.添加成员、添加标注指南、开始给文本打标、审核标注结果、阅读项目信息 见链接 如何使用文本标注工具——doccano Django 实现管理员登录这个过程需要Django 占个坑位后续补充 在为机器学习的语料库打标的时候由于语料库一般比较大需要多个人协同完成语料库的打标工作。也就是在初始配置doccano的时候创建的超级用户admin。因此为了让其他人参与到打标项目中来我们首先需要为其他成员创建账户。 # 多人标注设置用户名 admin,密码pass doccano createuser --username user1 --password 123456 3.7.标注完数据转化 该章节详细说明如何通过doccano.py脚本对doccano平台导出的标注数据进行转换一键生成训练/验证/测试集。 3.7.1 抽取式任务数据转换 当标注完成后在 doccano 平台上导出 JSONL(relation) 形式的文件并将其重命名为 doccano_ext.json 后放入 ./data 目录下。通过 doccano.py 脚本进行数据形式转换然后便可以开始进行相应模型训练。 python doccano.py \--doccano_file ./data/doccano_ext.json \--task_type ext \--save_dir ./data \--negative_ratio 5 3.7.2 分类式任务数据转换 当标注完成后在 doccano 平台上导出 JSON 形式的文件并将其重命名为 doccano_cls.json 后放入 ./data 目录下。在数据转换阶段我们会自动构造用于模型训练需要的prompt信息。例如句子级情感分类中prompt为情感倾向[正向,负向]可以通过prompt_prefix和options参数进行声明。通过 doccano.py 脚本进行数据形式转换然后便可以开始进行相应模型训练。 python doccano.py \--doccano_file ./data/doccano_cls.json \--task_type cls \--save_dir ./data \--splits 0.8 0.1 0.1 \--prompt_prefix 情感倾向 \--options 正向 负向 可配置参数说明 doccano_file: 从doccano导出的数据标注文件。save_dir: 训练数据的保存目录默认存储在data目录下。negative_ratio: 最大负例比例该参数只对抽取类型任务有效适当构造负例可提升模型效果。负例数量和实际的标签数量有关最大负例数量 negative_ratio * 正例数量。该参数只对训练集有效默认为5。为了保证评估指标的准确性验证集和测试集默认构造全负例。splits: 划分数据集时训练集、验证集所占的比例。默认为[0.8, 0.1, 0.1]表示按照8:1:1的比例将数据划分为训练集、验证集和测试集。task_type: 选择任务类型可选有抽取和分类两种类型的任务。options: 指定分类任务的类别标签该参数只对分类类型任务有效。prompt_prefix: 声明分类任务的prompt前缀信息该参数只对分类类型任务有效。is_shuffle: 是否对数据集进行随机打散默认为True。seed: 随机种子默认为1000. 备注 默认情况下 doccano.py 脚本会按照比例将数据划分为 train/dev/test 数据集每次执行 doccano.py 脚本将会覆盖已有的同名数据文件在模型训练阶段我们推荐构造一些负例以提升模型效果在数据转换阶段我们内置了这一功能。可通过negative_ratio控制自动构造的负样本比例负样本数量 negative_ratio * 正样本数量。对于从doccano导出的文件默认文件中的每条数据都是经过人工正确标注的。 各个任务标注文档参考 https://github.com/PaddlePaddle/PaddleNLP/blob/develop/model_zoo/uie/doccano.md