中文分词

jieba库

倖福魔咒の 提交于 2019-12-01 05:05:11
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 授权协议 算法 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法 主要功能 分词 jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型 jieba.cut_for_search 方法接受两个参数:需要分词的字符串;是否使用 HMM 模型

如何高效的完成中文分词?

寵の児 提交于 2019-11-30 19:28:25
在说分词之前,笔者先来介绍下何为分词:分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。英文中,单词之间是以空格作为自然分界符的,但是中文的分词就复杂多了,要涉及一些算法,对于初学者来说,还是有很多难度的。这里笔者只介绍一种最简单的方式,有兴趣的朋友可以看下,直接上代码,python实现方式 # -*- coding: utf-8 -*- # flake8: noqa __author__ = 'wukong' import urllib from urllib import urlencode #配置您申请的appKey和openId app_key="***" open_id="***" """ request_url 请求地址 params 请求参数 method 请求方法 """ def request_content(request_url,params,method): params = urlencode(params) if method and method.lower() =="get": f = urllib.urlopen("%s?%s" % (request_url, params)) else: f = urllib.urlopen(request_url, params) content = f.read() print content

solr配置IK分词

六眼飞鱼酱① 提交于 2019-11-30 17:20:25
IK Analyzer分词器 这个其实比较好配,奈何资源不好找,而且用solr搜中文一般都用这个我把分词器打了个包放在下面了。里面没有字典,希望哪位又好用的互通下有无。 http://pan.baidu.com/s/1pLjE2Tl 假设solr部署在tomcat上,位置webapp\solr 1、IKAnalyzer2012FF_u1.jar 放在solr\WEB-INF\lib 2、IKAnalyzer.cfg.xml和stopword.dic 放在solr\WEB-INF\classes IKAnalyzer.cfg.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd"> <properties> <comment>IK Analyzer 扩展配置</comment> <!--用户可以在这里配置自己的扩展字典 <entry key="ext_dict">ext.dic;</entry> --> <!--用户可以在这里配置自己的扩展停止词字典--> <entry key="ext_stopwords">stopword.dic;</entry> <!--放一些其他好用的字典--> </properties> 3

solr5.3.1 添加中文分词之IKAnalyzer

徘徊边缘 提交于 2019-11-30 17:20:12
特别注意: solr版本对应的分词jar包的版本是不一样的 ,此处5.3.1的分词jar包版本在 https://github.com/EugenePig/ik-analyzer-solr5 可以下载,需要使用maven打包 based on IK Analyer 2012-FF Hotfix 1 added support for Lucene 5.1.0 API 作者在上面写到,这个版本是基于2012-FF Hotifx 1版本修改的,增加了对lucene 5以上的版本的支持 1,下载好文件后,解压,进入文件夹目录,使用对应的mvn命令打成jar包,然后将打好的jar包,拷贝到solr的对应lib目录中。2,修改solr_home目录中(在我们这里是my_solr)的schema.xml配置文件,在最后添加 <fieldType name="text_ik" class="solr.TextField"> <analyzer type="index" useSmart="false" class="org.wltea.analyzer.lucene.IKAnalyzer"/> <analyzer type="query" useSmart="true" class="org.wltea.analyzer.lucene.IKAnalyzer"/> </fieldType> 3

lucene集成IK实现中文分词检索

最后都变了- 提交于 2019-11-30 17:19:57
接上篇,解决lucene中文分词问题。 这里采用IK分词器。 IKAnalyzer2012_u5.zip下载地址:http://code.google.com/p/ik-analyzer/downloads/detail?name=IKAnalyzer2012_u5.zip&can=2&q= 解压缩后,有如下文件: 1、将IKAnalyzer2012.jar导入工程; 2、将IKAnalyzer.cfg.xml、stopword.dic文件拷贝到src根目录下(编译后在classes根目录下); 3、修改CreateIndex.java文件,用IK分词器替换lucene默认分词器。找到 indexWriter = new IndexWriter(dir, new StandardAnalyzer( Version.LUCENE_30), true, IndexWriter.MaxFieldLength.UNLIMITED); 替换为: indexWriter = new IndexWriter(dir,new IKAnalyzer(), true, IndexWriter.MaxFieldLength.UNLIMITED); 4、修改Select.java文件,用IK分词器替换lucene默认分词器。找到 QueryParser queryParser = new

Elasticsearch性能优化干货

家住魔仙堡 提交于 2019-11-30 16:18:32
1、集群规划优化实践 1.1 基于目标数据量规划集群 在业务初期,经常被问到的问题,要几个节点的集群,内存、CPU要多大,要不要SSD? 最主要的考虑点是:你的 目标存储数据量 是多大?可以针对目标数据量反推节点多少。 1.2 要留出容量Buffer 注意:Elasticsearch有三个警戒水位线,磁盘使用率达到85%、90%、95%。 不同警戒水位线会有不同的应急处理策略。 这点,磁盘容量选型中要规划在内。控制在 85%之下 是合理的。 当然,也可以通过配置做调整。 1.3 ES集群各节点尽量不要和其他业务功能复用一台机器。 除非内存非常大。 举例:普通服务器,安装了ES+Mysql+redis,业务数据量大了之后,势必会出现内存不足等问题。 1.4 磁盘尽量选择SSD Elasticsearch官方文档肯定 推荐SSD ,考虑到成本的原因。需要结合业务场景,如果业务对写入、检索速率有较高的速率要求,建议使用SSD磁盘。 阿里的业务场景,SSD磁盘比机械硬盘的速率提升了5倍。但要因业务场景而异。 1.5 内存配置要合理 官方建议:堆内存的大小是官方建议是:Min(32GB,机器内存大小/2)。 Medcl和wood大叔都有明确说过,不必要设置32/31GB那么大,建议: 热数据设置:26GB,冷数据:31GB 。 总体内存大小没有具体要求,但肯定是内容越大,检索性能越好。

lucene全文检索

浪尽此生 提交于 2019-11-30 13:23:50
什么是全文检索 将数据分为两类, 结构化数据和非结构化数据 结构化数据: 有固定格式和有限长度, 比如关系型数据库中的数据, 查询的方式: sql 在数据量特别大的时候,可以考虑使用全文检索技术 非结构化数据: 没有固定格式和没有规定长度,比如电脑上的文档:txt,word 查询方式: 对于少量数据可以肉眼查找 对于大量数据可以使用全文检索技术 二.什么是全文检索技术 全文检索: 先建立索引,再对索引进行搜索的过程就叫做全文检索技术 三. 全文检索适用场景 分为三种情形 搜索引擎: 谷歌 百度 360 搜狗 搜搜 站内搜索: 网站内部进行搜索,如京东,淘宝,天涯,微博,猫扑 垂直搜索: 视屏网站的搜索,比如在优酷中可以搜索到腾讯的视频 四. 如何实现全文检索 在这里可以使用lucene进行实现 五. 什么是lucene? lucene 是apache提供用来实现全文检索的一套类库,jar,并不是框架 需要使用的坐标 第一步:导入jar 必须的包:lucene-core-4.10.3.jar lucene-analyzers-common-4.10.3.jar 分词器 commons-io.jar junit.jar <dependency> <groupId>org.apache.lucene</groupId> <artifactId>lucene-analyzers

Swoole加速结巴分词

老子叫甜甜 提交于 2019-11-30 13:16:08
中文分词 对于英文句子来说,可以通过 空格 来切分单词,如 // 今天天气不错 the weather is nice today 可以很简单的把该句子中的单词区分出来 the/weather/is/nice/today 在中文里面,就没有那么方便的区分方法了。当然,如果你习惯这样说话: 今天 天气 不错 大家也不会打你,只会觉得你像个 “结巴” (点题了!) 为什么需要分词? 在中文里面的 字 和 英文单词 是两个不同的东西。在读书的时候,最痛苦的一件事就是学习文言文,我想了一下,有大于等于三个原因: 不知道在哪里断句 字或词的含义很多 这个字是通假字(它不是这个它,它是那个它),或者说纯粹就是写错了,但是细想一下也能读的通。 我们常说中文博大精深,历史原因就不细究了,简单来说就是,我们的祖先在中文上的造诣非常高,好几层楼那么高,研究非常透彻,一句话能说出几个意思。我们自小在中文环境下成长,经过千锤百炼,读写是没问题的,但是计算机要怎么理解一句话呢?先从分词开始。 计算机学习分词的过程,和人类是很像的(或许这是局限性),目前有几种: 基于字符串匹配。按一定的策略在一个已分好词的大词典中搜寻,若找到则视为一个词。 统计。大量已经分词的文本,利用统计机器学习模型学习词语切分的规律(训练),从而实现对未知文本的切分。 组合。结合1、2点,如 结巴分词 。 我们学习中文的时候

solr4.8安装步骤和配置IK分词器

梦想与她 提交于 2019-11-30 06:14:51
Solr4.8 安装步骤如下: 1. 下载solr4.8,到Apache官网下载 2. 准备一个tomcat,我这边用tomcat7 3. 将下载好的solr4.8解压缩开,将里面的solr-4.8.0\solr-4.8.0\example\webapps\solr.war拷贝到上面的tomcat的webapps目录。 4. 建立一个solr工作目录,比如D:\solr\home。将\solr-4.8.0\solr-4.8.0\example\下的solr文件夹拷贝到这个工作目录中。 5. 启动tomcat,solr.war会自动解压, solr4.8需要jdk1.7,我系统变量配置的是1.6 。所以,打开上面那个tomcat7下的D:\apache-tomcat-solr\bin下的setclasspath.bat,在 rem Otherwise either JRE or JDK are fine 这句后面手动指定启动JDK和JRE rem 指定你本机的JDK1.7 set JRE_HOME=F:/Java7/jre set JAVA_HOME=F:/Java7/jdk 6. 将solr-4.8.0\solr-4.8.0\example\lib\ext包下的jar包,全部拷贝到上面tomcat/webapps下解压开的solr工程的lib目录下。 7. 修改tomcat

solr4.9在tomcat7下安装、配置

孤者浪人 提交于 2019-11-30 06:14:17
solr简介 solr是受欢迎的,速度极快的开源企业搜索平台。 主要功能包括强大的全文搜索,搜索词高亮显示,分面搜索,近实时的索引,动态聚类,数据库集成,丰富的文件(例如,Word,PDF)处理,和空间搜索。 Solr是高度可靠的,可扩展性和容错性,提供了分布式的索引,复制和负载均衡的查询,自动故障转移和恢复,集中配置和更多。 许多世界上最大的 互联网网站 的导航、搜索功能都是采用solr实现的 。 solr是 一个基于Lucene、采用JAVA语言编写、运行于 servlet 容器中(如jetty,tomcat)的全文搜索服务器,提供了Rest 的HTTP接口,并支持多种数据格式如json,php,ruby,csv,phps,javabin及自定义格式。 使用的安装介质 jdk1.7.0.45 tomcat 7.0.55 solr-4.9.0.tgz IKAnalyzer2012FF_u1.jar 安装步骤 1: 安装jdk1.7.0.45 2:安装tomcat6.0.36 3: 安装solr #解压文件(假设把 solr-4.9.0.tgz放在/home/solr目录中 ) cd /home/solr tar -zxvf solr-4.9.0.tgz ln -s solr-4.9.0 solr #更改solr工作目录 cp -r /home/solr/solr/example