美文网首页
中文分词工具(LAC) 试用笔记

中文分词工具(LAC) 试用笔记

作者: 汤青松daxia | 来源:发表于2020-07-07 21:54 被阅读0次

一、背景

笔者2年前写过一篇《PHP使用elasticsearch搜索安装及分词方法》的文章,记录了使用ES的分词的实现步骤,最近又需要用到分词,在网上发现一个百度的中文分词项目,中文词法分析(LAC) ,决定使用一番,并把这次试用通过文章记录下来,给有需要的朋友一个参考吧

中文词法分析LAC 支持Python、C++、JAVA、Android 用接口调用,其他语言的话就需要开发者自己自行封装了,笔者这次决定使用Python进行实验,在文中也会把相关代码给贴出来,给大家作为一个参考

二 安装LAC

LAC2.0 的安装方式非常简单,直接使用pip安装即可,但是国内访问pip软件源可能比较慢,因此我们可以用上加速地址,参考命令如下所示

pip3 install lac  -i https://mirror.baidu.com/pypi/simple

命令执行完成之后,返回的信息如下所示

image

安装注意事项

  1. LAC有1.0 和2.0 ,在码云中显示的是1.0,但是并没有特意标明,1.0 的版本安装过程非常比较麻烦,安装过程也容易出错,建议大家可以去github查看LAC 2.0的安装方式
  2. 如果你是windows系统想用wsl去安装,不要使用WSL1.0,因为他不支持LAC的依赖组件paddle,也就没办法正确安装LAC了
  3. LAC 安装需要注意你的Python版本,不能大于3.7,笔者做实验的时候使用的Python3.8版本,结果报了如下错误
image

三、 运行DEMO

为了验证是否已经将LAC安装成功,这里笔者运行了一下DEMO示例代码,首先新建了一个代码文件lac.py,然后将demo代码复制进去,代码如下所示

# -*- coding: utf-8 -*-
from LAC import LAC

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

# 单个样本输入,输入为Unicode编码的字符串
text = u"大王叫我来巡山"
seg_result = lac.run(text)
print(seg_result)

# 批量样本输入, 输入为多个句子组成的list,平均速率会更快
texts = [u"山里有个庙", u"庙里有个老和尚跟一个小和尚"]
seg_result = lac.run(texts)
print(seg_result)

接着使用Python运行这个文件,执行命令如下

python lac.py

命令执行之后,返回的分词词汇标注信息如下所示

image

从上面图片可以看到,LAC已经将一段文本进行了分词,说明我们安装LAC成功,

LAC 除了可以进行分词之外,还可以用来做词性标注与实体识别,我们接着继续运行demo代码,笔者首先新建了一个代码文件lac2.py,然后将用来做词性标注和实体识别的demo代码复制进去,代码如下所示

from LAC import LAC

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

# 单个样本输入,输入为Unicode编码的字符串
text = u"我想涨工资"
lac_result = lac.run(text)

print(lac_result)

# 批量样本输入, 输入为多个句子组成的list,平均速率更快
texts = [u"汤青松长得好帅", u"我喜欢做安全开发工程师"]
lac_result = lac.run(texts)

print(lac_result)

接着使用Python运行这个文件,执行命令如下

python lac2.py

命令执行之后,返回的分词词汇标注信息如下所示

image

在上图中我们可以看到,这次LAC不仅返回了分词结果,还返回另外一个词汇类型的list,笔者粗略的核对了一下,基本都能对应上,比如笔者的名字标识为PER 人名类型,好帅标示为 a 形容词类型

下面是词性和专名类别标签集合,其中我们将最常用的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 时间

四、试用感想

LAC是一个非常不错的分词工具,并不是用来直接为业务提供搜索支持,而是作为一个搜索引擎的基础工具;

比如当你想将网站的文章标题用于站内搜索,使用LAC进行了分词,分词之后这些数据你还需要额外的存储,用来作为搜索使用,因为LAC只提供分词功能,所以感觉LAC适合作为分词搜索引擎的一部分,如果你想用来分词搜索站内信息,倒不如ES的那么方便。

笔者也好奇LAC项目的适用场景是什么?从LAC项目的产品口中得知回答如下:

LAC适用场景更多是与实体识别相关的,比如知识图谱,知识问答,信息抽取等,也可以作为其他模型算法的基础工具,因为其分词粒度是以实体作为粒度的,同时兼具实体识别的效果,而在搜索引擎中一般使用的分词粒度会更小一些,或者同时提供多种粒度,如果要面向搜索的分词,还需要用户自行进行微调模型

作者:汤青松

日期:2020-07-07

相关文章

  • 中文分词工具(LAC) 试用笔记

    一、背景 笔者2年前写过一篇《PHP使用elasticsearch搜索安装及分词方法》的文章,记录了使用ES的分词...

  • 第3章 中文分词技术

    本章要点: 中文分词的概念与分类 常用分词的技术介绍 开源中文分词工具-Jieba简介 实战分词之高频词提取 中文...

  • python笔记 | 舆情分析如何做?

    中文分词原理及分词工具介绍 中文分词(Chinese Word Segmentation) 指的是将一个汉字序列切...

  • 基于jieba、TfidfVectorizer、Logistic

    2018年9月27日笔记 jieba中文叫做结巴,是一款中文分词工具,官方文档链接:https://github....

  • 百度LAC开源分词接入

    最近有个语义分词工具的需求,在比较查找了一番后决定使用百度开源的LAC百度语义分词 https://github....

  • 配置Hanlp自然语言处理进阶

    中文分词 中文分词中有众多分词工具,如结巴、hanlp、盘古分词器、庖丁解牛分词等;其中庖丁解牛分词仅仅支持jav...

  • 分词系统评测

    1.11款开放中文分词引擎大比拼 2.常用的开源中文分词工具 3.11大Java开源中文分词器的使用方法和分词效果...

  • 中文分词工具及中文语料资源

    关键词: 中文分词;分词;自然语言处理;中文语料 最近要做中文自然语言处理相关任务,牵涉到使用中文分词工具和相关算...

  • 常用Python中文分词工具

    1. jieba 分词 “结巴” 分词,GitHub 最受欢迎的分词工具,立志做最好的 Python 中文分词组件...

  • 中文NLP笔记:2. 中文分词的工具 jieba

    中文分词 中文分词的工具有: 中科院计算所 NLPIR、哈工大 LTP、清华大学 THULAC 、斯坦福分词器、...

网友评论

      本文标题:中文分词工具(LAC) 试用笔记

      本文链接:https://www.haomeiwen.com/subject/fcttcktx.html