Lexical Analysis of Chinese,简称 LAC,是一个联合的词法分析模型,能整体性地完成中文分词、词性标注、专名识别任务。
一、定义待预测数据
以“今天是个好日子”,“今天天气晴朗”,"下一班地铁马上就要到了"为例,展示如何使用LAC进行切词。
首先进行paddlehub的下载:
pip install paddlehub==1.7.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
预训练模型对文本的要求:
test_text = [“今天是个好日子”, “天气预报说今天要下雨”, “下一班地铁马上就要到了”]
若是待预测文本存放在一个文件中,txt文档里排版成每一行是待预测句子。
(可通过cat test.txt命令来预览文本的内容)
用户想要利用LAC完成对该文件的分词,只需读入该文件,将文件内容存成list,list中每个元素是待分词句子。
with open("test.txt", 'r') as f:
test_text = []
for line in f:
test_text.append(line.strip())
print(test_text)
二、加载预训练模型
LAC网络框架为BiGRU+CRF,整体框架图如下:
详细的可以下载该pdf进行学习。
import paddlehub as hub
module = hub.Module(name="lac")
三、预测
PaddleHub对于支持一键预测的module,可以调用module的相应预测API,完成预测功能。
results = module.lexical_analysis(texts=test_text)
for result in results:
print(result)
输出示例:
{‘word’: [‘视频’, ‘提供’, ‘了’, ‘功能’, ‘强大’, ‘的’, ‘方法’, ‘帮助’, ‘您’, ‘证明’, ‘您’, ‘的’, ‘观点’, ‘。’, ‘当’, ‘您’, ‘单击’, ‘联机’, ‘视频’, ‘时’, ‘,’, ‘可以’, ‘在’, ‘想要’, ‘添加’, ‘的’, ‘视频’, ‘的’, ‘嵌入’, ‘代码’, ‘中’, ‘进行’, ‘粘贴’, ‘。’, ‘您’, ‘也’, ‘可以’, ‘键’, ‘入’, ‘一个’, ‘关键字’, ‘以’, ‘联机’, ‘搜索’, ‘最’, ‘适合’, ‘您’, ‘的’, ‘文档’, ‘的’, ‘视频’, ‘。’], ‘tag’: [‘n’, ‘v’, ‘u’, ‘n’, ‘a’, ‘u’, ‘n’, ‘v’, ‘r’, ‘v’, ‘r’, ‘u’, ‘n’, ‘w’, ‘v’, ‘r’, ‘v’, ‘vn’, ‘n’, ‘n’, ‘w’, ‘v’, ‘p’, ‘v’, ‘v’, ‘u’, ‘n’, ‘u’, ‘vn’, ‘n’, ‘f’, ‘v’, ‘vn’, ‘w’, ‘r’, ‘d’, ‘v’, ‘v’, ‘v’, ‘m’, ‘n’, ‘p’, ‘vn’, ‘vn’, ‘d’, ‘v’, ‘r’, ‘u’, ‘n’, ‘u’, ‘n’, ‘w’]}
词性和专名类别标签集合如下表,其中词性标签 24 个(小写字母),专名类别标签 4 个(大写字母)。这里需要说明的是,人名、地名、机构名和时间四个类别,在上表中存在两套标签(PER / LOC / ORG / TIME 和 nr / ns / nt / t),被标注为第二套标签的词,是模型判断为低置信度的人名、地名、机构名和时间词。开发者可以基于这两套标签,在四个类别的准确、召回之间做出自己的权衡。
标签 | 含义 | 标签 | 含义 | 标签 | 含义 | 标签 | 含义 |
---|---|---|---|---|---|---|---|
n | 普通名词 | f | 方位名词 | s | 处所名词 | t | 时间 |
nr | 人名 | ns | 地名 | nt | 机构名 | nw | 作品名 |
nz | 其他专名 | v | 普通动词 | vd | 动副词 | vn | 名动词 |
a | 形容词 | ad | 副形词 | an | 名形词 | d | 副词 |
m | 数量词 | q | 量词 | r | 代词 | p | 介词 |
c | 连词 | u | 助词 | xc | 其他虚词 | w | 标点符号 |
PER | 人名 | LOC | 地名 | ORG | 机构名 | TIME | 时间 |