Skip to main content

A chinese lexical analysis tool by Baidu NLP.

Project description

LAC的Python调用

安装说明

代码兼容Python2/3

功能与使用

分词

  • 代码示例:
from LAC import LAC

# 装载分词模型
lac = LAC(mode='seg')

# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
seg_result = lac.run(text)

# 批量样本输入, 输入为多个句子组成的list,速率会更快
texts = [u"LAC是个优秀的分词工具", u"百度是一家高科技公司"]
seg_result = lac.run(texts)
  • 输出:
【单样本】:seg_result = [LAC, 是, 个, 优秀, 的, 分词, 工具]
【批量样本】:seg_result = [[LAC, 是, 个, 优秀, 的, 分词, 工具], [百度, 是, 一家, 高科技, 公司]]

词性标注与实体识别

  • 代码示例:
from LAC import LAC

# 装载LAC模型
lac = LAC(mode='lac')

# 单个样本输入,输入为Unicode编码的字符串
text = u"LAC是个优秀的分词工具"
lac_result = lac.run(text)

# 批量样本输入, 输入为多个句子组成的list,平均速率更快
texts = [u"LAC是个优秀的分词工具", u"百度是一家高科技公司"]
lac_result = lac.run(texts)
  • 输出:

每个句子的输出其切词结果word_list以及对每个单词的标注tags_list,其格式为(word_list, tags_list)

【单样本】: seg_result = ([百度, 是, 一家, 高科技, 公司], [ORG, v, m, n, n])
【批量样本】:seg_result = [
                    ([百度, 是, 一家, 高科技, 公司], [ORG, v, m, n, n]),
                    ([LAC, 是, 个, 优秀, 的, 分词, 工具], [nr, v, q, a, u, n, n])
                ]

词性和专名类别标签集合如下表,其中我们将最常用的4个专名类别标记为大写的形式。

标签 含义 标签 含义 标签 含义 标签 含义
n 普通名词 f 方位名词 s 处所名词 nw 作品名
nz 其他专名 v 普通动词 vd 动副词 vn 名动词
a 形容词 ad 副形词 an 名形词 d 副词
m 数量词 q 量词 r 代词 p 介词
c 连词 u 助词 xc 其他虚词 w 标点符号
PER 人名 LOC 地名 ORG 机构名 TIME 时间

模型干预

  • 干预文件custom.txt示例

字典文件可同时设置单词及其标注,并且支持多个词组成的短语片段,使得干预更为精准。

一/m 家/r
高科技公司
  • 代码示例
from LAC import LAC
lac = lac()

# 输入示例
text = u"百度是一家高科技公司"

干预前结果
origin_result = lac.run(text)


# 装载干预词典
lac.load_customization('custom.txt')
"""custom.txt
一/m 家/r
高科技公司
"""

# 干预后结果
custom_result = lac.run(text)
  • 输出:

因为干预词典中包含,“一家”、“高科技公司”这两个词,装载干预词典后,模型预测结果变化如下所示:

origin_result = ([百度, 是, 一家, 高科技, 公司], [ORG, v, m, n, n])
custom_result = ([百度, 是, 一, 家, 高科技公司], [ORG, v, m, r, n])
  • 干预词典说明 每行表示一个干预的item,由一个单词或多个连续的单词组成,每个单词后使用'/'表示标签,如果没有'/'则表示使用模型默认的标签。每个item单词数越多,干预效果会越精准。

增量训练

针对用户自己提供的数据,进行增量训练,首先需要将数据转换为输入的格式,样例可参考:https://baidu-nlp.bj.bcebos.com/lexical_analysis-dataset-2.0.0.tar.gz

  • 代码示例
from LAC import LAC
LAC = LAC()

# 训练和测试数据集
train_file = "./data/train.tsv"
test_file = "./data/test.tsv"
lac.train(model_save_dir='./my_model/',train_data=train_file, test_data=test_file)

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

LAC-0.1.1.tar.gz (9.9 MB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page