中文分词

Sphinx + Coreseek 实现中文分词搜索

自古美人都是妖i 提交于 2020-01-25 16:51:25
Sphinx + Coreseek 实现中文分词搜索 Sphinx Coreseek 实现中文分词搜索 全文检索 1 全文检索 vs 数据库 2 中文检索 vs 汉化检索 3 自建全文搜索与使用Google等第三方站点提供的站内全文搜索的差别 Sphinx Coreseek介绍 Coreseek安装使用 1. 全文检索 1.1 全文检索 vs. 数据库 全文检索是数据库的有力补充,全文检索并不能替代数据库在应用系统中的作用。当应用系统的数据以大量的文本信息为主时,採用全文检索技术能够极大的提升应用系统的价值。 数据库搜索。假设搜索范围包含所有正文数据。往往性能非常低。用户响应时间长(分钟级。常常超时);而全文检索能够在0.x秒(毫秒级)的时间内将结果反馈给用户; 数据库搜索。一个用户在搜索。往往影响其它用户的相应用系统进行操作。全文检索能够同一时候支持多个用户并发搜索,其它相应用系统进行操作的用户不受影响。 数据库搜索非常难实现多个关键字的复合搜索。而全文检索能够实现多个关键词的复合搜索。包含 “和(AND)”、“或(OR)”、“否(NOT)” 等; 数据库搜索难于对结果进行相关度排序,当检索结果多时。用户往往难于找到最恰当的文档。而全文检索通过统计的研究成果。能够将文档进行相关度排序后。再返回给用户,提高用户的效率; 全文检索还能够对检索结果的数据进行聚类分析(Group,

【自然语言处理】中文分词技术(一)

放肆的年华 提交于 2020-01-25 03:39:39
艺赛旗 RPA10.0全新首发免费下载 点击下载 www.i-search.com.cn/index.html?from=line1 1.1 中文分词简介 “词 “这个概念一直是汉语语言学界纠缠不清而又绕不开的问题。“词是什么”(词的抽象定义)和” 什么是词”(词的具体界定),这两个基本问题迄今为止也未能有一个权威、明确的表述,更无法拿出令大众认同的词表来。主要难点在于汉语结构与印欧体系语种差异甚大,对词的构成边界方面很难进行界定。比如,在英语中,单词本身就是 “词” 的表达,一篇英文文章就是 “单词” 加分隔符(空格)来表示的,而在汉语中,词以字为基本单位,但是一篇文章的语义表达却仍然是以词来划分的。因此,在处理中文文本时,需要进行分词处理,将句子转化为词的表示。这个切词处理过程就是中文分词,它通过计算机自动识别出句子的词,在词间加入间隔标记符,分隔出各个词汇。整个过程看似简单,然而实践起来却很复杂,主要的困难在于分词歧义。以 NLP 分词的经典语句举例,“结婚的和尚未结婚的”,应该分词为 “结婚 / 的 / 和 / 尚未 / 结婚 / 的”,还是 “结婚 / 的 / 和尚 / 未 / 结婚 / 的”?这个由人来判定都是问题,机器就更难处理了。此外,像未登录词、分词粒度粗细等都是影响分词效果的重要因素。 自中文自动分词被提出以来,历经将近 30 年的探索,提出了很多方法

分词中常用算法比较与设想

陌路散爱 提交于 2020-01-24 14:40:28
与基于理解的分词算法和基于统计的分词算法相比,基于文本匹配的算法更加通用。基于文本匹配的算法又称之为“机械分词算法”,他是它是按照一定的策略将待分析的汉字串与一个“充分大的”机器词典中的词条进行配,若在词典中找到某个字符串,则匹配成功,可识别出一个词。按照扫描方向的不同,文本匹配分词方法可以分为正向匹配和逆向匹配两种;按照不同长度优先匹配的情况,可以分为最大(最长)匹配和最小(最短)匹配;按照是否与词性标注过程相结合,又可以分为单纯分词方法和分词与标注相结合的一体化方法。 常用的几种机械分词方法如下: 1) 正向最大匹配法(由左到右的方向) 2) 逆向最大匹配法(由右到左的方向) 3) 最少切分(使每一句中切出的词数最小)。 其他的还有将上述各种方法相互组合形成的分词算法,例如,可以将正向最大匹配方法和逆向最大匹配方法结合起来构成双向匹配法。由于汉语单字成词的特点,正向最小匹配和逆向最小匹配一般很少使用。本文中着重讨论正向最大匹配法和逆向最大匹配法。 由于机械分词算法的准确性取决于算法的准确性与词库完备性两个方面。在本文中设想词库充分大,包含需要的词语。 一般说来,逆向匹配的切分精度略高于正向匹配,遇到的歧义现象也较少。统计结果表明,单纯使用正向最大匹配的错误率为1/169,单纯使用逆向最大匹配的错误率为1/245。但这种精度还远远不能满足实际的需要。实际使用的分词系统

docker 安装solr8.4.0 配置IK分词

戏子无情 提交于 2020-01-23 23:55:05
Docker 安装solr8.4.0 docker拉取solr docker pull solr 创建并运行的solr容器 docker run --name solr -d -p 8983:8983 solr 1.run 运行容器 2.-d 后台运行 3.-p 容器端口和宿机端口映射 4.-- name 容器名称 5. solr 指镜像名称 注意:如果没有开启防火墙则跳过,如果开启防火墙了需要执行下面的代码; 运行之后我们防火墙放行端口号的命令: firewall-cmd --zone=public --add-port=8983/tcp --permanent 加载刚刚防火墙放行端口: firewall-cmd --reload 使用服务器的需要去安全组设置端口即可: 创建核心 docker exec -it --user=solr solr bin/solr create_core -c Ik_core 之后我们可以在浏览器输入IP:8389 看看有没有页面出现; solr 配置IK中文分词 jar的百度网盘: https://pan.baidu.com/s/1ExTcCVfn_zltmGJDhxWhgQ 提取码: zxxp 推荐在本地先解压然后把四个jar传到linux //usr/local/IK (IK需要自己创建文件夹) mkdir -p /usr/local/IK

中文分词JCseg的MMSEG算法。

安稳与你 提交于 2020-01-18 21:38:09
MMSEG: A Word Identification System for Mandarin Chinese Text Based on Two Variants of the Maximum Matching Algorithm Published: 1996-04-29 Updated: 1998-03-06 Document updated: 2000-03-12 License: Free for noncommercial use Copyright © 1996-2006 Chih-Hao Tsai (Email: hao520@yahoo.com ) Related Technical Reports A review of Chinese word lists accessible on the Internet CScanner - A Chinese lexical scanner more... Related Research Reports Visit Chih-Hao Tsai's Research Page for research-oriented reports on psycholinguistics and psychology of reading in Chinese What's New 2000-03-12: I have re

Mmseg中文分词算法解析

混江龙づ霸主 提交于 2020-01-17 08:47:36
Mmseg 中文分词算法解析 @author linjiexing 开发中文搜索和中文词库语义自己主动识别的时候,我採用都是基于 mmseg 中文分词算法开发的 Jcseg 开源project。使用场景涉及搜索索引创建时的中文分词、新词发现的中文分词、语义词向量空间构建过程的中文分词和文章特征向量提取前的中文分词等,整体使用下来,感觉 jcseg 是一个非常优秀的开源中文分词工具,并且可配置和开源的情况下,能够满足非常多场景的中文分词逻辑。本文先把 jcseg 使用到最主要的 mmseg 算法解析一下。 1. 中文分词算法之争 在分析 mmseg 算法前,先讲述一段中文分词的基本历史,在吴军著的《数学之美》中有详述。我主要聊聊我的想法。算法开发的思维流程事实上和这段历史基本上是吻合的。我们的直观思维非常easy受限于我们的知识储备和经验,比方我们在设计出飞机之前,想到是仿生的方式去模拟鸟儿的扇动翅膀姿势,直到后来空气动力学发现飞翔的本质是扇动翅膀能够产生空气涡流而给以上升驱动力,由螺旋桨推升比空气质量高的物体。飞机由此发明。 在中文分词的道路上,也曾走过这样一段类似的探索之路。 一開始。为了实现合理的中文分词。我们能想到的是使用语言学家已经归纳的语法规则,依据传统的“句读”切割,给语句分词。可是。我们知道,非常多出名的诗句或文学语句都不是来自于正常的语法

Elasticsearch分词

眉间皱痕 提交于 2020-01-14 18:06:35
一、 analysis与analyzer analysis:   文本分析,是将全文本转换为一系列单词的过程,也叫分词。analysis是通过analyzer(分词器)来实现的,可以使用Elasticearch内置的分词器,也可以自己去定制一些分词器。除了在数据写入时将词条进行转换,那么在查询的时候也需要使用相同的分析器对语句进行分析。 analyzer(分词器): 由三部分组成: Character Filter:将文本中html标签剔除掉。 Tokenizer:按照规则进行分词,在英文中按照空格分词 Token Filter:将切分的单词进行加工,小写,删除 stopwords(停顿词,a、an、the、is等),增加同义词 1.1 内置的分词器 分词器名称 处理过程 Standard Analyzer 默认的分词器,按词切分,小写处理 Simple Analyzer 按照非字母切分(符号被过滤),小写处理 Stop Analyzer 小写处理,停用词过滤(the, a, this) Whitespace Analyzer 按照空格切分,不转小写 Keyword Analyzer 不分词,直接将输入当做输出 Pattern Analyzer 正则表达式,默认是\W+(非字符串分隔) 1.2 内置分词器使用示例 Standard Analyzer GET _analyze {

自然语言处理之序列标注问题

≯℡__Kan透↙ 提交于 2020-01-13 20:38:42
  序列标注问题是自然语言中最常见的问题,在深度学习火起来之前,常见的序列标注问题的解决方案都是借助于HMM模型,最大熵模型,CRF模型。尤其是CRF,是解决序列标注问题的主流方法。随着深度学习的发展,RNN在序列标注问题中取得了巨大的成果。而且深度学习中的end-to-end,也让序列标注问题变得更简单了。   序列标注问题包括自然语言处理中的分词,词性标注,命名实体识别,关键词抽取,词义角色标注等等。我们只要在做序列标注时给定特定的标签集合,就可以进行序列标注。   序列标注问题是NLP中最常见的问题,因为绝大多数NLP问题都可以转化为序列标注问题,虽然很多NLP任务看上去大不相同,但是如果转化为序列标注问题后其实面临的都是同一个问题。所谓“序列标注”,就是说对于一个一维线性输入序列:        给线性序列中的每个元素打上标签集合中的某个标签:        所以,其本质上是对线性序列中每个元素根据上下文内容进行分类的问题。一般情况下,对于NLP任务来说,线性序列就是输入的文本,往往可以把一个汉字看做线性序列的一个元素,而不同任务其标签集合代表的含义可能不太相同,但是相同的问题都是:如何根据汉字的上下文给汉字打上一个合适的标签(无论是分词,还是词性标注,或者是命名实体识别,道理都是想通的)。 序列标注问题之中文分词   以中文分词任务来说明序列标注的过程。假设现在输入句子

solr8.3.1加入中文分词

偶尔善良 提交于 2020-01-13 10:01:45
solr8.3.1加入中文分词(solr在docker容器中运行) 创建的核心默认情况下没有中文分词,当我们输入一串中文,进行词语拆分时,solr会把每一个汉字都拆开,比如输入“我是中国人”,进行词语拆分的时候会拆成:“我”,“是”,“中”,“国”,“人”五个词。如下图。 这明显不是我们想要的结果。我们需要将中文分词加入到solr中,才能得到我们想要的结果。 如何加入中文分词器? 1、下载中文分词器jar包 ik-analyer-8.3.0.jar。 百度网盘下载 2、上传jar包并拷贝到 /usr/local/solr/solr/server/solr-webapp/webapp/WEB-INF/lib目录下 cp /data/soft/ik-analyer-8.3.0.jar /usr/local/solr/solr/server/solr-webapp/webapp/WEB-INF/lib chmod a+r ik-analyzer-8.3.0.jar 说明:/data/solft是docker容器中的目录,已经挂在到宿主机目录/data/coowalt/solr目录。请参考《Docker 安装solr8.3.1》一文。 3、修改/data/solr/data/meta_db/conf/目录下的managed-schema文件。加入ik-analayer配置信息 cd

es6安装中文分词插件-ik(3)

浪子不回头ぞ 提交于 2020-01-12 21:51:27
IK官网: https://github.com/medcl/elasticsearch-analysis-ik/releases 如下图:下载对应版本即可 1 、进入elasticsearch安装目录,执行以下命令( elasticsearch-analysis-ik 可以下载对应版本): ./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v6.3.1/elasticsearch-analysis-ik-6.3.1.zip 2 、安装完毕之后 重启elasticsearch 3 、使用:查询是要带: -H 'Content-Type: application/json' 查看集群中所有的索引: curl -X GET 'http://192.168.1.107:9200/_cat/indices?v' 查看集群的所有节点 curl -X GET 'http://192.168.1.107:9200/_cat/nodes?v' 查看集群的健康情况 curl -X GET 'http://192.168.1.107:9200/_cat/health?v' 1.create a index :创建索引 curl -XPUT