Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
PaddlePaddle
PaddleHub
提交
2bf981c2
P
PaddleHub
项目概览
PaddlePaddle
/
PaddleHub
大约 1 年 前同步成功
通知
282
Star
12117
Fork
2091
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
200
列表
看板
标记
里程碑
合并请求
4
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
PaddleHub
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
200
Issue
200
列表
看板
标记
里程碑
合并请求
4
合并请求
4
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
提交
2bf981c2
编写于
4月 21, 2019
作者:
Z
Zeyu Chen
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
update Senta
上级
bb384c41
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
34 addition
and
59 deletion
+34
-59
demo/senta/README.md
demo/senta/README.md
+15
-8
demo/senta/cli_demo.sh
demo/senta/cli_demo.sh
+0
-0
demo/senta/infer_by_code.py
demo/senta/infer_by_code.py
+0
-46
demo/senta/run_finetune.sh
demo/senta/run_finetune.sh
+2
-3
demo/senta/senta_demo.py
demo/senta/senta_demo.py
+15
-0
demo/senta/senta_finetune.py
demo/senta/senta_finetune.py
+0
-0
demo/senta/test/test.txt
demo/senta/test/test.txt
+2
-2
未找到文件。
demo/senta/README.md
浏览文件 @
2bf981c2
#
s
enta
#
PaddleHub S
enta
## 关于
本示例展示如何使用
s
enta Module进行预测。
本示例展示如何使用
PaddleHub S
enta Module进行预测。
senta是中文情感分析模型,可以用于进行中文句子的情感分析,输出结果为
`{正向/中性/负向}`
中的一个,关于模型的训练细节,请查看
[
senta
](
https://github.com/baidu/senta
)
Senta是百度NLP开放的中文情感分析模型,可以用于进行中文句子的情感分析,输出结果为
`{正向/中性/负向}`
中的一个,关于模型的结构细节,请查看
[
Senta
](
https://github.com/baidu/senta
)
, 本示例代码选择的是Senta-BiLSTM模型。
## 准备工作
...
...
@@ -27,18 +27,25 @@ $ pip install --upgrade paddlepaddle
## 命令行方式预测
`
infer.sh`
给出了使用命令行
调用Module预测的示例脚本
通过以下命令
试
验下效果
`
cli_demo.sh`
给出了使用命令行接口 (Command Line Interface)
调用Module预测的示例脚本
通过以下命令
体
验下效果
```
shell
$
sh
infer
.sh
$
sh
cli_demo
.sh
```
## 通过python API预测
`
infer_by_code
.py`
给出了使用python API调用Module预测的示例代码
`
senta_demo
.py`
给出了使用python API调用Module预测的示例代码
通过以下命令试验下效果
```
shell
python infer_by_code.py
python senta_demo.py
```
## 通过PaddleHub Finetune API微调
`senta_finetune.py`
给出了如何使用Senta模型的句子特征进行Fine-tuning的实例代码。
可以运行以下命令在ChnSentiCorp数据集上进行Fine-tuning.
```
shell
$
sh run_finetune.sh
```
demo/senta/
infer
.sh
→
demo/senta/
cli_demo
.sh
浏览文件 @
2bf981c2
文件已移动
demo/senta/infer_by_code.py
已删除
100644 → 0
浏览文件 @
bb384c41
import
os
import
paddlehub
as
hub
def
infer_with_input_text
():
# get senta module
senta
=
hub
.
Module
(
name
=
"senta"
)
test_text
=
[
"这家餐厅很好吃"
,
"这部电影真的很差劲"
]
# get the input keys for signature 'sentiment_classify'
data_format
=
senta
.
processor
.
data_format
(
sign_name
=
'sentiment_classify'
)
key
=
list
(
data_format
.
keys
())[
0
]
# set input dict
input_dict
=
{
key
:
test_text
}
# execute predict and print the result
results
=
senta
.
sentiment_classify
(
data
=
input_dict
)
for
index
,
result
in
enumerate
(
results
):
hub
.
logger
.
info
(
"sentence %d segmented result: %s"
%
(
index
+
1
,
result
[
'sentiment_key'
]))
def
infer_with_input_file
():
# get senta module
senta
=
hub
.
Module
(
name
=
"senta"
)
# get the input keys for signature 'sentiment_classify'
data_format
=
senta
.
processor
.
data_format
(
sign_name
=
'sentiment_classify'
)
key
=
list
(
data_format
.
keys
())[
0
]
# parse input file
test_file
=
os
.
path
.
join
(
"test"
,
"test.txt"
)
test_text
=
hub
.
io
.
parser
.
txt_parser
.
parse
(
test_file
)
# set input dict
input_dict
=
{
key
:
test_text
}
results
=
senta
.
sentiment_classify
(
data
=
input_dict
)
for
index
,
result
in
enumerate
(
results
):
hub
.
logger
.
info
(
"sentence %d segmented result: %s"
%
(
index
+
1
,
result
[
'sentiment_key'
]))
if
__name__
==
"__main__"
:
infer_with_input_text
()
demo/senta/run_
classifier
.sh
→
demo/senta/run_
finetune
.sh
浏览文件 @
2bf981c2
export
CUDA_VISIBLE_DEVICES
=
0
# User can select chnsenticorp, nlpcc_dbqa, lcqmc for different task
DATASET
=
"chnsenticorp"
CKPT_DIR
=
"./ckpt_
${
DATASET
}
"
python
-u
text_classifier
.py
\
python
-u
senta_finetune
.py
\
--batch_size
=
24
\
--use_gpu
=
False
\
--checkpoint_dir
=
${
CKPT_DIR
}
\
--num_epoch
=
10
--num_epoch
=
3
demo/senta/senta_demo.py
0 → 100644
浏览文件 @
2bf981c2
# coding: utf-8
import
os
import
paddlehub
as
hub
if
__name__
==
"__main__"
:
# Load Senta-BiLSTM module
senta
=
hub
.
Module
(
name
=
"senta"
)
test_text
=
[
"这家餐厅很好吃"
,
"这部电影真的很差劲"
]
input_dict
=
{
"text"
:
test_text
}
results
=
senta
.
sentiment_classify
(
data
=
input_dict
)
for
index
,
result
in
enumerate
(
results
):
print
(
test_text
[
index
],
result
[
'sentiment_key'
])
demo/senta/
text_classifier
.py
→
demo/senta/
senta_finetune
.py
浏览文件 @
2bf981c2
文件已移动
demo/senta/test/test.txt
浏览文件 @
2bf981c2
这
部电影真的很赞
售后太差!
这
家餐厅很好吃
这部电影真的很差劲
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录