分词

elasticsearch原理学习笔记

倾然丶 夕夏残阳落幕 提交于 2019-11-28 12:52:44
https://mp.weixin.qq.com/s/dn1n2FGwG9BNQuJUMVmo7w 感谢,透彻的讲解 整理笔记 请说出 唐诗中 包含 前 的诗句 ...... 其实你都会,只是想不起来, “窗前明月光” 因为在你大脑中的 索引方式是 静夜思---床前明月光,疑是地上霜,举头望明月,低头思故乡 这就需要 倒排索引 倒排索引就是 前---窗前明月光        前--遥望瀑布挂前川        。。。。。。 那样就意味着 所有的文字都要 以这样的方式建立索引喽 这就是搜索引擎的原理!倒排索引 那样文件量是不是会很大呢? 索引会不会很多?如果文字量大(一篇1000字的文章),而且索引的维护量会不会很大啊 没问题,我们想办法,首先 正向压缩, 例如 前 ---静夜思         前--望庐山瀑布         ..... 这样,就不用存每首诗的全文了。 还能不能更好呢? 如果是把静夜思 转化成key,是不是更简单。 如果是把所有的诗,搭建一个矩阵 是不是 更简单! 第二步: 建立索引前 要 先分词,然后再见索引 (那要建立多少词啊) 没关系,一篇文章里不用所有的词都建立索引吧, 想 的 是 嗯 等等 这样的词,不用建立索引了吧。 那么 引入 停用词 词库,可以把这些无关紧要的屏蔽掉了。 最后再说 ES的原理, 先有一个 叫 lucene 的库,后来又有人基于

ElasticSearch的Mapping之字段类型

拥有回忆 提交于 2019-11-28 11:50:41
es支持大多数java里面的数据类型: (一)核心数据类型: (1)string: 默认会被分词,一个完整示例如下 Java代码 "status" : { "type" : "string" , //字符串类型 "index" : "analyzed" //分词,不分词是:not_analyzed ,设置成no,字段将不会被索引 "analyzer" : "ik" //指定分词器 "boost" : 1.23 //字段级别的分数加权 "doc_values" : false //对not_analyzed字段,默认都是开启,分词字段不能使用,对排序和聚合能提升较大性能,节约内存 "fielddata" :{ "format" : "disabled" } //针对分词字段,参与排序或聚合时能提高性能,不分词字段统一建议使用doc_value "fields" :{ "raw" :{ "type" : "string" , "index" : "not_analyzed" }} //可以对一个字段提供多种索引模式,同一个字段的值,一个分词,一个不分词 "ignore_above" : 100 //超过100个字符的文本,将会被忽略,不被索引 "include_in_all" :ture //设置是否此字段包含在_all字段中,默认是true,除非index设置成no选项 "index

Wiki语料处理

前提是你 提交于 2019-11-28 11:18:50
最近在做知识图谱相关工作,源数据主要来自百度百科,互动百科,中文维基百科等。其中中文维基百科提供数据库下载,下文主要讨论如何处理Wiki数据。 1. 中文维基数据下载 下载dump: https://dumps.wikimedia.org/zhwiki/latest/ ,维基数据主要包含以下几部分 zhwiki-latest-pages-articles.xml.bz2      词条正文 zhwiki-latest-redirect.sql 词条重定向(同义词) zhwiki-latest-pagelinks.sql 词条页面内容外链 zhwiki-latest-page.sql 词条标题及摘要 zhwiki-latest-categorylinks.sql 词条开放分类链接 本文处理的数据是: zhwiki-latest-pages-articles.xml.bz2 2. 数据的抽取 Gensim是一个相当专业的主题模型Python工具包,提供了wiki数据的抽取处理类 WikiCorpus ,能对下载的数据(*articles.xml.bz2)进行抽取处理,得到纯净的文本语料。 class WikiCorpus(TextCorpus): """ Treat a wikipedia articles dump (\*articles.xml.bz2) as a (read

哈工大pyltp

只愿长相守 提交于 2019-11-28 10:16:46
介绍 LTP(Language Technology Platform)为中文语言技术平台,是哈工大社会计算与信息检索研究中心开发的一整套中文语言处理系统。LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library,DLL)的应用程序接口,可视化工具,并且能够以网络服务的形式进行使用。 LTP开发文档: https://ltp.readthedocs.io/zh_CN/latest/index.html 语言云LTP-Cloud: http://www.ltp-cloud.com/ 模型下载地址: http://ltp.ai/download.html 安装 下面介绍 Windows10 Python 环境下 LTP 的扩展包 pyltp 安装过程。 1.常见错误 大家通常会调用 “pip install pyltp” 安装该扩展包,但会遇到各种错误,下面介绍一种可行的方法。 2.安装pyltp包 首先,安装Python3.6环境,如下图所示“python-3.6.7-amd64.exe”。 接着,下载pyltp扩展包的whl文件至本地,调用CMD环境进行安装,注意需要将所在文件的路径写清楚。 pyltp-0.2.1-cp35

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 模型。该方法适合用于搜索引擎构建倒排索引的分词,粒度比较细 #待分词的字符串可以是