分词

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

3、安装中文分词器

天涯浪子 提交于 2019-11-30 01:06:52
一、前言 为什么要在elasticsearch中要使用ik这样的中文分词呢,那是因为es提供的分词是英文分词,对于中文的分词就做的非常不好了,因此我们需要一个中文分词器来用于搜索和使用。 二、IK分词器的安装和使用 我们可以从 官方github上下载该插件 ,我们下载对应于我们使用的es的版本的ik,注意选择与你安装的ElasticSearch版本对应的分词器。否则可能导致无法使用分词器。 中文分词器下载地址: https://github.com/medcl/elasticsearch-analysis-ik/releases 安装步骤 1、进入es的安装目录下的插件目录 cd /usr/local/elasticsearch-6.5.1/plugins/ 2、创建ik目录 来源: https://blog.csdn.net/lixiang987654321/article/details/100985724

第一次个人编程作业

本秂侑毒 提交于 2019-11-29 22:21:07
仓库地址 PSP PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) · Planning · 计划 120 130 · Estimate · 估计这个任务需要多少时间 1750 2010 · Development · 开发 60 60 · Analysis · 需求分析 (包括学习新技术) 300 320 · Design Spec · 生成设计文档 120 150 · Design Review · 设计复审 90 100 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 60 80 Design · 具体设计 100 120 · Coding · 具体编码 360 500 · Code Review · 代码复审 60 90 · Test · 测试(自我测试,修改代码,提交修改) 180 200 · Reporting Standard · 报告 120 100 · Test Repor · 测试报告 60 70 · Size Measurement · 计算工作量 60 50 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 60 40 · · 合计 1750 2010 一、解题思路: 拿到题目后

lucene4.7 分词器(三)

空扰寡人 提交于 2019-11-29 21:52:03
前面几章笔者把Lucene基本入门的任督二脉给打通了,从此篇开始,就开始进行Lucene的进阶开发了,那么首先摆在我们面前的第一个必须要解决的问题,就是关于中文分词的问题,因为Lucene毕竟是国外的大牛们开发的,显然会比较侧重英文文章,不过还好,在Lucene的下载包里同步了SmartCN的分词器针对中文发行的,每一次Lucene有新的版本发行,这个包同时更新。 笔者比较推荐的中文分词器是IK分词器,在进入正式的讲解之前,我们首先对Lucene里面内置的几个分析器做个了解. 分析器类型 基本介绍 WhitespaceAnalyzer 以空格作为切词标准,不对语汇单元进行其他规范化处理 SimpleAnalyzer 以非字母符来分割文本信息,并将语汇单元统一为小写形式,并去掉数字类型的字符 StopAnalyzer 该分析器会去除一些常有a,the,an等等,也可以自定义禁用词 StandardAnalyzer Lucene内置的标准分析器,会将语汇单元转成小写形式,并去除停用词及标点符号 CJKAnalyzer 能对中,日,韩语言进行分析的分词器,对中文支持效果一般。 SmartChineseAnalyzer 对中文支持稍好,但扩展性差 评价一个分词器的性能优劣,关键是看它的切词效率以及灵活性,及扩展性,通常情况下一个良好的中文分词器,应该具备扩展词库,禁用词库和同义词库

汉语言处理包Hanlp的使用

一个人想着一个人 提交于 2019-11-29 18:55:36
本来想通过python调用Java实现Hanlp的使用,参考文章: http://t.cn/RUrIF7z ##########python可以用easy_install安装一些软件############ 1.JPype使用介绍 参考: http://michael-paul.iteye.com/blog/1055786 Python 作为一种灵活的软件开发语言在当今被广泛使用。在软件开发过程中,有时需要在 Python 项目中利用既有的 Java 代码,已达到节省时间和开发成本的目的。因此,找到一个 Python 代码调用 Java 代码的桥梁是非常有意义的。 JPype 就是这样的一个工具,利用它可以使 Python 程序方便的调用 Java 代码,从而扩充 Python 语言的能力,弥补 Python 语言的不足。本文介绍了如何利用 JPype 整合 Python 程序和 Java 程序的一些基本方法。 下面是一个简单的 python 程序,通过 JPype 调用 Java 的打印函数,打印出字符串。 清单 1. hello world import jpype jvmPath = jpype.getDefaultJVMPath() jpype.startJVM(jvmPath) jpype.java.lang.System.out.println( “ hello

nlp分词词性标注及命名实体

一个人想着一个人 提交于 2019-11-29 18:55:10
title: nlp分词词性标注及命名实体 date: 2019-08-27 14:26:38 categories: 人工智能 tags: nlp cover: https://www.github.com/OneJane/blog/raw/master/小书匠/5f549e01ba4ba668ee78d415b042a010_hd.jpg nlp分词词性标注及命名实体 分词 中文分词 (Chinese Word Segmentation) 指的是将一个汉字序列切分成一个一个单独的词。分词就是将连续的字序列按照一定的规范重新组合成词序列的过程。 词性标注 词性标注 (Part-of-Speech tagging 或POS tagging) 又称词类标注或者简称标注,是指为分词结果中的每个单词标注一个正确的词性的程 序,也即确定每个词是名词、动词、形容词或其他词性的过程。在汉语中,词性标注比较简单,因为汉语词汇词性多变的情况比较少见,大多词语只有一个词性,或者出现频次最高的词性远远高于第二位的词性。据说,只需选取最高频词性,即可实现80%准确率的中文词性标注程序。 命名实体识别 命名实体识别 (Named Entity Recognition,简称NER) 又称作“专名识别”,是指识别文本中具有特定意义的实体,主要包括人名、地名、机构名、专有名词等。一般来说

Hanlp中使用纯JAVA实现CRF分词

自作多情 提交于 2019-11-29 18:54:57
与基于隐马尔可夫模型的最短路径分词、N-最短路径分词相比,基于条件随机场(CRF)的分词对未登录词有更好的支持。本文(HanLP)使用纯Java实现CRF模型的读取与维特比后向解码,内部特征函数采用 双数组Trie树(DoubleArrayTrie)储存,得到了一个高性能的中文分词器。 开源项目 本文代码已集成到HanLP中开源: http://hanlp.com/ CRF简介 CRF是序列标注场景中常用的模型,比HMM能利用更多的特征,比MEMM更能抵抗标记偏置的问题。 CRF训练 这类耗时的任务,还是交给了用C++实现的CRF++。关于CRF++输出的CRF模型,请参考《CRF++模型格式说明》。 CRF解码 解码采用维特比算法实现。并且稍有改进,用中文伪码与白话描述如下: 首先任何字的标签不仅取决于它自己的参数,还取决于前一个字的标签。但是第一个字前面并没有字,何来标签?所以第一个字的处理稍有不同,假设第0个字的标签为X,遍历X计算第一个字的标签,取分数最大的那一个。 如何计算一个字的某个标签的分数呢?某个字根据CRF模型提供的模板生成了一系列特征函数,这些函数的输出值乘以该函数的权值最后求和得出了一个分数。该分数只是“点函数”的得分,还需加上“边函数”的得分。边函数在本分词模型中简化为f(s',s),其中s'为前一个字的标签,s为当前字的标签。于是该边函数就可以用一个4

HanLP1.5.2 -python使用介绍

浪尽此生 提交于 2019-11-29 18:54:23
自然语言处理 中文分词 词性标注 命名实体识别 依存句法分析 新词发现 关键词短语提取 自动摘要 文本分类聚类 拼音简繁 http://hanlp.com/ https://github.com/hankcs/HanLP HanLP: Han Language Processing 之前需要做一个中文命名实体识别的api,看完了一些相关论文以后觉得短时间内自己实现不大现实,于是找了一些开源工具,其中哈工大的LTP效果是很好的,但是免费使用限流量,需要给钱才行; NLPIR的pynlpir似乎还不能支持命名实体识别等复杂工作,只能做一些分词之类;最后还剩下Hanlp,感谢Hanlp的作者hancks无私的将代码开源,还提供了那么详细的文档。 pyhanlp只有少数功能,其他复杂一点的功能需要使用python调用java代码来实现。 以下是api的模型部分,大多是照着文档写成的。 python调用java需要jpype库,具体安装请参考之前的博客:jpype安装的简便方法 In [1]: import jpype from jpype import * jvmPath = jpype.getDefaultJVMPath() print(jvmPath) jpype.startJVM(jvmPath) jpype.java.lang.System.out.println("hello

pyhanlp 分词与词性标注

对着背影说爱祢 提交于 2019-11-29 18:54:11
pyhanlp中的分词器简介 pyhanlp实现的分词器有很多,同时pyhanlp获取hanlp中分词器也有两种方式 第一种是直接从封装好的hanlp类中获取,这种获取方式一共可以获取五种分词器,而现在默认的就是第一种维特比分词器 维特比 (viterbi):效率和效果的最佳平衡。也是最短路分词,HanLP最短路求解采用Viterbi算法 双数组trie树 (dat):极速词典分词,千万字符每秒(可能无法获取词性,此处取决于你的词典) 条件随机场 (crf):分词、词性标注与命名实体识别精度都较高,适合要求较高的NLP任务 感知机 (perceptron):分词、词性标注与命名实体识别,支持在线学习 N最短路 (nshort):命名实体识别稍微好一些,牺牲了速度 第二种方式是使用JClass直接获取java类,然后使用。这种方式除了获取上面的五种分词器以外还可以获得一些其他分词器,如NLP分词器,索引分词,快速词典分词等等 两种使用方式的对比 第一种是使用作者给的HanLP直接获取分词器,直接segment() 会获取 默认的标准分词器也就是维特比分词器,也**可以使用newSegment函数,传入上面的分词器英文名称来获取新的分词器,如使用 HanLP.newSegment("crf") 来获取CRF分词器。**第二种方式是使用JClass从java中获取我们想要的类

基于结构化感知机的词性标注与命名实体识别框架

梦想与她 提交于 2019-11-29 18:53:38
上周就关于《结构化感知机标注框架的内容》已经分享了一篇《分词工具Hanlp基于感知机的中文分词框架》,本篇接上一篇内容,继续分享词性标注与命名实体识别框架的内容。 词性标注 训练 词性标注是分词后紧接着的一个任务,训练语料同上,接口如下: 命令行 java -cp hanlp.jar com.hankcs.hanlp.model.perceptron.Main -task POS -train -reference data/test/pku98/199801.txt -model data/test/perceptron/pos.bin API public void testTrain() throws Exception { PerceptronTrainer trainer = new POSTrainer(); trainer.train("data/test/pku98/199801.txt", Config.POS_MODEL_FILE); } 测试 词性标注器接受的输入不再是纯文本,而是分词后的单词数组或列表: public void testLoad() throws Exception { PerceptronPOSTagger tagger = new PerceptronPOSTagger(Config.POS_MODEL_FILE); System.out