[撒花\*/]百度词法分析工具LAC

百度词法分析工具LAC 2.0

LAC(Lexical Analysis of Chinese),是百度的词法分析工具,实现中文分词、词性标注、专名识别等功能。

使用的模型论文Chinese Lexical Analysis with Deep Bi-GRU Network

据官方介绍整体任务F1超过0.91,CPU单线程800QPS,移动端200QPS,支持Android、C++、Java、python接口。

我只试了python的版本,如果想要使用C++、Android,有CMakeLists直接编译就好。

  • 安装
  1. pip install lac -i https://mirror.baidu.com/pypi/simple
  2. #先下载 http://pypi.python.org/pypi/lac/
    #解压后
    python setup.py install
  • 分词
from LAC import LAC

#加载模型
lac = LAC(mode='seg')

#单个样本
text = 'LAC是一个优秀的分词工具'
results = lac.run(text)

#多样本
texts = ['LAC是一个优秀的分词工具','我爱中华人民共和国']
results = lac.run(texts)
  • 词性标注和命名实体识别
from LAC import LAC

lac = LAC(mode='lac')

#单个样本
text = 'LAC是一个优秀的分词工具'
results = lac.run(text)

#多样本
texts = ['LAC是一个优秀的分词工具','我爱中华人民共和国']
results = lac.run(texts)
标签 含义 标签 含义 标签 含义 标签 含义
n 普通名词 f 方位名词 s 处所名词 nw 作品名
nz 其他专名 v 普通动词 vd 动副词 vn 名动词
a 形容词 ad 副形词 an 名形词 d 副词
m 数量词 q 量词 r 代词 p 介词
c 连词 u 助词 xc 其他虚词 w 标点符号
PER 人名 LOC 地名 ORG 机构名 TIME 时间

 

  • 支持自定义词典

通过装载词典文件的形式实现该功能,词典文件每行表示一个定制化的item,由一个单词或多个连续的单词组成,每个单词后使用'/'表示标签,如果没有'/'标签则会使用模型默认的标签。每个item单词数越多,干预效果会越精准。

custom.txt自定义内容

春天/SEASON
花/n 开/v
秋天的风
落 阳
from LAC import LAC
lac = LAC()

# 装载干预词典
lac.load_customization('custom.txt')

# 干预后结果
custom_result = lac.run(u"春天的花开秋天的风以及冬天的落阳")


#输出结果
#不用自定义字典
#春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n

#使用自定义字典
#春天/SEASON 的/u 花/n 开/v 秋天的风/n 以及/c 冬天/TIME 的/u 落/n 阳/n
  • 增量训练

官方提供了增量训练的接口,用户可以使用自己的数据,进行增量训练,首先需要将数据转换为模型输入的格式,并且所有数据文件均为"UTF-8"编码。

1.分词训练

数据样例,使用空格作为单词的切分标记:

LAC 是 个 优秀 的 分词 工具 。
百度 是 一家 高科技 公司 。
春天 的 花开 秋天 的 风 以及 冬天 的 落阳 。
from LAC import LAC

# 选择使用分词模型
lac = LAC(mode = 'seg')

# 训练和测试数据集,格式一致
train_file = "./data/seg_train.tsv"
test_file = "./data/seg_test.tsv"
lac.train(model_save_dir='./my_seg_model/',train_data=train_file, test_data=test_file)

# 使用自己训练好的模型
my_lac = LAC(model_path='my_seg_model')

2.词法分析训练

样例数据:

LAC/nz 是/v 个/q 优秀/a 的/u 分词/n 工具/n 。/w
百度/ORG 是/v 一家/m 高科技/n 公司/n 。/w
春天/TIME 的/u 花开/v 秋天/TIME 的/u 风/n 以及/c 冬天/TIME 的/u 落阳/n 。/w
from LAC import LAC

# 选择使用默认的词法分析模型
lac = LAC()

# 训练和测试数据集,格式一致
train_file = "./data/lac_train.tsv"
test_file = "./data/lac_test.tsv"
lac.train(model_save_dir='./my_lac_model/',train_data=train_file, test_data=test_file)

# 使用自己训练好的模型
my_lac = LAC(model_path='my_lac_model')

欢迎大家讨论

猜你喜欢

转载自www.cnblogs.com/nanmi/p/13202313.html