未验证 提交 497e3cea 编写于 作者: jm_12138's avatar jm_12138 提交者: GitHub

update lac (#2187)

上级 3fcf01d5
...@@ -245,7 +245,8 @@ ...@@ -245,7 +245,8 @@
- 关于PaddleHub Serving更多信息参考:[服务部署](../../../../docs/docs_ch/tutorial/serving.md) - 关于PaddleHub Serving更多信息参考:[服务部署](../../../../docs/docs_ch/tutorial/serving.md)
- ### Gradio APP 支持
从 PaddleHub 2.3.1 开始支持使用链接 http://127.0.0.1:8866/gradio/lac 在浏览器中访问 lac 的 Gradio APP。
## 五、更新历史 ## 五、更新历史
...@@ -287,6 +288,10 @@ ...@@ -287,6 +288,10 @@
移除 fluid api 移除 fluid api
* 2.4.0
添加 Gradio APP 支持
- ```shell - ```shell
$ hub install lac==2.3.0 $ hub install lac==2.4.0
``` ```
# -*- coding: UTF-8 -*-
""" """
本模块实现AC自动机封装为Ahocorasick类,用于进行词典的多模匹配。 本模块实现AC自动机封装为Ahocorasick类,用于进行词典的多模匹配。
""" """
......
# -*- coding: UTF-8 -*-
""" """
该模块实现用户自定义词典的功能 该模块实现用户自定义词典的功能
""" """
from io import open from io import open
from .ahocorasick import Ahocorasick from .ahocorasick import Ahocorasick
......
# -*- coding:utf-8 -*-
from __future__ import absolute_import from __future__ import absolute_import
from __future__ import division from __future__ import division
from __future__ import print_function from __future__ import print_function
...@@ -33,7 +32,7 @@ class DataFormatError(Exception): ...@@ -33,7 +32,7 @@ class DataFormatError(Exception):
@moduleinfo( @moduleinfo(
name="lac", name="lac",
version="2.3.0", version="2.4.0",
summary= summary=
"Baidu's open-source lexical analysis tool for Chinese, including word segmentation, part-of-speech tagging & named entity recognition", "Baidu's open-source lexical analysis tool for Chinese, including word segmentation, part-of-speech tagging & named entity recognition",
author="baidu-nlp", author="baidu-nlp",
...@@ -412,3 +411,11 @@ class LAC: ...@@ -412,3 +411,11 @@ class LAC:
raise DataFormatError raise DataFormatError
return input_data return input_data
def create_gradio_app(self):
import gradio as gr
return gr.Interface(self.cut,
gr.Text(label='text'),
gr.JSON(label='results'),
title='lac',
allow_flagging='never')
# -*- coding:utf-8 -*-
import io import io
import numpy as np import numpy as np
......
...@@ -8,6 +8,7 @@ os.environ['CUDA_VISIBLE_DEVICES'] = '0' ...@@ -8,6 +8,7 @@ os.environ['CUDA_VISIBLE_DEVICES'] = '0'
class TestHubModule(unittest.TestCase): class TestHubModule(unittest.TestCase):
@classmethod @classmethod
def setUpClass(cls) -> None: def setUpClass(cls) -> None:
cls.text = "今天是个好日子" cls.text = "今天是个好日子"
...@@ -19,74 +20,51 @@ class TestHubModule(unittest.TestCase): ...@@ -19,74 +20,51 @@ class TestHubModule(unittest.TestCase):
shutil.rmtree('inference') shutil.rmtree('inference')
def test_cut1(self): def test_cut1(self):
results = self.module.cut( results = self.module.cut(text=self.text, use_gpu=False, batch_size=1, return_tag=False)
text=self.text,
use_gpu=False,
batch_size=1,
return_tag=False
)
self.assertEqual(results, ['今天', '是', '个', '好日子']) self.assertEqual(results, ['今天', '是', '个', '好日子'])
def test_cut2(self): def test_cut2(self):
results = self.module.cut( results = self.module.cut(text=self.texts, use_gpu=False, batch_size=1, return_tag=False)
text=self.texts, self.assertEqual(results, [{
use_gpu=False, 'word': ['今天', '是', '个', '好日子']
batch_size=1, }, {
return_tag=False 'word': ['天气预报', '说', '今天', '要', '下雨']
) }, {
self.assertEqual(results, [ 'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']
{'word': ['今天', '是', '个', '好日子']}, }])
{'word': ['天气预报', '说', '今天', '要', '下雨']},
{'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']}
])
def test_cut3(self): def test_cut3(self):
results = self.module.cut( results = self.module.cut(text=self.texts, use_gpu=False, batch_size=2, return_tag=False)
text=self.texts, self.assertEqual(results, [{
use_gpu=False, 'word': ['今天', '是', '个', '好日子']
batch_size=2, }, {
return_tag=False 'word': ['天气预报', '说', '今天', '要', '下雨']
) }, {
self.assertEqual(results, [ 'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']
{'word': ['今天', '是', '个', '好日子']}, }])
{'word': ['天气预报', '说', '今天', '要', '下雨']},
{'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']}
])
def test_cut4(self): def test_cut4(self):
results = self.module.cut( results = self.module.cut(text=self.texts, use_gpu=True, batch_size=2, return_tag=False)
text=self.texts, self.assertEqual(results, [{
use_gpu=True, 'word': ['今天', '是', '个', '好日子']
batch_size=2, }, {
return_tag=False 'word': ['天气预报', '说', '今天', '要', '下雨']
) }, {
self.assertEqual(results, [ 'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']
{'word': ['今天', '是', '个', '好日子']}, }])
{'word': ['天气预报', '说', '今天', '要', '下雨']},
{'word': ['下', '一班', '地铁', '马上', '就要', '到', '了']}
])
def test_cut5(self): def test_cut5(self):
results = self.module.cut( results = self.module.cut(text=self.texts, use_gpu=True, batch_size=2, return_tag=True)
text=self.texts, self.assertEqual(results, [{
use_gpu=True, 'word': ['今天', '是', '个', '好日子'],
batch_size=2, 'tag': ['TIME', 'v', 'q', 'n']
return_tag=True }, {
) 'word': ['天气预报', '说', '今天', '要', '下雨'],
self.assertEqual(results, [ 'tag': ['n', 'v', 'TIME', 'v', 'v']
{ }, {
'word': ['今天', '是', '个', '好日子'], 'word': ['下', '一班', '地铁', '马上', '就要', '到', '了'],
'tag': ['TIME', 'v', 'q', 'n'] 'tag': ['f', 'm', 'n', 'd', 'v', 'v', 'xc']
}, }])
{
'word': ['天气预报', '说', '今天', '要', '下雨'],
'tag': ['n', 'v', 'TIME', 'v', 'v']
},
{
'word': ['下', '一班', '地铁', '马上', '就要', '到', '了'],
'tag': ['f', 'm', 'n', 'd', 'v', 'v', 'xc']
}
])
def test_save_inference_model(self): def test_save_inference_model(self):
self.module.save_inference_model('./inference/model') self.module.save_inference_model('./inference/model')
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册