分词

文本处理方法概述

喜夏-厌秋 提交于 2020-01-01 02:52:34
https://www.cnblogs.com/arachis/p/text_dig.html 说明:本篇以实践为主,理论部分会尽量给出参考链接 摘要:   1.分词   2.关键词提取   3.词的表示形式   4.主题模型(LDA/TWE)     5.几种常用的NLP工具简介   6.文本挖掘(文本分类,文本标签化)     6.1 数据预处理     6.2 关于文本的特征工程     6.3 关于文本的模型   7.NLP任务(词性标注,句法分析)   8.NLP应用(信息检索,情感分析,文章摘要,OCR,语音识别,图文描述,问答系统,知识图谱)     8.1 知识抽取 内容:   1.分词   分词是文本处理的第一步,词是语言的最基本单元,在后面的文本挖掘中无论是词袋表示还是词向量形式都是依赖于分词的,所以一个好的分词工具是非常重要的。 这里以python的jieba分词进行讲解分词的基本流程,在讲解之前还是想说一下jieba分词的整个工作流程: 图1是jieba切词函数的4个可能过程,图2是一个根据DAG图计算最大概率路径,具体的代码走读请参考 jieba cut源码 讲了这么多,我们还是要回归到实践中去,看下jieba的分词接口 1 # encoding=utf-8 2 import jieba 3 4 seg_list = jieba.cut(

Net Core使用Lucene.Net和盘古分词器 实现全文检索

和自甴很熟 提交于 2019-12-31 20:11:21
Lucene.net Lucene.net是Lucene的.net移植版本,是一个开源的全文检索引擎开发包,即它不是一个完整的全文检索引擎,而是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,是一个高性能、可伸缩的文本搜索引擎库。它的功能就是负责将文本数据按照某种分词算法进行切词,分词后的结果存储在索引库中,从索引库检索数据的速度非常快。Lucene.net需要有索引库,并且只能进行站内搜索。(来自百度百科) 效果图 盘古分词 如何使用 将PanGu.dIl与PanGu.Lucenet.Analyzer. dl并加入到项目中 将Dict文件,拷贝到项目Bin文件夹里面 字典文件夹下载: https://pan.baidu.com/s/1HNiLp6bCcodN8vqlck066g 提取码: xydc 测试 可以看到,盘古分词相对Lucene.net自带的一元分词来说,是比较好的,因为一元分词不适合进行中文检索。 一元分词是按字拆分的,比如上面一句话,使用一元分词拆分的结果是:"有","一","种","方","言","叫","做","不","老","盖","儿"。如果查找“方言”这个词,是找不到查询结果的。不符合我们的检索习惯,所以基本不使用。 拓展 上面的"不老盖儿"(河南方言),这里想组成一个词,那么需要创建"不老盖儿"词组并添加到字典里面。 使用DictManage工具

中文分词和搜索引擎(三)

让人想犯罪 __ 提交于 2019-12-28 14:12:00
中文分词和搜索引擎 中文分词除了在索引结构上影响搜索引擎以外,还会如何影响搜索引擎? 除了搜索引擎的索引过程需要用到分词以外,所有的搜索之前也需要用到分词。有些人误认为"短语搜索"(即两端加上引号的搜索方式,搜索引擎基本都支持这种方式,查看 搜索引擎帮助 )是直接拿字符串去匹配不用分词,因为结果看上去好像是字符串匹配的结果。其实不然,短语搜索同样需要用分词,只不过在结果中需要位置连续等严格限制。当位置连续时,在显示摘要的时候,会让你感觉只是用字符串匹配。 除了在搜索前端后端都需要用到分词以外,搜索引擎还有一个原则:前端后端分词结果应该一致。这意思是说,如果你在索引时没有识别出"文德"的人名,你在搜索时最好也别识别出来,这样可以按照两个单字的方式查找,或许有正确结果,否则会查不到结果。反之也一样。由于索引过程中,分词输入的一篇文章,有大量的上下文信息,但在搜索时,用户输入的可能只有几个字,很多上下文信息不在存在。如果过多使用统计或机器学习,很容易导致搜索引擎的前端后端分词不一致的问题。这也是搜索引擎使用分词和其他系统,如机器翻译,使用分词不一样的地方。 如果你看过搜索引擎的query log(即所有搜索词的记录),你会发现新词很多,会占30%,或者更多。对这些新词的识别会直接影响搜索结果的准确性,或者说相关性。搜索结果的相关性决定于排序算法,排序算法一部分依赖于网页的质量和权威性

ik分词器-简单使用

。_饼干妹妹 提交于 2019-12-27 01:47:16
ik分词器:效果展示 实现步骤 1.引入maven依赖 <!--ik分词--> <dependency> <groupId>com.janeluo</groupId> <artifactId>ikanalyzer</artifactId> <version>2012_u6</version> </dependency> 2.IK分词工具类 import org.wltea.analyzer.core.IKSegmenter; import org.wltea.analyzer.core.Lexeme; import java.io.IOException; import java.io.StringReader; import java.util.ArrayList; import java.util.List; /** * @PackageName: com.hrt.zxxc.sxy * @ClassName: IKAnalyzerUtil * @Description: TODO ik分词器 * @Author: * @Date: 2019/11/11 8:50 * @Versoin: 1.0 **/ public class IKAnalyzerUtil { public static List<String> cut(String msg) throws

Elasticsearch初步使用(安装、Head配置、分词器配置)

喜欢而已 提交于 2019-12-26 18:57:08
目录   返回目录: http://www.cnblogs.com/hanyinglong/p/5464604.html 1.ElasticSearch简单说明   a.ElasticSearch是一个基于Lucene开发的搜索服务器,具有分布式多用户的能力,ElasticSearch是用Java开发的开源项目(Apache许可条款),基于Restful Web接口,能够达到实时搜索、稳定、可靠、快速、高性能、安装使用方便,同时它的横向扩展能力非常强,不需要重启服务。   b.ElasticSearch是一个非常好用的实时分布式搜索和分析引擎,可以帮助我们快速的处理大规模数据,也可以用于全文检索,结构化搜索以及分析等。   c.目前很多网站都在使用ElasticSearch进行全文检索,例如:GitHub、StackOverflow、Wiki等。   d.ElasticSearch式建立在全文检索引擎Lucene基础上的,而Lucene是最先进、高效的开元搜索引擎框架,但是Lucene只是一个框架,要充分利用它的功能,我们需要很高的学习成本,而ElasticSearch使用Lucene作为内部引擎,在其基础上封装了功能强大的Restful API,让开发人员可以在不需要了解背后复杂的逻辑,即可实现比较高效的搜索。   e.关于Lucene我在前面写过几篇博客

solr整合ik中文分词器

烈酒焚心 提交于 2019-12-25 17:22:32
整合中文分词器: 1:下载并解压IK。主要只要里面的这几个文件 IKAnalyzer2012FF_u1.jar IKAnalyzer.cfg.xml stopword.dic 2:开始整合 首先把IKAnalyzer2012FF_u1.jar导入到solr中web应用的lib目录中 cp ik/IKAnalyzer2012FF_u1.jar solr-4.10.4/example/solr-webapp/webapp/WEB-INF/lib/ 再把IKAnalyzer.cfg.xml和stopword.dic拷贝到solr中web应用的类路径下,但是这个classes目录不存在,需要手工创建。 cp ik/IKAnalyzer.cfg.xml solr-4.10.4/example/solr-webapp/webapp/WEB-INF/classes/ cp ik/stopword.dic solr-4.10.4/example/solr-webapp/webapp/WEB-INF/classes/ 3:使用ik,需要修改shema.xml文件 <!--配置IK分词器--> <fieldType name="text_ik" class="solr.TextField"> <!--索引时候的分词器--> <analyzer type="index" isMaxWordLength=

Solr——配置IK分词器

依然范特西╮ 提交于 2019-12-25 17:22:11
首先需要的准备好jdk1.8和tomcat8以及ik分词器(ik分词器是5.x的版本,和solr4.10搭配的版本不一样,虽然是5.x的版本但是也是能使用在solr7.2版本上的) 分享链接https://pan.baidu.com/s/1smOxPhF 进行ik分词器的安装,打开已经解压的ik分词器文件夹 将ik-analyzer-solr5-5.x.jar复制到 apache-tomcat-8.5.24\webapps\solr\WEB-INF\lib 中 然后IKAnalyzer.cfg.xml 复制到apache-tomcat-8.5.24\webapps\solr\WEB-INF\classes中然后进入D:\solr7.2\apache-tomcat-8.5.24\solrhome\name\conf下也就是刚才新创建的core文件夹中修改managed-schema的内容在其中加上 <fieldType name="text_ik" class="solr.TextField"> <analyzer class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> 然后保存并重新启动服务再次访问solr主页然后按照下图的顺序进行操作,可以看见分词效果已经实现了注:在solr4.10.3中需要修改的内容的文件名为

ELK学习笔记-ES-分词

孤人 提交于 2019-12-25 05:29:45
官方文档位置:https://www.elastic.co/guide/en/elasticsearch/reference/7.5/analysis.html 分词 分词是指将文本转化成一系列的单词(term or token)的过程,也可以叫文本分析 es里称之为Analysis 分词器 分词器是es中专门处理分词的组件,英文为Analyzer ,它的组成如下: Character Filters 针对原始文本进行处理,比如去除html特殊标记符 Tokenizer 将原始文本按照一定规则切分为单词 Token Filters 针对 tokenizer处理的单词就行再加工,比如转小写、删除或新增等处理 分词器-调用顺序 Analyze API es提供了一个测试分词的api接口,方便验证分词效果, endpoint是_ analyze 可以直接指定analyzer进行测试 可以直接指定索弓|中的字段进行测试 可以自定义分词器进行测试 直接指定Analyzer进行测试,接口如下: POST _analyze { "analyzer":"standard", //分词器,standard是es默认分词器,如果字段里没有指定分词器,会默认使用standard "text":"hello world!" //测试文本 } 输出: { "tokens": [ { "token":

python之jieba库

流过昼夜 提交于 2019-12-24 02:52:37
jieba “结巴”中文分词:做最好的 Python 中文分词组件 "Jieba" (Chinese for "to stutter") Chinese text segmentation: built to be the best Python Chinese word segmentation module. Scroll down for English documentation. 特点 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 MIT 授权协议 友情链接 https://github.com/baidu/lac 百度中文词法分析(分词+词性+专名)系统 https://github.com/baidu/AnyQ 百度FAQ自动问答系统 https://github.com/baidu/Senta 百度情感识别系统 安装说明 代码对 Python 2/3 均兼容 全自动安装: easy_install jieba 或者 pip install jieba / pip3 install jieba 半自动安装:先下载 http://pypi.python

关于文本处理之结巴分词

旧时模样 提交于 2019-12-24 00:23:57
中文文本最常用的就我而言应该就是结巴分词的分词工具。当然还有其他分词工具Hanlp、THULAC、LTP、NLPIR等。 结巴分词安装:pip install jieba(全自动安装) or 下载结巴,然后解压运行python setup.py install(半自动) or python3.X 下的安装方式: Github 上 jieba 的 Python3.x 版本的路径是: https://github.com/fxsjy/jieba/tree/jieba3k 通过 git clone https://github.com/fxsjy/jieba.git 命令下载到本地,然后解压,再通过命令行进入解压目录,执行 python setup.py install 命令,即可安装成功。 jieba 的分词算法 主要有以下三种: 基于统计词典,构造前缀词典,基于前缀词典对句子进行切分,得到所有切分可能,根据切分位置,构造一个有向无环图(DAG); 基于DAG图,采用动态规划计算最大概率路径(最有可能的分词结果),根据最大概率路径分词; 对于新词(词库中没有的词),采用有汉字成词能力的 HMM 模型进行切分。 jieba 分词 下面我们进行 jieba 分词练习,第一步首先引入 jieba 和语料: import jieba content = "现如今