Sunrise

`长路漫漫,唯剑作伴`


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

使用UER进行开庭公告命名实体识别

发表于 2022-10-13 | 分类于 自然语言处理

使用UER进行开庭公告命名实体识别

项目概述

上篇文章已经讲述了,如何使用UER进行NER任务微调训练,接下来咱就开始实战了,我这边要做的一个任务是司法文书的信息抽取,简单描述就是抽取出案号、案由、当事人、法院、法庭等信息,不过整体的任务还是比较复杂的,并且司法文书种类也比较多,有裁判文书这种长文本,也有开庭公告、法院公告这种短文本,我这边打算先从开庭公告的一些短文本作为切入点,先做一些尝试,看看效果。

我这边的一个实验计划暂定为:

  1. 先使用一定量的数据,直接进行NER微调训练,记录训练效果,如precision、recall和f1的值;
  2. 在语料集上先进行词向量微调(也就是bert finetune),并生成自己的词表;
  3. 基于步骤2得到的模型再次进行NER微调训练,对比与步骤1的评测值是否有提升;
  4. 如果方案可行,会再扩充数据集再次重复步骤2、3。
阅读全文 »

CLUE命名实体识别

发表于 2022-10-06 | 分类于 自然语言处理

使用GitHub项目:https://github.com/dbiir/UER-py

项目完整文档:https://github.com/dbiir/UER-py/wiki/%E5%BF%AB%E9%80%9F%E4%B8%8A%E6%89%8B

预训练模型仓库:https://github.com/dbiir/UER-py/wiki/%E9%A2%84%E8%AE%AD%E7%BB%83%E6%A8%A1%E5%9E%8B%E4%BB%93%E5%BA%93

上篇文章是使用huggingface transformer中预训练好的命名实体识别模型来进行实体抽取,但是在实际任务中,一般需要根据自己的数据集再进行微调,所以就继续研究如何进行微调,最终定位到UER-py这个工具包,所以这里先研究下这个工具怎么用。

阅读全文 »

Hyper Parameter Tuning

发表于 2022-09-24 | 分类于 自然语言处理

Hyper Parameter Tuning

Hand Tuning

Good Code Style

  • 将各个参数的设置部分集中在⼀起。 如果参数的设置分布在代码的各个地⽅, 那么修改的过程想必会⾮常痛苦。
  • 可以输出模型的损失函数值以及训练集和验证集上的准确率。
  • 可以考虑设计⼀个⼦程序,可以根据给定的参数, 启动训练并监控和周期性保存评估结果。 再由⼀个主程序,分配参数以及并⾏启动⼀系列⼦程序。

General to Specific

  • 建议先参考相关论⽂,以论⽂中给出的参数作为初始参数。 ⾄少论⽂中的参数,是个不差的结果。
  • 如果找不到参考,那么只能⾃⼰尝试了。 可以先从⽐较重要,对实验结果影响⽐较⼤的参数开始, 同时固定其他参数,得到⼀个差不多的结果以后,在这个结果的基础上,再调其他参数。 例如学习率⼀般就⽐正则值,dropout值重要的话,学习率设置的不合适, 不仅结果可能变差,模型甚⾄会⽆法收敛。
  • 如果实在找不到⼀组参数让模型收敛。那么就需要检查, 是不是其他地⽅出了问题,例如模型实现,数据等等。
阅读全文 »

Out of Vocabulary

发表于 2022-09-17 | 分类于 自然语言处理

Out of Vocabulary

我们在NLP任务中一般都会有一个词表,这个词表一般可以使用一些大牛论文中的词表或者一些大公司的词表,或者是从自己的数据集中提取的词。但是无论当后续的训练还是预测,总有可能会出现并不包含在词表中的词,这种情况叫做Out of Vocabulary。

那么当我们遇到OOV的问题时,有以下解决方式。

Ignore

直接忽略OOV的情形,也就是不做处理,效果肯定不好。

UNK

这种方式就是把所有超出词表的词,转换为统一的\<unk>标识,对于性能的提升有限,特别是当超出词表的词是比较重要的词时。

阅读全文 »

文本摘要生成的评估指标

发表于 2022-09-11 | 分类于 自然语言处理

文本摘要生成的评估指标

ROUGE-N

这里的N就是指的n-gram,n=1时叫ROUGE-1(也叫Unigrams);n=2时,叫ROUGE-2(也叫Bigrams);n=3时,叫ROUGE-3(Trigrams)。

阅读全文 »

Python RSA加解密

发表于 2022-09-06 | 分类于 python编程

Python RSA加解密

RSA是一种非对称加密技术,在软件、网页中已得到广泛应用,特别对于爬虫来说,会经常遇到使用RSA加密的网站,掌握RSA加密和解密的流程,在遇到相关网站时,可以第一时间辨别出网站的加密逻辑,从而快速破解。

利用python实现RSA加密,需要安装模块
pip install pycryptodome

阅读全文 »

NLG 采样策略

发表于 2022-09-03 | 分类于 自然语言处理

NLG 采样策略

上篇文章中学习了NLG的解码策略,主要包括greedy search、beam search,如果不太记得了可以再去温习一下,然后接下来我们来看看这些解码策略会存在哪些问题,是否还可以从其他角度来提高文本的生成效果。

这幅图展示了每个时间步,生成某个单词的可能性,我们发现beam search在每一步的概率值都是比较大的,但是如果是真实人类的话,其实是比较随机的(人说话的内容比较随机,富有多样性)。这主要是因为beam search本身就是在根据最大概率去生成句子,但是最大概率不等于最好,上篇文章中我们有提到

  • 当k比较小时,生成的句子可能会不符合语法规则,不自然,无意义,不正确(比较死板);
  • 当k比较大时,计算量会增大,虽然生成的句子更通顺,但是也存在偏离主题的可能性。

此外因为模型生成时,一定程度上依赖于已经生成的句子,所以一味的选取概率最大的,可能会使句子的生成陷入不断地重复循环中,所以针对beam search这些特点,为了可以生成更多样化的句子(引入一定的随机性)又不偏离主题,以下几种采样策略被研究者提出。

阅读全文 »

NLG解码策略

发表于 2022-08-28 | 分类于 自然语言处理

NLG解码策略

自然语言生成(Natural Language Generation,简称NLG),是自然语言处理领域的一个重要分支,在文本摘要生成任务中,另一个重要的分支是自然语言理解(Natural Language Understanding,简称NLU)。前面我们已经学习了seq2seq模型结构,其主要分为Encoder和Decoder两大组件,其实正是对应了NLU和NLG两大分支,seq2seq模型最后经过一个softmax层,在每个时间步均得到一个词表大小的概率分布,如何利用这些概率分布得到最终的预测句子就是本节学习的解码策略。

上篇构建文本摘要baseline时,我们就有提到过解码方法,当时采用的Teacher forcing的技巧,使用了真实标签,避免前面的步骤预测出错被无限放大的问题,但是在实际预测时因为没有真实标签,往往实际预测效果不一定好,所以寻找可行的解码策略是一项重点工作。

阅读全文 »

构建文本摘要Baseline并且开始训练

发表于 2022-08-27 | 分类于 自然语言处理

构建文本摘要Baseline并且开始训练

基于前面word2vec的原理与训练实践、seq2seq模型的原理与实践以及attention机制,已经分别写了相关的文章来记录,此篇文章就是基于前面所学,开始着手训练文本摘要模型,当然仅是一个比较普通的baseline,后面还会不断优化模型。

构建seq2seq模型

首先利用上一节seq2seq实践中,封装的encoder、decoder和attention,集成到此模型中来,另外就是增加了一个训练技巧–teacher forcing。那么teacher forcing是啥意思呢?

阅读全文 »

使用tensorflow实现seq2seq

发表于 2022-08-21 | 分类于 自然语言处理

使用tensorflow实现seq2seq

上篇文章记录了seq2seq和attention机制的基本原理,这篇文章趁热打铁看看如何自己写代码实现。

tf2的一些API操作

推荐一个学习tensorflow的教程:https://github.com/lyhue1991/eat_tensorflow2_in_30_days

1
import tensorflow as tf

连接操作(tf.concat)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
t1 = [[1, 2, 3], [4, 5, 6]] # 2, 3
t2 = [[7, 8, 9], [10, 11, 12]]
tf.concat([t1, t2], axis=0)

<tf.Tensor: shape=(4, 3), dtype=int32, numpy=
array([[ 1, 2, 3],
[ 4, 5, 6],
[ 7, 8, 9],
[10, 11, 12]])>


tf.concat([t1, t2], axis=1)

<tf.Tensor: shape=(2, 6), dtype=int32, numpy=
array([[ 1, 2, 3, 7, 8, 9],
[ 4, 5, 6, 10, 11, 12]])>
阅读全文 »
1…345…12
chenxi

chenxi

120 日志
12 分类
224 标签
Links
  • Docle
  • Swift
© 2025 chenxi
由 Hexo 强力驱动
|
主题 — NexT.Pisces v5.1.4