README.md 3.2 KB
Newer Older
W
wuzewu 已提交
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# SentaBiLSTM API说明

## sentiment_classify(texts=[], data={}, use_gpu=False, batch_size=1)

senta_bilstm预测接口,预测输入句子的情感分类(二分类,积极/消极)

**参数**

* texts(list): 待预测数据,如果使用texts参数,则不用传入data参数,二选一即可
* data(dict): 预测数据,key必须为text,value是带预测数据。如果使用data参数,则不用传入texts参数,二选一即可。建议使用texts参数,data参数后续会废弃。
* use_gpu(bool): 是否使用GPU预测,如果使用GPU预测,则在预测之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置
* batch_size(int): 批处理大小

**返回**

* results(list): 情感分类结果

S
Steffy-zxf 已提交
18
### context(trainable=False, max_seq_len=128, num_slots=1)
W
wuzewu 已提交
19

S
Steffy-zxf 已提交
20
获取该Module的预训练program以及program相应的输入输出。
W
wuzewu 已提交
21 22 23

**参数**

S
Steffy-zxf 已提交
24 25 26
* trainable(bool): trainable=True表示program中的参数在Fine-tune时需要微调,否则保持不变。
* max_seq_len(int): 模型使用的最大序列长度。
* num_slots(int): 输入到模型所需要的文本个数,如完成单句文本分类任务,则num_slots=1;完成pointwise文本匹配任务,则num_slots=2;完成pairtwise文本匹配任务,则num_slots=3;
W
wuzewu 已提交
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95

**返回**

* inputs(dict): program的输入变量
* outputs(dict): program的输出变量
* main_program(Program): 带有预训练参数的program

## get_labels()

获取senta_bilstm的类别

**返回**

* labels(dict): senta_bilstm的类别(二分类,积极/消极)

## get_vocab_path()

获取预训练时使用的词汇表

**返回**

* vocab_path(str): 词汇表路径

# SentaBiLSTM 服务部署

PaddleHub Serving可以部署一个在线情感分析服务,可以将此接口用于在线web应用。

## 第一步:启动PaddleHub Serving

运行启动命令:
```shell
$ hub serving start -m senta_bilstm  
```

启动时会显示加载模型过程,启动成功后显示
```shell
Loading senta_bilstm successful.
```

这样就完成了服务化API的部署,默认端口号为8866。

**NOTE:** 如使用GPU预测,则需要在启动服务之前,请设置CUDA_VISIBLE_DEVICES环境变量,否则不用设置。

## 第二步:发送预测请求

配置好服务端,以下数行代码即可实现发送预测请求,获取预测结果

```python
import request
import json

# 待预测数据
text = ["这家餐厅很好吃", "这部电影真的很差劲"]

# 设置运行配置
# 对应本地预测senta_bilstm.sentiment_classify(texts=text, batch_size=1, use_gpu=True)
data = {"texts": text, "batch_size": 1, "use_gpu":True}

# 指定预测方法为senta_bilstm并发送post请求,content-type类型应指定json方式
# HOST_IP为服务器IP
url = "http://HOST_IP:8866/predict/senta_bilstm"
headers = {"Content-Type": "application/json"}
r = requests.post(url=url, headers=headers, data=json.dumps(data))

# 打印预测结果
print(json.dumps(r.json(), indent=4, ensure_ascii=False))
```

关于PaddleHub Serving更多信息参考[服务部署](https://github.com/PaddlePaddle/PaddleHub/blob/release/v1.6/docs/tutorial/serving.md)
S
Steffy-zxf 已提交
96 97 98 99 100 101 102 103 104 105 106 107 108 109

## 更新历史

* 1.0.0

  初始发布

* 1.1.0

  大幅提升预测性能

* 1.2.0

  模型升级,支持用于文本分类,文本匹配等各种任务迁移学习