一、背景

笔者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

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

安装注意事项

  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版本,结果报了如下错误

三、 运行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

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

从上面图片可以看到,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

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

在上图中我们可以看到,这次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

java中文分词工具_中文分词工具(LAC) 试用笔记相关推荐

  1. 最好用的_古书制作工具_古籍排版工具_古文排版_自动生成古书_多种古书风格_古籍制作工具

    古书制作工具_古籍排版工具使用方法 前言 最好用的古书制作工具, 最好用的古籍排版工具, 最好用的古籍制作工具, 最好用的古文排版, 自动生成古书, 多种古书风格 一.看下源图片见最后面 二.使用步骤 ...

  2. 最好用的_古书制作工具_古籍排版工具_古文排版_自动生成古书_多种古书风格_古籍制作工具_个性化书籍制作工具

    古书制作工具_古籍排版工具使用方法 前言 最好用的古书制作工具, 最好用的古籍排版工具, 最好用的古籍制作工具, 最好用的古文排版, 自动古书排版, 自动书籍排版, 自动生成古书, 多种古书风格 可自 ...

  3. java中文分词工具_中文分词常用方法简述

    中文分词 就是将一句话分解成一个词一个词,英文中可以用空格来做,而中文需要用一些技术来处理. 三类分词算法: 1. 基于字符串匹配: 将汉字串与词典中的词进行匹配,如果在词典中找到某个字符串,则识别出 ...

  4. python 分词工具_「分词工具」干货 | 史上最全中文分词工具整理 - seo实验室

    分词工具 作者 | fendouai 分词服务接口列表 二.准确率评测: THULAC:与代表性分词软件的性能对比 我们选择LTP-3.2.0 .ICTCLAS(2015版) .jieba(C++版) ...

  5. 中文表示什么_中文分词是个伪问题

    六年以前,第一个中文分词系统的发明人郝玺龙先生对我讲,中文分词是个伪问题.当时NLP刚入门的我完全听不懂. 最近试用了一下BERT,做了个简单的文本分类.以前做这类任务的方法都是先分词,然后把词向量化 ...

  6. python中文文本分析_中文文本处理

    斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger), ...

  7. seo伪原创工具_伪原创工具哪个好用?

    在日常优化工作过程中,一个站长是需要同时管理好几个网站的,所以导致没有时间或精力写出更多的原创内容,在这个时候就需要借助伪原创工具来实现内容更新的目的了,比较实用的伪原创工具主要有:石青.小发猫.魔术 ...

  8. 制定交叉编译工具_制作交叉编译工具链的方法总结(详细)

    网上这类文章比较多,但是都不是很具体,刚好有门课结课论文要写这个,所以就总结了一下.以下的过程都是在ubuntu7.10上实际运行过的. 手工制作交叉编译工具 在制作工具开始前先要选好所需要的Binu ...

  9. bert中文预训练模型_[中文医疗预训练模型] MC-BERT

    Conceptualized Representation Learning for Chinese Biomedical Text Mining 作者:Ningyu Zhang, Qianghuai ...

最新文章

  1. Asp.net控件开发学习笔记(三)-控件开发基础
  2. 进程和程序的主要区别是
  3. 智源发布 | 大规模并行训练效率提升神器 TDS
  4. CSS3 background-size图片自适应
  5. 机器学习-数据科学库(第二天)
  6. python基本的信号与槽函数的使用 信号发射 槽函数接收
  7. Python并发编程Futures
  8. 数据库Sharding的基本思想和切分策略(转)
  9. 数据爬取 mail_Python网络爬虫实战,数据解析!
  10. java 接口 同名方法_java 实现多个接口 方法重名的解决办法——内部类
  11. idea类注释模板快捷键设置
  12. Vue格式化CSS样式
  13. 产品开发之小步快跑,快速迭代
  14. VCF 文件 格式 详解
  15. RED5与tomcat整合
  16. PN结——“耗尽层”?
  17. 【Maven】创建模块时出现Invalid packaging for parent POM
  18. 关于interrupt(),interrupted(),isInterrupted()用法分析
  19. EDKII实现bmp图片加载并显示的应用程序
  20. C++ primer plus读书笔记与心得

热门文章

  1. 很全面的Matlab绘图(含代码!收藏版!)
  2. Flask 实现文件上传和下载(简单但实用)
  3. python中复制n次字符串_python字符串操作方法大全
  4. 如今多多参谋是叫什么?多多参谋有哪些功能?
  5. 有源雷达与无源雷达的区别
  6. 达内计算机软件测试,2015计算机软件测试工程师真题及答案
  7. pip安装超时( Read timed out)解决办法
  8. flink的standalone模式环境搭建
  9. 植物大战僵尸中文版修改器源码
  10. 【大总结】工作几年使用到的IDEA 技巧