[环境]python 2.7 方法一:使用pyhanlp,具体方法如下: pip install pyhanlp  # 安装pyhanlp 进入python安装包路径,如 /usr/lib/python2.7/site-packages/pyhanlp/static/ 将http://hanlp.properties.in改名为备份文件. mv hanlp.properties.in hanlp.properties.in.bak 修改hanlp.properties vim hanlp.pro…
要使用hanlp加载自定义词典可以通过修改配置文件hanlp.properties来实现.要注意的点是: 1. root根路径的配置: hanlp.properties中配置如下: #本配置文件中的路径的根目录,根目录+其他路径=完整路径(支持相对路径,请参考:https://github.com/hankcs/HanLP/pull/254) #Windows用户请注意,路径分隔符统一使用/ root=D:/Project/public_sentiment_monitor/plugin/hanl…
本文是整理了部分网友在配置hanlp自定义词典时遇到的一小部分问题,同时针对这些问题,也提供另一些解决的方案以及思路.这里分享给大家学习参考. 要使用hanlp加载自定义词典可以通过修改配置文件hanlp.properties来实现. 要注意的点是: 1.root根路径的配置: hanlp.properties中配置如下: #本配置文件中的路径的根目录,根目录+其他路径=完整路径(支持相对路径) #Windows用户请注意,路径分隔符统一使用/ root=D:/Project/public_se…
1.在data/dictionary/custom/路径下新建文件 myDict.txt.,添加新的单词,单词,词性,词频.并删除当前文件夹下的bin文件, 2.在hanlp配置文件中的CustomDictionaryPath后追加myDict.txt 3.工具类 public static List <String> getNewExtractKeyWord(String content,Integer size){ List<Term> res = HanLP.segment(…
前言: 文本分类任务的第1步,就是对语料进行分词.在单机模式下,可以选择python jieba分词,使用起来较方便.但是如果希望在Hadoop集群上通过mapreduce程序来进行分词,则hanLP更加胜任. 一.使用介绍 hanLP是一个用java语言开发的分词工具, 官网是 http://hanlp.com/ . hanLP创建者提供了两种使用方式,一种是portable简化版本,内置了数据包以及词典文件,可通过maven来管理依赖,只要在创建的 maven 工程中加入以下依赖,即可轻松使…
对于词典,直接加载文本会很慢,所以HanLP对于文本文件做了一些预处理,生成了后缀名为.txt.bin的二进制文件. 这些二进制文件相当于缓存,避免了每次加载去读取多个文件. 通过这种txt和bin结合的方式,HanLP一方面方便用户编辑查看词典,另一方面bin方便加载,这种方式可谓是兼二者之长,设计上堪称典范. 打开hanlp的data目录data\dictionary\custom,删除所有的.txt.bin文件,这样一来,HanLP下次加载词典时会自动构建.txt.bin,这样一来,你对文…
参考文献:http://blog.csdn.net/fatpanda/article/details/37911079 jar包: IK-Analyzer-extra-5.3.1.jar IKAnalyzer5.3.1.jar lucene-core-5.3.1.jar lucene-analyzers-common-5.3.1.jar 一.创建类自己的分词器配置类并实现IK-Analyzer分词器的配置接口: 值得注意的一点是:我们在指定配置文件时候,要指定我们自己的配置文件.如果不指定路径默…
之前在spark环境中一直用的是portable版本,词条数量不是很够,且有心想把jieba,swcs词典加进来, 其他像ik,ansi-seg等分词词典由于没有词性并没有加进来. 本次修改主要是采用jar包方包将词典目录 data与hanlp.properties合成一个data.jar文件. 1. pom.xml 过滤资源文件的配置 <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId…
把语料从数据库提取出来以后就要进行分词啦,我是在linux环境下做的,先把jieba安装好,然后找到内容是build jieba PKG-INFO setup.py test的那个文件夹(我这边是jieba-0.38),把自己的自定义词典(选用,目的是为了分出原始词库中没有的词以及优先分出一些词),停用词词典(选用),需要分词的语料文件,调用jieba的python程序都放到这个文件夹里,就可以用啦.至于词典要什么样的格式,在网上一查就可以了. 之前有看到别的例子用自定义词典替换掉jieba本身…
介绍 由于针对于自定义Session存储方式比较少,所以整理了使用自定义Session的方式.用于构建自定义会话存储提供程序代码,而不是使用默认的 SessionStore 介绍 背景 本文使用的是mysql数据库作为存储session的媒介,其他的方式请自行测试 如何来做自定义session 使用的表格式,建表语句如下: /****** 对象: Table Sessions 脚本日期: 2013/11/20 星期三 15:28:09 ******/ /****** 字段数据长度 = 4011…
HanLP二元核心词典解析 本文分析:HanLP版本1.5.3中二元核心词典的存储与查找.当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造start和pair数组,并基于这两个数组实现词共现频率的二分查找.当已经有缓存bin文件时,那直接读取构建start和pair数组,速度超快. 源码实现 二元核心词典的加载 二元核心词典在文件:CoreNatureDictionary.ngram.txt,约有46.3…
以下为自定义的排序方式的实现 #import "Person+Compare.h" @implementation Person (Compare) -(NSComparisonResult)CompareByName:(Person*)aPerson { return [self.name compare:aPerson.name]; } -(NSComparisonResult)CompareByAge:(Person*)aPerson { if(self.age > aPe…
一.类模板 类模板:将类定义中的数据类型参数化 类模板实际上是函数模板的推广,可以用相同的类模板来组建任意类型的对象集合 (一).类模板的定义 template  <类型形参表> class  <类名> {     //类说明体  }: template  <类型形参表> <返回类型> <类名> <类型名表>::<成员函数1>(形参表) {     //成员函数定义体  } template  <类型形参表>…
前言 转载请声明,转自[https://www.cnblogs.com/andy-songwei/p/10979161.html],谢谢! 尽管Android系统提供了不少控件,但是有很多酷炫效果仍然是系统原生控件无法实现的.好在Android允许自定义控件,来弥补原生控件的不足.但是在很多初学者看来,自定义View似乎很难掌握.其中有很大一部分原因是我们平时看到的自定义View使用中,有多种形式,有的寥寥数笔,有的逻辑很复杂,有的直接继承View或ViewGroup,有的却直接继承系统的原生控…
ASP.NET Core应用本质上,其实就是由若干个中间件构建成的请求处理管道.管道相当于一个故事的框架,而中间件就相当于故事中的某些情节.同一个故事框架采用不同的情节拼凑,最终会体现出不同风格的故事.而我们的ASP.NET Core应用也正是如此,同一管道采用不同的中间件组合,最终也会呈现出不同的应用形态. 从上述的概念种可以看出,中间件在ASP.NET Core应用有着举足轻重的地位.虽然ASP.NET Core为我们提供了一组丰富的内置中间件,但有些时候我们可能会需要自定义一些中间件,将其…
站在源码的肩膀上全解Scroller工作机制 Android多分辨率适配框架(1)- 核心基础 Android多分辨率适配框架(2)- 原理剖析 Android多分辨率适配框架(3)- 使用指南 自定义View系列教程00–推翻自己和过往,重学自定义View 自定义View系列教程01–常用工具介绍 自定义View系列教程02–onMeasure源码详尽分析 自定义View系列教程03–onLayout源码详尽分析 自定义View系列教程04–Draw源码分析及其实践 自定义View系列教程05…
[操作系统知识储备,进程相关概念,开启进程的两种方式.进程Queue介绍] 操作系统知识回顾 为什么要有操作系统. 程序员无法把所有的硬件操作细节都了解到,管理这些硬件并且加以优化使用是非常繁琐的工作,这个繁琐的工作就是操作系统来干的,有了他,程序员就从这些繁琐的工作中解脱了出来,只需要考虑自己的应用软件的编写就可以了,应用软件直接使用操作系统提供的功能来间接使用硬件. 什么是操作系统 操作系统就是一个协调.管理和控制计算机硬件资源和软件资源的控制程序. 操作系统位于计算机硬件与应用软件之间,本…
.NET MVC3 几种返回 JSON 对象的方式和注意事项 转自:http://blog.csdn.net/xxj_jing/article/details/7382589 引言在用 .NET MVC3 给我们做 WEB 项目带来很大灵活性同时,对刚上手的同学来说有些细微的设置导致的问题让我们相当的“纠结”! 这里要讨论的就是:使用JQuery的 Ajax 请求后“返回”的JSON 数据问题. 相信大多数同学都会遇到过,就是在后台已经拼接好了一(拼接方法比较多,我的博客也有提到过!)串标准的J…
前言 大家好,给大家带来Android开发工程师文集-Activity生命周期,启动方式,Intent相关介绍,Activity详细讲解的概述,希望你们喜欢 Activity是什么 作为一个Activity,就是一个界面,当我们在手机上打开一个APP时,你看到的页面就是基于Activity生成的. 那么你再点击一个按钮跳转到另一个界面时,就是又一个Activity界面,由Activity可以分出很多的知识点. 如,Activity的生命周期,activity的启动方式,还有如果两个activit…
js各种继承方式和优缺点的介绍 作者: default 参考网址2 写在前面 本文讲解JavaScript各种继承方式和优缺点. 注意: 跟<JavaScript深入之创建对象>一样,更像是笔记. 哎,再让我感叹一句:<JavaScript高级程序设计>写得真是太好了! 1.原型链继承 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 function Parent () {   this.name = 'kevin'; }   Parent.proto…
一开始按照网上的方法在配置文件加入自定义的词典不行,不知道是什么问题,这里给出链接,有兴趣的自己尝试:https://my.oschina.net/u/3793864/blog/3073171 说一下我的方法:在hanlp.java中添加路径即可,数组里直接加入 可以看到我是谁三个字被当成名词输出 整个项目:https://github.com/mmmjh/HanlpDemo…
转载:http://itindex.net/detail/50710-springaop-controller-service 从业近二,三年了,第一次写博客,平时做做脚手架或者架构一些基础框架然后给大家使用或者自己总结翻译一些文档.虽然是第一次但是我还是要拿Spring开刀.希望张开涛,涛兄看到的时候不要喷我,给我一点指导. 首先我们为什么需要做日志管理,在现实的上线中我们经常会遇到系统出现异常或者问题.这个时候就马上打开CRT或者SSH连上服务器拿日子来分析.受网络的各种限制.于是我们就想为…
一.通过动画实现 定义res/anim/loading.xml如下: View Row Code<?xml version="1.0" encoding="UTF-8"?><animation-list android:oneshot="false"xmlns:android="http://schemas.android.com/apk/res/android"><item android:du…
一.问题起因 最近有网友提问说,Access中在用查询指定排序方式时,为什么只有升序跟降序,怎么米有自定义排序了?竟然比Excel都弱啊! 其实这是对Access的误解,我这就给大家来解一下疑惑.案例的大致意思:有一个乱序的部门表(中文录入),现在想按一部.二部.三部.......的顺序排序. 二.操作步骤 1.首先需要建立一个对照表,将一部编号为1,二部编号为2,后面的以此类推. 2.接下来在建立的查询里面,将对照表与部门表关联起来,并将ID字段拖出来,但是不显示,指定排序为升序即可. 三.动…
业务场景: 现在项目中需要通过对spark对原始数据进行计算,然后将计算结果写入到mysql中,但是在写入的时候有个限制: 1.mysql中的目标表事先已经存在,并且当中存在主键,自增长的键id 2.在进行将dataFrame写入表的时候,id字段不允许手动写入,因为其实自增长的 要求: 1.写入数据库的时候,需要指定字段写入,也就是说,只指定部分字段写入 2.在写入数据库的时候,对于操作主键相同的记录要实现更新操作,非插入操作 分析: spark本身提供了对dataframe的写入数据库的操作…
本文分析:HanLP版本1.5.3中二元核心词典的存储与查找.当词典文件没有被缓存时,会从文本文件CoreNatureDictionary.ngram.txt中解析出来存储到TreeMap中,然后构造start和pair数组,并基于这两个数组实现词共现频率的二分查找.当已经有缓存bin文件时,那直接读取构建start和pair数组,速度超快. 源码实现 二元核心词典的加载 二元核心词典在文件:CoreNatureDictionary.ngram.txt,约有46.3 MB.程序启动时先尝试加载C…
一.概述 还记得刚开始做项目的时候,看到别人封装的js工具类百思不得其解,看来看去看不懂,深挖一下,其实就是自己没有耐下心去看,但是遇到问题不解决,总会遇到的,今天还是遇到了,就去找了找帖子,重新思考与实践一下,豁然开朗~!在此记录一下迟来顿开的茅塞. 关于JS 对象,啊,对象么,不就是一个个实例么,是的,js 也可以创建类,创建对象,创建对象方法,我们今天就具体说一下. 二.创建与使用(开始) es 标准给我们提供了String.Math.Array等等这些js对象,当我们使用的时候只需要ne…
package com.fuge.bigdata.datahub.analysis import java.io.{DataInput, DataOutput} import com.fuge.bigdata.tools.common.utils.SparkUtils import org.apache.hadoop.io.{NullWritable, WritableComparable} import org.apache.spark.SparkContext /** * Created b…
在django1.6中,默认的加密方式是pbkdf_sha256,具体算法不表,一直以来用django的自带用户验证都十分顺手,但如果需要修改默认加密方式为md5,具体方法为: 在settings.py中加入: PASSWORD_HASHERS = ( 'myproject.hashers.MyMD5PasswordHasher', 'django.contrib.auth.hashers.MD5PasswordHasher', 'django.contrib.auth.hashers.PBKD…
说明: SSM项目中的每一个请求都需要进行日志记录操作.一般操作做的思路是:使用springAOP思想,对指定的方法进行拦截.拼装日志信息实体,然后持久化到数据库中.可是仔细想一下会发现:每次的客户端的每一次请求,服务器都会处理两件事情.一个是正常的业务操作:另一个就是我们额外要做的日志数据记录.这样的话,每次请求的"效率"就变得收到影响了,换句话说就是"耦合"了.明明一个请求是干一件特定的事情,你却又给我加上一部分东西.而且这一次请求是必须在额外做的事情做完才能返…