中文分词

Solr企业搜索引擎搭建

痴心易碎 提交于 2019-12-06 23:10:22
一、 SOLR搭建企业搜索平台 运行环境: 运行容器:Tomcat6.0.20 Solr版本:apache-solr-1.4.0 分词器:mmseg4j-1.6.2 词库:sogou-dic 准备工作: 下载tomcat 6.0.20:http://tomcat.apache.org/download-60.cgi 下载solr:http://apache.etoak.com/lucene/solr/1.4.0/ 详情请见:http://wiki.apache.org/solr/Solr1.4 下载分词器:http://code.google.com/p/mmseg4j/ 下载sougou词库: http://code.google.com/p/mmseg4j/downloads/detail?name=sogou-dic-utf8.zip&can=2&q= 开始配置: 1、安装tomcat 2、将下载的solr包下面的dist文件夹中的apache-solr-1.4.0.war 拷贝到 tomcat的webapps 并且改名为 solr.war 一般情况下会自动生成相应的文件夹。 3、新建一个 solr-tomcat文件夹,我是把这个文件夹建立在C盘根目录,你可以采用同样方式,也可以不这样,放哪由你决定。 建立好该文件夹以后,在把它下面在建立一个solr文件夹

最大匹配算法

拥有回忆 提交于 2019-12-06 14:42:56
中文分词:最大匹配算法 (一)引言 分词是自然语言处理中非常常见的操作,也是必不可少的文本数据预处理步骤。各国语言的表达方式和书写方式截然不同,因此分词的方式和难度也不同。英文分词是最简单的,因为每个单词已经用空格自动分词了,比如"I like Chinese" 这个句子已经被分成了三个单词。当然,英文分词也是有难点的,比如单词大小写所代表的含义不同以及各种符号的用法,这里暂不讨论。中文是汉字为基本书写单位,词语甚至句子之间并没有明显的区分标记,并且不同的词组合容易产生歧义。比如:“结婚的和尚未结婚的”,计算机很难判断是分成“结婚/的/和/尚未/结婚/的”还是“结婚/的/和尚/未/结婚/的”。因此,中文分词是一项非常具有挑战性的工作。 现今,中文分词方法一般被分为三类: (1)基于字典的分词方法 (2)基于统计的分词方法 (3)基于机器学习的分词方法 本篇文章主要介绍最直接粗暴的方法----基于词典的分词方法。 (二)正向最大匹配算法 顾名思义,正向最大匹配是从左到右扫描字符串,在一个给定的词典中寻找词的最大匹配。先看一个例子: 给定一个句子:“他是研究生物化学的”。 给定一个词典:["他","是","研究","研究生","生物","物化","化学","学","的"]。 思路: 先获得词典中词的最大长度m,这个例子中m为3;给字符串初始位置一个指针pi,即在“他”的位置

ES 或 Solr 分词器的相关面试题:

不羁岁月 提交于 2019-12-06 10:53:30
1、ES 中的 IK 分词器能分中文和英语的原因是什么? ik 分词器为中文分词器,默认可对中文分词;通过 Setting API 构造 analyzer (字符过滤) , 可以对IK中文分词器做一些修改,让它实现 回溯词根 ,从而实现真正的英文分词。 ES默认有 8 个 analyzer 。 2、IK分词器的类型? Ik_smart分词器 和 ik_max_word 分词器 最粗粒度 最细粒度 3、ES中怎么进行拼音的分词? 安装ES 的拼音分词器 4、Solr是怎么用的? ①启动solr服务器; ②创建集合(collection/core) ③配置中文分词 ④在图形界面通过articles进行测试是否支持中文分词 ⑤定义字段类型 ⑥建立索引并查询 5、 solr怎么设置搜索结果排名靠前(得分)? 可以设置文档中域的boost值,boost值越高计算出来的相关度得分就越高,排名也就越靠前。此方法可以把热点商品或者是推广商品的排名提高。 来源: https://www.cnblogs.com/wushaopei/p/11979294.html

8 HMM 和 CRF

自作多情 提交于 2019-12-06 10:20:30
近几年在自然语言处理领域中,HMM(隐马尔可夫模型)和 CRF(条件随机场)算法常常被用于分词、句法分析、命名实体识别、词性标注等。由于两者之间有很大的共同点,所以在很多应用上往往是重叠的,但在命名实体、句法分析等领域 CRF 似乎更胜一筹。通常来说如果做自然语言处理,这两个模型应该都要了解,下面我们来看看本文的内容。 从贝叶斯定义理解生成式模型和判别式模型 理解 HMM(隐马尔可夫模型)和 CRF(条件随机场)模型之前,我们先来看两个概念:生成式模型和判别式模型。 在机器学习中,生成式模型和判别式模型都用于有监督学习,有监督学习的任务就是从数据中学习一个模型(也叫分类器),应用这一模型,对给定的输入 X 预测相应的输出 Y。这个模型的一般形式为:决策函数 Y=f(X) 或者条件概率分布 P(Y|X)。 首先,简单从贝叶斯定理说起,若记 P(A)、P(B) 分别表示事件 A 和事件 B 发生的概率,则 P(A|B) 表示事件 B 发生的情况下事件 A 发生的概率;P(AB)表示事件 A 和事件 B 同时发生的概率。 根据贝叶斯公式可以得出: 生成式模型:估计的是联合概率分布,P(Y, X)=P(Y|X)*P(X),由联合概率密度分布 P(X,Y),然后求出条件概率分布 P(Y|X) 作为预测的模型,即生成模型公式为:P(Y|X)= P(X,Y)/ P(X)

Elastic Search中normalization和分词器

纵然是瞬间 提交于 2019-12-06 05:31:02
为key_words提供更加完整的倒排索引。 如:时态转化(like | liked),单复数转化(man | men),全写简写(china | cn),同义词(small | little)等。 如:china 搜索时,如果条件为cn是否可搜索到。 如:dogs,搜索时,条件为dog是否可搜索到数据。 如果可以使用简写(cn)或者单复数(dog&dogs)搜索到想要的结果,那么称为搜索引擎normalization人性化。 normalization是为了提升召回率的(recall),就是提升搜索能力的。 normalization是配合分词器(analyzer)完成其功能的。 分词器的功能就是处理Document中的field的。就是创建倒排索引过程中用于切分field数据的。 如:I think dogs is human’s best friend.在创建倒排索引的时候,使用分词器实现数据的切分。 上述的语句切分成若干的词条,分别是: think dog human best friend。 常见搜索条件有:think、 human、 best、 friend,很少使用is、a、the、i这些数据作为搜索条件。 1 ES默认提供的常见分词器 要切分的语句:Set the shape to semi-transparent by calling set_trans(5)

sphinx中文分词搜索coreseek windows下安装与基本使用简介

狂风中的少年 提交于 2019-12-06 04:06:59
这是半年前没有对外写的文章,现在拿出来分享下。可能会有一些不正确或不严谨的地方,某些语言可能比较轻浮,请见谅。 首先说明一下coreseek其实就是基于sphinx的中文分词版本,sphinx本身并没有提供中文分词功能,需要自行安装中文词库比较麻烦,coreseek提供了中文分词功能,提供了完整的官方中文使用文档,并且在使用上和官方的sphinx并没有差别。以 coreseek-4.1 版本为例 下载地址 http://www.coreseek.cn/news/14/54/ 帮助手册 http://www.coreseek.cn/products-install/#doc_cn 下面开始coreseek的安装 安装过程很简单,下载 coreseek-4.1-win32.zip ,解压至某一个文件夹,这里假设放在d:\coreseek下,双击打开test.cmd进行测试,会出来一串命令行的提示信息,留意提示信息,如果没有提示错误就算安装完成 安装后,先别急着怎么使用,首先要配置好文档,解缩包中有测试文件这里测试也略,教程尽量简单点(其实是我懒。。) 配置文件的位置可以放在任何地方,不过建议就放在d:\coreseek\bin\的目录好了,d:\coreseek\etc\目录下提供了好多配置的参考,我们把csft_mysql.conf复制至d:\coreseek\bin\下

jieba完整文档

廉价感情. 提交于 2019-12-05 22:02:55
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 授权协议 在线演示 http://jiebademo.ap01.aws.af.cm/ (Powered by Appfog) 网站代码: https://github.com/fxsjy/jiebademo 安装说明 代码对 Python 2/3 均兼容 全自动安装: easy_install jieba 或者 pip install jieba / pip3 install jieba 半自动安装:先下载 http://pypi.python.org/pypi/jieba/ ,解压后运行 python setup

自然语言学习01

梦想与她 提交于 2019-12-04 21:05:46
按照中文语料处理的过程,在获取到语料之后开始分词,分词之后可以进行一些统计和关键字提取,并通过数据可视化手段熟悉和了解你的数据。紧接着通过词袋或者词向量,把文本数据转换成计算机可以计算的矩阵向量。后续从机器学习简单的有监督分类和无监督聚类入手,到深度学习中神经网络的应用,以及简易聊天机器人和知识图谱的构建。 结构化数据、半结构化和非结构化数据 对于结构化数据而言:关系型数据库以及基于 Hadoop 的 HDFS 分布式文件系统、Hive 数据仓库和非关系型数据库 Hbase,以及 Elasticsearch 集群等数据存储的关系数据库或者 NoSQL,可以用来管理和存储数据。基于 MapReduce、Spark 和 Storm、Flink 等大数据处理框架可以分别处理离线和实时数据等。 半结构化、非结构化的数据:除了以 ELK 为代表的日志处理流程,过去在其它限定领域基于规则和知识库也取得了一定的成果 图灵测试 自然语言处理(NLP)的研究对象是计算机和人类语言的交互,其任务是理解人类语言并将其转换为机器语言。在目前的商业场中,NLP 技术用于分析源自邮件、音频、文件、网页、论坛、社交媒体中的大量半结构化和非结构化数据、 获取语料 语料,即语言材料。语料是语言学研究的内容。语料是构成语料库的基本单元。所以,人们简单地用文本作为替代

简易中文分词算法(python)

杀马特。学长 韩版系。学妹 提交于 2019-12-04 20:59:40
主要注意一下词表的中文编码,可以用sublime转换一下 写的不是很好也不太完善,比较粗略吧,结课以后如有机会我会完善的 —— 2017.10.27 # -*- coding: utf-8 -*- __author__ = 'Zhao' import re import operator # --------------- in this part we save the list as list --------------- path = '/Users/apple/desktop/' # 这里可以随便改你存放的文件夹 fp = open(path + 'list.txt' ) # list.txt这里可以放你的词表的文件名 ori = fp.readlines() # ori is the list with out any operation copy = [] for x in ori: x = re.sub( r'\n' , '' , x) copy.append(x) # in this part we change the format in a into standard format and save as copy fp.close() # we close the file, then we can run the list totally in this

python+gensim︱jieba分词、词袋doc2bow、TFIDF文本挖掘

允我心安 提交于 2019-12-04 20:59:02
分词这块之前一直用R在做,R中由两个jiebaR+Rwordseg来进行分词,来看看python里面的jieba. 之前相关的文章: R语言︱文本挖掘之中文分词包——Rwordseg包(原理、功能、详解) R语言︱文本挖掘——jiabaR包与分词向量化的simhash算法(与word2vec简单比较) . 一、jieba分词功能 来源github: https://github.com/fxsjy/jieba 1、主要模式 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 . 2、算法 基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况所构成的有向无环图 (DAG) 采用了动态规划查找最大概率路径, 找出基于词频的最大切分组合 对于未登录词,采用了基于汉字成词能力的 HMM 模型,使用了 Viterbi 算法 . 3、主要功能 jieba.cut 方法接受三个输入参数: 需要分词的字符串;cut_all 参数用来控制是否采用全模式;HMM 参数用来控制是否使用 HMM 模型 1 2 jieba.cut_for_search 方法接受两个参数