中文分词

Java开源项目cws_evaluation:中文分词器分词效果评估

喜你入骨 提交于 2019-11-27 09:43:05
cws_evaluation 是一个Java开源项目,用于对 Java中文分词器分词效果进行评估 。 cws_evaluation 是 通过对前文《 word分词器、ansj分词器、mmseg4j分词器、ik-analyzer分词器分词效果评估 》中写的评估程序进行重构改进后形成的。 支持 的分词器有: word分词器 、ansj分词器、mmseg4j分词器、ik-analyzer分词器、jcseg分词器、fudannlp分词器、paoding分词器、jieba分词器、stanford分词器等 9 大中文分词器。 评估采用的测试文本有253 3709行,共2837 4490个字符。 cws_evaluation主页 可运行程序下载 最好的评估结果是 word分词 全切分算法(trigram) : word分词 全切分算法(trigram): 分词速度:42.10602 字符/毫秒 行数完美率:65.04% 行数错误率:34.95% 总的行数:2533709 完美行数:1648163 错误行数:885546 字数完美率:56.3% 字数错误率:43.69% 总的字数:28374490 完美字数:15976750 错误字数:12397740 下面的评估数据中,word分词使用bigram,按 行数完美率 排序: 1: word分词 全切分算法: 分词速度:40.259953 字符/毫秒

Java中文分词组件

前提是你 提交于 2019-11-27 09:42:43
Java分布式中文分词组件 - word分词 word分词是一个Java实现的分布式的中文分词组件,提供了多种基于词典的分词算法,并利用ngram模型来消除歧义。能准确识别英文、数字,以及日期、时间等数量词,能识别人名、地名、组织机构名等未登录词。能通过自定义配置文件来改变组件行为,能自定义用户词库、自动检测词库变化、支持大规模分布式环境,能灵活指定多种分词算法,能使用refine功能灵活控制分词结果,还能使用词性标注、同义标注、反义标注、拼音标注等功能。同时还无缝和Lucene、Solr、ElasticSearch、Luke集成。注意:word1.3需要JDK1.8 API在线文档: word 1.0 API word 1.1 API word 1.2 API 编译好的jar包下载(包含依赖): word 1.0 word 1.1 word 1.2 Maven依赖: 在pom.xml中指定dependency,可用版本有1.0、1.1、1.2: <dependencies> <dependency> <groupId>org.apdplat</groupId> <artifactId>word</artifactId> <version>1.2</version> </dependency> </dependencies> 分词使用方法: 1、快速体验

Elasticsearch:ICU分词器介绍

霸气de小男生 提交于 2019-11-27 02:57:22
ICU Analysis插件是一组将Lucene ICU模块集成到Elasticsearch中的库。 本质上,ICU的目的是增加对Unicode和全球化的支持,以提供对亚洲语言更好的文本分割分析。 从Elasticsearch的角度来看,此插件提供了文本分析中的新组件,如下表所示: 安装 我们可以首先到Elasticsearch的安装目录打入如下的命令: $ pwd /Users/liuxg/elastic/elasticsearch-7.3.0 (base) localhost:elasticsearch-7.3.0 liuxg$ ./bin/elasticsearch-plugin list analysis-icu analysis-ik pinyin 上面显示我已经安装好了三个插件。上面的 analysis-ik 及 pinyin 都是为中文而准备的。这在我之前的文章中都有介绍。请详细阅读。 注意 :如果你们在使用上面的elasticsearch-plug list命名出现如下的错误的话: 那么请使用如下的命令来删除在当前目录下的.DS_Store目录: sudo find /Path/to/your/elasticsearch-folder -name ".DS_Store" -depth -exec rm {} \; 然后重新运行上面的命令就不会有问题了。

Elasticsearch:IK中文分词器

我是研究僧i 提交于 2019-11-27 02:54:47
Elasticsearch内置的分词器对中文不友好,只会一个字一个字的分,无法形成词语,比如: POST /_analyze { "text": "我爱北京天安门", "analyzer": "standard" } 如果我们使用的是standard的分词器,那么结果就是: { "tokens" : [ { "token" : "我", "start_offset" : 0, "end_offset" : 1, "type" : "<IDEOGRAPHIC>", "position" : 0 }, { "token" : "爱", "start_offset" : 1, "end_offset" : 2, "type" : "<IDEOGRAPHIC>", "position" : 1 }, ... { "token" : "门", "start_offset" : 6, "end_offset" : 7, "type" : "<IDEOGRAPHIC>", "position" : 6 } ] } 显然这对中文来说并不友好,它显示的每一个汉字。好在Elastic的大拿medcl已经为我们做好IK中文分词器。下面我们来详细介绍如何安装并使用中文分词器。具体的安装步骤可以在地址 https://github.com/medcl/elasticsearch-analysis-ik 找到

ElasticSearch基础知识

纵饮孤独 提交于 2019-11-27 00:55:36
简介 ElasticSearch(以下简称ES)是一个基于Lucene的搜索服务器,它提供了一个分布式多用户能力的全文搜索引擎。基于RESTful web接口。要想深入了解 ES,需要先对 Lucene 有一个清晰的认识,那么什么是 Lucene 呢? Lucene 普通数据库的缺陷: 没有高效的索引方式,查询的速度在大量数据的情况下很慢 搜索效果差,只能对用户输入的完整关键字进行首尾模糊匹配 用户搜索时如果错输,则查询的结果可能差别很大 搜索引擎 搜索引擎是指根据一定的策略,运用特定的计算机程序从互联网上搜集信息,对信息进行组织和处理后,为用户提供检索服务。将用户检索相关的信息展示给用户的系统。 分类: 垂直搜索:通常也叫做细分,指专门针对某一类信息进行搜索 综合搜索:是指对众多信息进行综合性的搜索,如:百度、谷歌。。。 站内搜索:对网站内部的信息进行搜索,对自己数据库进行搜索 软件内部搜索:如 word / idea 进行搜索 倒排索引技术 倒排索引(反向索引)以词条为索引,表中关键字对应的记录项记录了出现这个字或词的所有文档,每一个表项记录该文档的ID和关键字在该文档中出现的位置情况 全文检索 计算机对文档的全部内容进行分词,对每个词建立一个索引,索引记录单词出现的位置和c Lucene 是一个开源的全文检索引擎工具包 安装 bin:脚本目录,包括:启动、停止等可执行脚本

开源中文分词工具探析(七):LTP

北城余情 提交于 2019-11-27 00:44:33
LTP 是哈工大开源的一套中文语言处理系统,涵盖了基本功能:分词、词性标注、命名实体识别、依存句法分析、语义角色标注、语义依存分析等。 【开源中文分词工具探析】系列: 开源中文分词工具探析(一):ICTCLAS (NLPIR) 开源中文分词工具探析(二):Jieba 开源中文分词工具探析(三):Ansj 开源中文分词工具探析(四):THULAC 开源中文分词工具探析(五):FNLP 开源中文分词工具探析(六):Stanford CoreNLP 开源中文分词工具探析(七):LTP 1. 前言 同THULAC一样,LTP也是基于结构化感知器(Structured Perceptron, SP),以最大熵准则建模标注序列 \(Y\) 在输入序列 \(X\) 的情况下的score函数: \[ S(Y,X) = \sum_s \alpha_s \Phi_s(Y,X) \] 其中, \(\Phi_s(Y,X)\) 为本地特征函数。中文分词问题等价于给定 \(X\) 序列,求解score函数最大值对应的 \(Y\) 序列: \[ \mathop{\arg \max}_Y S(Y,X) \] 2. 分解 以下源码分析基于版本3.4.0。 分词流程 分词流程与其他分词器别无二致,先提取字符特征,计算特征权重值,然后Viterbi解码。代码详见 __ltp_dll_segmentor_wrapper:

中文分词工具——jieba

删除回忆录丶 提交于 2019-11-26 23:40:27
汉字是智慧和想象力的宝库。 ——索尼公司创始人井深大 简介 在英语中,单词就是“词”的表达,一个句子是由空格来分隔的,而在汉语中,词以字为基本单位,但是一篇文章的表达是以词来划分的,汉语句子对词构成边界方面很难界定。例如:南京市长江大桥,可以分词为:“南京市/长江/大桥”和“南京市长/江大桥”,这个是人为判断的,机器很难界定。在此介绍中文分词工具jieba,其特点为: 社区活跃、目前github上有19670的star数目 功能丰富,支持关键词提取、词性标注等 多语言支持(Python、C++、Go、R等) 使用简单 Jieba分词结合了基于规则和基于统计这两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列,例如词典中出现了“买”,之后以“买”开头的词都会出现在这一部分,例如“买水”,进而“买水果”,从而形成一种层级包含结构。若将词看成节点,词与词之间的分词符看成边,则一种分词方案对应着从第一个字到最后一个字的一条分词路径,形成全部可能分词结果的有向无环图。 jieba安装 安装很简单,先创建一个python3.6的虚拟环境,再激活环境,最后安装命令如下: conda create -n nlp_py3 python=3.6 source activate nlp_py3 pip install jieba jieba的三种分词模式

中文分词研究入门

谁都会走 提交于 2019-11-26 22:29:53
导读 本文首先简单介绍了自然语言处理和科研过程中重要的四部曲——调研、思考、编程和写作,然后对中文分词问题进行了说明,介绍了中文分词存在的难点如消歧、颗粒度问题、分词标准等。接着,本文总结了调研文献中的分词方法,包括基于词典的最大匹配法以及其相应的改进方法、基于字标注的分词方法等,同时也介绍了当前中文分词的研究进展和方向,如统计与词典相结合、基于深度学习的分词方法等。而后,本文具体介绍了如何基于词典的双向最大匹配法以及基于字标注的平均感知机进行分词的实验,对实验结果进行了分析并给出了几种改进模型的思路。最后,本文给出了相应的参考文献以及其他资料。 本文作者: llhthinker 原文地址: http://www.cnblogs.com/llhthinker/p/6323604.html Github代码地址: https://github.com/llhthinker/MachineLearningLab/tree/master/Chinese-Word-Segmentation 转载请保留 1. 导论 1.1 自然语言处理简介 自然语言处理 (NLP, Natural Language Processing)是用机器处理人类语言(有别于人工语言,如程序设计语言)的理论和技术。自然语言处理是人工智能的一个重要分支,属于计算机应用技术(有别于计算机技术)

lucene入门&Solr

自闭症网瘾萝莉.ら 提交于 2019-11-26 14:53:33
LUCENE 1. 学习计划 1、案例分析:什么是全文检索,如何实现全文检索 2、Lucene实现全文检索的流程 a) 创建索引 b) 查询索引 3、配置开发环境 4、创建索引库 5、查询索引库 6、分析器的分析过程 a) 测试分析器的分词效果 b) 第三方中文分析器 7、索引库的维护 a) 添加文档 b) 删除文档 c) 修改文档 8、Lucene的高级查询Lucene的查询 a) 使用Query的子类查询 MatchAllDocsQuery TermQuery NumericRangeQuery BooleanQuery b) 使用QueryParser QueryParser MulitFieldQueryParser 2. 案例 实现一个文件的搜索功能,通过关键字搜索文件,凡是文件名或文件内容包括关键字的文件都需要找出来。还可以根据中文词语进行查询,并且需要支持多个条件查询。 本案例中的原始内容就是磁盘上的文件,如下图: 3. 需求分析 3.1. 数据库搜索 数据库中的搜索很容易实现,通常都是使用sql语句进行查询,而且能很快的得到查询结果。 为什么数据库搜索很容易? 因为数据库中的数据存储是有规律的,有行有列而且数据格式、数据长度都是固定的。 3.2. 数据分类 我们生活中的数据总体分为两种:结构化数据和非结构化数据。 结构化数据:指具有固定格式或有限长度的数据,如数据库

Solr4.10.4 加中文分词

若如初见. 提交于 2019-11-26 14:38:40
ik分词插件下载地址: https://download.csdn.net/download/u014453536/9587721 接上一教程,这个教程如何配置中文ik分词 检查schema的管理模式 配置成经典模式 <!-- 经典模式 --> <schemaFactory class="solr.ClassicIndexSchemaFactory"/> <!--修改节点 updateRequestProcessorChain--> <updateRequestProcessorChain name="add-unknown-fields-to-the-schema" default="${update.autoCreateFields:true}" processor="uuid,remove-blank,field-name-mutating,parse-boolean,parse-long,parse-double,parse-date"> <processor class="solr.LogUpdateProcessorFactory"/> <processor class="solr.DistributedUpdateProcessorFactory"/> <processor class="solr.RunUpdateProcessorFactory"/> <