中文分词

IK分词器 原理分析 源码解析

风格不统一 提交于 2019-11-28 15:40:34
IK分词器在是一款 基于词典和规则 的中文分词器。本文讲解的IK分词器是独立于elasticsearch、Lucene、solr,可以直接用在java代码中的部分。关于如何开发es分词插件,后续会有文章介绍。 IK分词器的源码: Google Code ,直接下载请点击 这里 。 一、两种分词模式 IK提供两种分词模式:智能模式和细粒度模式(智能:对应es的IK插件的ik_smart,细粒度:对应es的IK插件的ik_max_word)。 先看两种分词模式的demo和效果 import org.wltea.analyzer.core.IKSegmenter;import org.wltea.analyzer.core.Lexeme;import java.io.IOException;import java.io.StringReader; public class IKSegmenterTest { static String text = "IK Analyzer是一个结合词典分词和文法分词的中文分词开源工具包。它使用了全新的正向迭代最细粒度切分算法。"; public static void main(String[] args) throws IOException { IKSegmenter segmenter = new IKSegmenter(new

ElasticSearch再学习

故事扮演 提交于 2019-11-28 08:55:59
ElasticSearch参数详解 本次使用的windows的版本,如若Linux移步: https://www.cnblogs.com/msi-chen/p/10335794.html 配置文件参数 首先我们对ES的解压目录做一个简单的了解:    然后就是配置文件目录中的三个配置文件做一个说明: elasticsearch.yml 点击进去里面的配置全是被注释掉的,我们可以加入下面的数据作为配置 jvm.options 有关JVM属性的配置,一般我们就设置堆的最小最大值,一般设为相等,不能超过物理内存的一半 -Xms2g -Xmx2g log4j2.properties 日志文件的配置,ES使用log4j,配置一下日志级别就OK 面向Restful的api接口 创建索引库 put http://localhost:9200/ 索引库名称 number_of_shards:设置分片的数量,在集群中通常设置多个分片,表示一个索引库将拆分成多片分别存储不同的结点,提高了ES的处理能力和高可用性,入门程序使用单机环境,这里设置为1。 number_of_replicas:设置副本的数量,设置副本是为了提高ES的高可靠性,单机环境设置为0. 创建映射 post http://localhost:9200/ 索引库名称/类型名称/_mapping 类型名称暂时没有意义存在,随便取一个即可

数据挖掘与数据分析

岁酱吖の 提交于 2019-11-28 08:13:27
一、数据挖掘和数据分析概述 数据挖掘和数据分析都是从数据中提取一些有价值的信息,二者有很多联系,但是二者的侧重点和实现手法有所区分。 数据挖掘和数据分析的不同之处: 1、在应用工具上,数据挖掘一般要通过自己的编程来实现需要掌握编程语言;而数据分析更多的是借助现有的分析工具进行。 2、在行业知识方面,数据分析要求对所从事的行业有比较深的了解和理解,并且能够将数据与自身的业务紧密结合起来;而数据挖掘不需要有太多的行业的专业知识。 3、交叉学科方面,数据分析需要结合统计学、营销学、心理学以及金融、政治等方面进行综合分析;数据挖掘更多的是注重技术层面的结合以及数学和计算机的集合 数据挖掘和数据分析的相似之处: 1、数据挖掘和数据分析都是对数据进行分析、处理等操作进而得到有价值的知识。 2、都需要懂统计学,懂数据处理一些常用的方法,对数据的敏感度比较好。 3、数据挖掘和数据分析的联系越来越紧密,很多数据分析人员开始使用编程工具进行数据分析,如SAS、R、SPSS等。而数据挖掘人员在结果表达及分析方面也会借助数据分析的手段。二者的关系的界限变得越来越模糊。 二、数据挖掘 1 数学预备知识 概率论:支撑整个数据挖掘算法和机器学习算法的数学基础,要熟悉常见的一些概率分布。 矩阵论:线性代数中对数据挖掘最有用的部分,还有一些线性空间相关知识也很重要。 信息论

Python中文分词组件 jieba

我与影子孤独终老i 提交于 2019-11-28 05:46:30
jieba "结巴"中文分词:做最好的Python中文分词组件 "Jieba" Feature 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 在线演示 http://jiebademo.ap01.aws.af.cm/ (Powered by Appfog) Python 2.x 下的安装 全自动安装:easy_install jieba 或者 pip install jieba 半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行python setup.py install 手动安装:将jieba目录放置于当前目录或者site-packages目录 通过import jieba 来引用 (第一次import时需要构建Trie树,需要几秒时间) Python 3.x 下的安装 目前master分支是只支持Python2.x 的 Python3.x 版本的分支也已经基本可用: https://github.com/fxsjy/jieba/tree/jieba3k git clone https://github

自定义中文全文索引

旧街凉风 提交于 2019-11-28 05:32:22
自定义中文全文索引 一、中文分词插件 1、分词组件的调整 2、分词测试 二、样例数据准备 三、通过中文全文分词组件创建节点索引 四、中文分词索引查询 五、总结 一、中文分词插件 NEO4J中文全文索引,分词组件使用IKAnalyzer。为了支持高版本LUCENE,IKAnalyzer需要做一些调整。 IKAnalyzer-3.0 旧版本实现参考 ELASTICSEARCH-IKAnlyzer 高版本实现参考 1、分词组件的调整 调整之后的分词组件 casia.isiteam.zdr.wltea // 调整之后的实现 public final class IKAnalyzer extends Analyzer { // 默认细粒度切分 true-智能切分 false-细粒度切分 private Configuration configuration = new Configuration(false); /** * IK分词器Lucene Analyzer接口实现类 * <p> * 默认细粒度切分算法 */ public IKAnalyzer() { } /** * IK分词器Lucene Analyzer接口实现类 * * @param configuration IK配置 */ public IKAnalyzer(Configuration configuration) {

jieba分词与HMM学习

好久不见. 提交于 2019-11-28 04:18:29
问题1:jieba中文分词的原理? 问题2:HMM在jieba中的应用? 问题3:HMM在其他行业内有何应用? 首先学一个东西的第一步应该先看官网https://github.com/fxsjy/jieba 官网给出jieba中应用到的 算法 有: 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 采用了 动态规划查找最大概率路径 , 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的 HMM 模型 ,使用了 Viterbi 算法 功能解析: 主要功能包括:1、分词;2、添加自定义词典:字典的载入与调整;3、关键词抽取:IT-IDF算法、TextRank算法;4、词性标注;5、并行分词;6、ToKenize;7、chineseAnalyzer for Whoosh 搜索引擎;8、命令行分词 1.分词 #主要涉及函数包括有jieba.cut()、jieba.cut_for_search() #jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型 #jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细 #待分词的字符串可以是

solr简介

空扰寡人 提交于 2019-11-27 12:46:13
Solr 是什么? Solr它是一种开放源码的、基于 Lucene Java 的搜索服务器,易于加入到 Web 应用程序中。 Solr 提供了层面搜索(就是统计)、命中醒目显示并且支持多种输出格式(包括XML/XSLT 和JSON等格式)。 它易于安装和配置,而且附带了一个基于HTTP 的管理界面。可以使用 Solr 的表现优异的基本搜索功能,也可以对它进行扩展从而满足企业的需要。 在eclipse中调试solr,便于我们更加的清晰的了解solr的运行原理,下面详细的写一下如何eclipse部署solr(4.10.0版本)的web工程。 首先新建一个动态的Web工程 删除WebContent下的所有内容, 到解压后的solr的solr-4.10.0\example\webapps目录下, 解压solr.war包后,然后拷贝解压后所有的东西(除了solr.war本身),到刚才被清空的WebContent目录下: 拷贝完后的项目工程如下所以,有时候这里可能由于js校验出错,不影响运行,可忽略,如果有洁癖的同学们,可以找下,如何去掉js的校验即可。 在WebContent下新建一个solr_home文件夹,用来存放核心(索引库) 将解压后的 solr 4.10.0文件夹下的exampke下的mukticore内的所有文件 拷贝到solr_home文件夹中: 修改web.xml中 <env

solr配置IKAnalyzer中文分词器

落爺英雄遲暮 提交于 2019-11-27 12:39:14
环境: solr:solr-4.10.3 链接:https://pan.baidu.com/s/1Xf5PC_YnfETMSCJM-no9Ug 提取码:syxb 分词器:IKAnalyzer 链接:https://pan.baidu.com/s/1QuKRezZxEmYhypDtj3oqeQ 提取码:utic 配置中文分析器 使用IKAnalyzer中文分析器 1.把IKAnalyzer2012FF_u1.jar添加到solr/WEB-INF/lib目录下。 第二步:复制IKAnalyzer的配置文件和自定义词典和停用词词典到solr的classpath下。 第三步:在schema.xml中添加一个自定义的fieldType,使用中文分析器。 第五步:重启tomcat 来源: https://blog.csdn.net/qq_43510714/article/details/99674511

elasticsearch教程--中文分词器作用和使用

喜你入骨 提交于 2019-11-27 10:59:46
目录 概述 环境准备 认识中文分词器 常用的中文分词器 IK Analyzer hanlp中文分词器 彩蛋 概述 上一篇博文记录了 elasticsearch插件安装和管理 , 在地大物博的祖国使用es,不得不考虑中文分词器,es内置的分词器对中文分词的支持用惨不忍睹来形容不为过,看这篇博文之前,建议先看一下博文 elasticsearch分词器 ,对分词器有个初步理解。本文将记录一下项目中如何使用选用和使用中文分词器的,希望能够帮助到即将来踩坑的小伙伴们,欢迎批评指正 本文都是基于 elasticsearch安装教程 中的elasticsearch安装目录(/opt/environment/elasticsearch-6.4.0)为范例 环境准备 全新最小化安装的centos 7.5 elasticsearch 6.4.0 认识中文分词器 在博文 elasticsearch分词器 中提到elasticsearch能够快速的通过搜索词检索出对应的文章归功于倒排索引,下面通过中文举例看看倒排索引。 中文分词器作用以及效果 中文分词器是做什么的呢? what? 通过名字就知道了啊,为什么还要问。。。下面通过三个文档示例,看看它是如何分词的 文档1: 我爱伟大的祖国 文档2: 祝福祖国强大繁盛 文档3: 我爱蓝天白云 经过中文分词器,以上文档均会根据分词规则,将文档进行分词后的结果如下:

Lucene的中文分词器IKAnalyzer

僤鯓⒐⒋嵵緔 提交于 2019-11-27 09:43:23
分词器对英文的支持是非常好的。 一般分词经过的流程: 1)切分关键词 2)去除停用词 3)把英文单词转为小写 但是老外写的分词器对中文分词一般都是单字分词,分词的效果不好。 国人林良益写的IK Analyzer应该是最好的Lucene中文分词器之一,而且随着Lucene的版本更新而不断更新,目前已更新到IK Analyzer 2012版本。 IK Analyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。到现在,IK发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现。在2012版本中,IK实现了简单的分词歧义排除算法,标志着IK分词器从单纯的词典分词向模拟语义分词衍化。 在系统环境:Core2 i7 3.4G双核,4G内存,window 7 64位, Sun JDK 1.6_29 64位 普通pc环境测试,IK2012具有160万字/秒(3000KB/S)的高速处理能力。 特别的,在2012版本,词典支持中文,英文,数字混合词语。 IK Analyzer 2012版本的分词效果示例: IK Analyzer2012版本支持 细粒度切分 和 智能切分。 我们看两个演示样例: 1)文本原文1: IKAnalyzer是一个开源的,基于java语言开发的轻量级的中文分词工具包。从2006年12月推出1.0版本开始