Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
models
提交
344d03bf
M
models
项目概览
PaddlePaddle
/
models
大约 1 年 前同步成功
通知
222
Star
6828
Fork
2962
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
602
列表
看板
标记
里程碑
合并请求
255
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
M
models
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
602
Issue
602
列表
看板
标记
里程碑
合并请求
255
合并请求
255
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
未验证
提交
344d03bf
编写于
12月 12, 2020
作者:
K
kinghuin
提交者:
GitHub
12月 12, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
fix lac typo and image url (#5028)
上级
03e3dd97
变更
4
显示空白变更内容
内联
并排
Showing
4 changed file
with
17 addition
and
16 deletion
+17
-16
PaddleNLP/examples/lexical_analysis/README.md
PaddleNLP/examples/lexical_analysis/README.md
+10
-9
PaddleNLP/examples/lexical_analysis/eval.py
PaddleNLP/examples/lexical_analysis/eval.py
+2
-2
PaddleNLP/examples/lexical_analysis/predict.py
PaddleNLP/examples/lexical_analysis/predict.py
+2
-2
PaddleNLP/examples/lexical_analysis/train.py
PaddleNLP/examples/lexical_analysis/train.py
+3
-3
未找到文件。
PaddleNLP/examples/lexical_analysis/README.md
浏览文件 @
344d03bf
...
...
@@ -4,7 +4,7 @@
词法分析任务的输入是一个字符串(我们后面使用『句子』来指代它),而输出是句子中的词边界和词性、实体类别。序列标注是词法分析的经典建模方式,我们使用基于 GRU 的网络结构学习特征,将学习到的特征接入 CRF 解码层完成序列标注。模型结构如下所示:
<br
/>
![
GRU-CRF-MODEL
](
https://
github.com/PaddlePaddle/models/blob/develop/PaddleNLP/lexical_analysi
s/gru-crf-model.png
)
![
GRU-CRF-MODEL
](
https://
paddlenlp.bj.bcebos.com/img
s/gru-crf-model.png
)
1.
输入采用 one-hot 方式表示,每个字以一个 id 表示
2.
one-hot 序列通过字表,转换为实向量表示的字向量序列;
...
...
@@ -18,7 +18,9 @@
-
Python >= 3.6
-
PaddlePaddle >= 2.0.0,安装方式请参考
[
快速安装
](
https://www.paddlepaddle.org.cn/install/quick
)
。
-
PaddlePaddle >= 2.0.0rc1,安装方式请参考
[
快速安装
](
https://www.paddlepaddle.org.cn/install/quick
)
。
-
PaddleNLP >= 2.0.0b, 安装方式:
`pip install paddlenlp>=2.0.0b`
### 2.2 数据准备
...
...
@@ -59,34 +61,33 @@ export CUDA_VISIBLE_DEVICES=0,1 # 支持多卡训练
```
bash
python
-m
paddle.distributed.launch train.py
\
--
root
./lexical_analysis_dataset_tiny
\
--
data_dir
./lexical_analysis_dataset_tiny
\
--model_save_dir
./save_dir
\
--epochs
10
\
--batch_size
32
\
--use_gpu
True
--use_gpu
True
\
# --init_checkpoint ./save_dir/final
```
其中
root 是数据集所在文件夹路径
。
其中
data_dir 是数据集所在文件夹路径,init_checkpoint 是模型加载路径,通过设置init_checkpoint可以启动增量训练
。
### 2.4 模型评估
通过加载训练保存的模型,可以对测试集数据进行验证,启动方式如下:
```
bash
python eval.py
--
root
./lexical_analysis_dataset_tiny
\
python eval.py
--
data_dir
./lexical_analysis_dataset_tiny
\
--init_checkpoint
./save_dir/final
\
--batch_size
32
\
--use_gpu
True
```
其中 init_checkpoint 是模型加载路径。
### 2.5 模型预测
对无标签数据可以启动模型预测:
```
bash
python predict.py
--
root
./lexical_analysis_dataset_tiny
\
python predict.py
--
data_dir
./lexical_analysis_dataset_tiny
\
--init_checkpoint
./save_dir/final
\
--batch_size
32
\
--use_gpu
True
...
...
PaddleNLP/examples/lexical_analysis/eval.py
浏览文件 @
344d03bf
...
...
@@ -28,7 +28,7 @@ from model import BiGruCrf
# yapf: disable
parser
=
argparse
.
ArgumentParser
(
__doc__
)
parser
.
add_argument
(
"--
root
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--
data_dir
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--init_checkpoint"
,
type
=
str
,
default
=
None
,
help
=
"Path to init model."
)
parser
.
add_argument
(
"--batch_size"
,
type
=
int
,
default
=
300
,
help
=
"The number of sequences contained in a mini-batch."
)
parser
.
add_argument
(
"--max_seq_len"
,
type
=
int
,
default
=
64
,
help
=
"Number of words of the longest seqence."
)
...
...
@@ -44,7 +44,7 @@ def evaluate(args):
paddle
.
set_device
(
"gpu"
if
args
.
use_gpu
else
"cpu"
)
# create dataset.
test_dataset
=
LacDataset
(
args
.
root
,
mode
=
'test'
)
test_dataset
=
LacDataset
(
args
.
data_dir
,
mode
=
'test'
)
batchify_fn
=
lambda
samples
,
fn
=
Tuple
(
Pad
(
axis
=
0
,
pad_val
=
0
),
# word_ids
Stack
(),
# length
...
...
PaddleNLP/examples/lexical_analysis/predict.py
浏览文件 @
344d03bf
...
...
@@ -27,7 +27,7 @@ from model import BiGruCrf
# yapf: disable
parser
=
argparse
.
ArgumentParser
(
__doc__
)
parser
.
add_argument
(
"--
root
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--
data_dir
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--init_checkpoint"
,
type
=
str
,
default
=
None
,
help
=
"Path to init model."
)
parser
.
add_argument
(
"--batch_size"
,
type
=
int
,
default
=
300
,
help
=
"The number of sequences contained in a mini-batch."
)
parser
.
add_argument
(
"--max_seq_len"
,
type
=
int
,
default
=
64
,
help
=
"Number of words of the longest seqence."
)
...
...
@@ -43,7 +43,7 @@ def infer(args):
paddle
.
set_device
(
"gpu"
if
args
.
use_gpu
else
"cpu"
)
# create dataset.
infer_dataset
=
LacDataset
(
args
.
root
,
mode
=
'infer'
)
infer_dataset
=
LacDataset
(
args
.
data_dir
,
mode
=
'infer'
)
batchify_fn
=
lambda
samples
,
fn
=
Tuple
(
Pad
(
axis
=
0
,
pad_val
=
0
),
# word_ids
...
...
PaddleNLP/examples/lexical_analysis/train.py
浏览文件 @
344d03bf
...
...
@@ -28,7 +28,7 @@ from paddlenlp.metrics import ChunkEvaluator
# yapf: disable
parser
=
argparse
.
ArgumentParser
(
__doc__
)
parser
.
add_argument
(
"--
root
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--
data_dir
"
,
type
=
str
,
default
=
None
,
help
=
"The folder where the dataset is located."
)
parser
.
add_argument
(
"--init_checkpoint"
,
type
=
str
,
default
=
None
,
help
=
"Path to init model."
)
parser
.
add_argument
(
"--model_save_dir"
,
type
=
str
,
default
=
None
,
help
=
"The model will be saved in this path."
)
parser
.
add_argument
(
"--epochs"
,
type
=
int
,
default
=
10
,
help
=
"Corpus iteration num."
)
...
...
@@ -51,8 +51,8 @@ def train(args):
paddle
.
set_device
(
"cpu"
)
# create dataset.
train_dataset
=
LacDataset
(
args
.
root
,
mode
=
'train'
)
test_dataset
=
LacDataset
(
args
.
root
,
mode
=
'test'
)
train_dataset
=
LacDataset
(
args
.
data_dir
,
mode
=
'train'
)
test_dataset
=
LacDataset
(
args
.
data_dir
,
mode
=
'test'
)
batchify_fn
=
lambda
samples
,
fn
=
Tuple
(
Pad
(
axis
=
0
,
pad_val
=
0
),
# word_ids
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录