自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

dalangzhonghangxing的专栏

学习,分享。

  • 博客(76)
  • 资源 (1)
  • 收藏
  • 关注

原创 关系提取与关系分类——论文阅读列表

已阅读Relation Classification via Convolutional Deep Neural NetworkStructure Regularized Neural Network for Entity Relation Classification for Chinese Literature TextDistant Supervision for Relation...

2018-05-09 09:38:51 1555 3

原创 ThreadPoolExecutor源码解析

概述Core and maximum pool sizes当有新的task通过execute方法提交。 1. 如果目前线程数 < corePoolSize,不论是否有空闲线程,这时都会创建一个新的线程来执行这个任务。 2. 如果corePoolSize < 目前线程数 < maximumPoolSize,只有当队列满了之后才会创建新线程Creating n...

2018-07-20 14:26:02 310

原创 Semaphore源码解析

Semaphore的实现主要依赖AbstractQueuedSynchronized,它实现了AQS的共享锁方案,即实现了tryAcquireShared与tryReleaseShared这两个方法。Sync,继承自AbstractQueuedSynchronized,实现了非公平的tryAcquireShared方法与tryReleaseShared。abstract static c...

2018-07-01 21:57:11 380

原创 深入ReentrantLock源码解析

ReentrantLock是基于AQS实现的,它提供了公平锁与非公平锁两种策略,当然这两种策略都是抢占式的。其核心代码是对AQS的公平、非公平的实现,下面我们来看其核心代码:内部类Sync,该类定义为抽象类,并继承自AbstractQueuedSynchronizer,它还会被NonfairSync(非公平策略)与FairSync(公平策略)两个类继承。主要关注nonfairTryAcqui...

2018-07-01 21:21:59 940

原创 在竞争激烈的情况下,ReentrantLock与CAS的性能比较

这次看了源码,发现ReentrantLock的底层实现是AQS,而AQS底层实现是Volatile+CAS+CLH队列,因此想看看ReentrantLock与CAS的性能比较,因此做了这么一组实验。// 使用ReentrantLockclass LockRunnable implements Runnable { static int i = 0; private Reen...

2018-07-01 11:52:10 2621

原创 深入AbstractQueuedSynchronized(AQS)源码

AQS定义了一套多线程访问共享资源的同步器框架,许多同步类实现都依赖于它,如常用的ReentrantLock/Semaphore/CountDownLatch等等源码盗用一张图,来源http://www.cnblogs.com/waterystone/p/4920797.html AQS通过维护一个private volatile int state,并提供getState(),...

2018-06-30 22:57:22 1336

原创 深入synchronized原理

参考博客synchronized关键字最主要有以下3种应用方式 1. 修饰实例方法,作用于当前实例加锁,进入同步代码前要获得当前实例的锁 2. 修饰静态方法,作用于当前类对象加锁,进入同步代码前要获得当前类对象的锁 3. 修饰代码块,指定加锁对象,对给定对象加锁,进入同步代码库前要获得给定对象的锁。Java对象头Java对象头由如下两部分组成: 1. Mark Word:存...

2018-06-30 17:09:59 282

原创 代理模式

静态代理即,代理类与被代理类都实现一个统一的接口,或继承相同的父类 静态代理能够在不修改被代理类的情况下,对其功能进行扩展。 但是因为要依赖接口,如果项目中希望通过代理的方式来实现日志记录,那岂不是每个类都要定义一个接口?public class StaticProxyDriver { // 首先定义一个接口,供代理类与被代理类实现 static interface A...

2018-06-24 12:13:35 152

原创 迭代器模式

迭代器模式主要用于,对于数组、List、Set等记录多个元素的数据结构,给出一种统一的遍历方式。 大家不要因为有for(Object o :objects)这个for-each的语法糖的存在,而认为这个模式没用,其实for-each正是使用了Iterator。 下面写一个简单的例子感受一下,当然为了突出Iterator的作用,在这里也没用for-each。public class Iter...

2018-06-19 21:55:53 266

原创 模板方法模式

模板方法模式一般用于流程处理,它能够定义一套流程的框架,然后由子类来实现每一个步骤具体的操作。 通俗一点,就是父类定义一系列接口,并固定这些接口的调用次序;子类只能够细化每一步,无法改变(也不需要改变)这些步骤的执行次序。 下面我们通过一个例子来感受一下: 我们要实现两个流程上大致一样的操作:烧一条红烧鱼、做一斤小龙虾。我们先抽象一下这两道菜的公共流程: 1. 杀死它们 2. 把它们弄...

2018-06-18 14:16:23 151

原创 适配器模式

适配器模式的主要作用是,将一个接口,转换成另一个接口。 说的在直白点,就是有两个名字、功能、属性、方法的不同的类,使得其中的一个,能通过适配器,能看起来像(实际的实现上一般是由差异的)另一个。 给一个例子:在java中,早起的Collection有一个elements()方法,通过枚举类来遍历集合集合中的所有元素;但现在都用Iterator,为了避免之前用elements()方法的地方报错,因...

2018-06-18 12:04:54 164

原创 命令模式

命令模式能够封装一系列操作,然后对外给出一个统一的接口,如execute,从而方便执行类可以进行统一的处理,而不同考虑不同操作的差异;实际的场景有工作队列、线程池、日志安排。多线程的run方法就是一个命令模式的典范。 下面会模拟两组不同的操作 1. 开关灯 2. 煮饭——淘米、加水、放入锅子、开火public class CommandPatternDriver { static...

2018-06-17 22:29:30 147

原创 装饰者模式

观察者模式的精髓是,装饰者与被装饰者都源于同一个父类。 装饰者对父类方法的实现是基于被装饰者的,如DisCount的cost方法需要用到HotGoods的cost方法。 除了折扣,还有奶茶与珍珠、椰果;手抓饼与烤肠、鸡蛋等场景。 共同点是折扣、珍珠、椰果、烤肠、鸡蛋不会单卖,都需要依赖商品、奶茶、手抓饼,即在价格上对主要商品进行装饰。public class DecoratorPatte...

2018-06-17 15:49:01 151

原创 观察者模式

观察者模式由Subject与Observer组成,它们的主要接口如下:interface Subject{ // 添加一个观察者 void registerObserver(Observer observer); // 移除一个观察者 void removeObserver(Observer observer); // 通知所有注册的Observ...

2018-06-13 21:32:49 135

转载 ThreadLocal概述

转载自http://blog.xiaohansong.com/2016/08/06/ThreadLocal-memory-leak/ThreadLocal与线程同步机制不同,线程同步机制是多个线程共享同一个变量,而ThreadLocal是为每一个线程创建一个单独的变量副本,故而每个线程都可以独立地改变自己所拥有的变量副本,而不会影响其他线程所对应的副本。可以说ThreadLocal为多线程环境...

2018-06-13 20:34:33 172

原创 Java中引用传递与值传递

基本类型为值传递类、数组、接口为引用传递final类(例如String、Integer、Double等)虽然是引用传递,但是无法在方法内部改变方法外部变量的值,因为final类的实例改变的时候,会重新创建一个对象,然后将方法中参数的引用指向新的地址。引用传递,传递的是引用的copy,final类型会改变参数的引用,因此原值不变。...

2018-06-12 11:22:56 151

原创 python多线程

现在的CPU都是多核的,但是我们写的程序大部分都是单核的,为了缩短跑特征的时间,在此介绍下非常有用的python3多线程。import threading# 自定义的多线程工具类,class myThread(threading.Thread): # thread_name 线程名称,方便调试 # func 回调函数 # begin,end是参数,这里可以该进...

2018-06-05 13:59:42 902

原创 AngularJS中Directive传function,并调用

在Angularjs中,指令是个好东西,可以极大的提高代码的重用性,也可以使各个模块之间解耦,提高代码的可维护性。但是在实际开发中,仅仅用它来传递值是远远不够的,传递方法在很多情况下比传递值更加有效,下面我来介绍下如何往directiive中传递方法。收先我们定义一个指令,用来执行controller中的一个方法 var app = angular.module('App'); ...

2018-05-24 20:12:47 3699

原创 Angularjs实现值拷贝,不断开双向绑定

$scope.value= newValue; //直接用=号进行赋值操作,会导致双向绑定断开angular.copy(newValue, $scope.value);//使用angular.copy可以实现值拷贝,不断开双向绑定

2018-05-18 09:20:25 359

原创 Distant Supervision for Relation Extraction via Piecewise Convolutional Neural Networks

主要贡献提出使用PCNN来自动提取特征。往PCNN中加入multi-instance learning,用来解决远程监督引发的错误标签问题。提出分段进行max pooling,从而考虑两个Entity之间的结构特征。作者提出,之前关于关系分类的方法主要分为2种: 1. 基于特征的方法,这种方式对人工特征向量的要求较高,需要为数据集找出一种合适的特征表示。 2. 基于kernel...

2018-05-14 15:27:10 1838

原创 使用nltk + Stanford parser生成句法树

在自然语言处理中,句法树是比较有用的特征,特别是生成最短依赖路径SDP。首先我们要去官网下载jar包。有多种语言可选,也可以下载完整版。我们下好了之后,解压stanford-parser-full-2018-02-27.zip文件,我们需要其中的如下几个文件: stanford-parser-3.9.1-models.jarstanford-parser.jar解压stanford-...

2018-05-13 14:27:36 5552 6

原创 使用gensim+jieba生成Word Embeddings

在自然语言处理中,使用Word2Vec来生成Word Embeddings是非常常用的一种做法,而gensim这个库提供了生成W2V的接口。import osimport jiebafrom gensim.models import Word2Vec# 迭代器,使用jieba将句子进行分词class Sentences(object):# 这个类可以根据实际情况重写,我已经将所有的文...

2018-05-13 14:01:01 1572

原创 Distant Supervision——远程监督

定义:只要包含两个Entity的句子,都在描述同一种关系。 用途:主要用来为关系分类任务扩充数据集。 优点:能够很快速地为数据集打上标签 缺点:它假设只要包含两个Entity的句子,都在描述同一种关系,这个假设会产生很多地错误标签。可能这两个Entity这是与某个主题有关。 因此往往还需要用一些过滤的方法去筛选出对关系分类有用的句子,比如sentence-level Attention。...

2018-05-08 22:22:06 9845

原创 Reinforcement Learning for Relation Classification from Noisy Data

主要贡献 提出一个新的关系分类模型,它有实体选择器与关系分类器构成。它能够在句子级别提取关系。 将实体选择问题转换成强化学习问题,这使得不需要实体选择的标签,而只需要关系分类器的弱监督的回馈就能进行实体选择。 摘要 现在的关系分类方法都是依赖拍距离监督假设(distance supervision assume)的,它假设一系列提到一对实体的句子,都是在描述这对...

2018-05-08 15:46:16 2392

原创 Classifying Relations via Long Short Term Memory Networks along Shortest Dependency Path

主要贡献:SDP对于关系分类很有用,它包含了大量对关系分类有用的信息。自然语言的歧义性会提高这个任务的难度,因此整合异构语言知识对任务是有益的。将SDP按照公共子节点分成两段子路径能够捕捉到关系的有向性。LSTM单元能够有效的检测到特征并沿着SDP传播。摘要 这篇文章中,作者提出了SDP-LSTM模型来对一句句子中的两个实体进行关系分类。这种生机网络架构利用了两个实体间的...

2018-05-08 15:33:50 1350 1

原创 Taxonomy部分方法

基于分布式表示关键概念获取生成候选上位词(hypernyms)或下位词(hyponyms),这两类词通常是key terms,我们可以通过词性标注(POS tagging)或者命名实体识别(named entity recognition,NER)加上基于规则的匹配来提取。对于专业领域的taxonomies,需要在预处理的最后进行domain filter来过滤掉不在领域内的术语从而提...

2018-05-08 15:29:33 803

原创 Distant Supervision for Relation Extraction with Sentence-Level Attention and Entity Descriptions

2018-05-08 15:18:54 2573

原创 判断一个属性的修饰词

在阅读Spring源码时发现里面有一个很有意思的方法——ReflectionUtils.isPublicStaticFinal(Field field),这个方法能够判断一个属性是否是public static final修饰的,其源码如下: /** * Determine whether the given field is a "public static final"...

2018-04-22 11:30:16 306

原创 @ManyToMany,Cascade为All时,save报detached entity passed to persist

问题描述public class EditPrivilege extends EntityId { @ManyToMany(fetch = FetchType.LAZY, cascade = CascadeType.ALL) @JoinTable(name = REL_EDITPRIVILEGE_ROLE) private Set<Role> edita...

2018-04-14 13:35:28 2954

原创 Shutdown Hooks

Shutdown Hooks可以在JVM shutting down的时候,运行一段代码,如果一些场景需要我们在JVM挂了的时候,执行一些特殊的清理工作,那我们就可以使用它了。但是如果VM是因为外部(例如linux下面的kill -9)或者资源问题(例如out of memory)引起的shutting down,那它也无法被触发。Shutdown Hook使用起来非常简单,我们只需要继承...

2018-03-11 11:03:17 455

原创 Spring Boot多数据源配置

动机在最近的项目中,由于新项目要和老项目整合(新旧业务过渡),因此需要将的数据库表与老数据库表做数据库同步。方案利用Spring Boot支持多数据源的特性,配置两个数据源来实现该需求。(这篇博客不讨论业务层面的实现方式,只讨论多数据源的配置。)实现新建两个配置类(即加@Configuration注解的类),一个为PrimaryDatasourceConfig,用来配置本项目的数据源;另一个叫S

2017-11-02 10:22:21 2423

原创 Sping Boot+Maven实现多环境切换

在实际开发中,由于dev、test以及prob三个版本的运行环境是不同的(比如数据库、redis、域名的配置等等),但是它们之间环境的切换又相对频繁。为了防止每次版本切换都手工去修改环境、测试环境,Spring Boot 和 Maven提供了profiles来方便我们切换环境。首先我们在src/main/resources目录下创建4个properties文件,分别是application.pro

2017-11-01 23:42:10 585

原创 配置Spring Boot通过@ConditionalOnProperty来控制Configuration是否生效

问题在最近的项目中遇到一个实际问题,该项目要与老项目整合,但是该项目与老项目用的数据库不是同一个,因此要做数据库同步。由于数据库同步与正常业务解耦,仅仅依赖该项目处理后的数据,再加上数据库同步用的Oracle,因此打算在dev版本上面不加入数据库同步,在test与prod版本上加入数据库同步。这样就要求在dev版本下,对第二个数据源的配置不生效;而test与prod版本下,第二个数据源生效。解决方

2017-11-01 23:23:54 99636 9

原创 安装gensim的过程中遇到的坑

兴高采烈地前往https://radimrehurek.com/gensim/install.html,准备安装gensim根据提示敲下命令pip install –upgrade gensim过了一段时间之后,控制台显示no lapack/blas resources found去网上搜寻一番,发现要手动安装scipy前往http://www.lfd.uci.edu/~gohlke/pyt

2017-10-10 13:31:06 25561

原创 实战Java高并发程序设计(三)JDK并发包

实战Java高并发程序设计(三)JDK并发包同步控制——重入锁    重入锁可以完全替代synchronized关键字。其使用方法如下:public ReentrantLock lock = new Reentrantlock(); public void run(){ lock.lock(); lock.

2017-07-25 15:42:23 900

原创 实战Java高并发程序设计——单例模式

单例模式是设计模式中使用最为普遍的模式之一。它是一种对象创建模式,用于产生一个对象的具体实例,它可以确保系统中一个类只有一个实例。这种模式有一下两个好处: 1.对于使用频繁地对象,可以省略new操作花费的时间。特别是对于那些重量级对象而言,能够节省很多系统开销。 2.由于new操作的频率减少,系统内存的使用频率也会降低。这将减少JVM的GC压力。   下面来看一种单例实现public

2017-07-25 12:48:21 1092

原创 实战Java高并发程序设计(二)Java并行程序基础

进程与线程 进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是程序的容器。线程(Thread)是CPU调度的最下单位,它是建立在进程的基础上运行的。使用多线程而不使用多进程的原因是,线程间的切换和调度的成本远小于进程。线程的State有一下几种: (1) NEW:线程还没有开始执行。 (2) RUNNAB

2017-07-11 21:19:04 625

原创 实战Java高并发程序设计(一)走进并发世界

基本概念并发(concurrency)和并行(parallelism) 并发偏重玉多个任务交替执行,而多个任务之间可能还是串行的。 并行是真正意义上的“同时执行”。临界区 临界区用来表示一种公共资源,或者说是共享数据,可以被多个线程使用。但是每次只能由一个线程使用它。阻塞(blocking)和非阻塞(non-blocking) 阻塞指多个线程因为需要某个临界区资源而发生等待。 非阻塞是

2017-07-04 22:07:04 1544

原创 linux下单节点Kafka安装配置流程

假设节点的IP为127.0.0.1去官网下载最新Kafka安装包将安装包解压进入解压后的文件夹,修改conf/server.properties文件 broker.id=0#默认为0,在多节点下,每个节点的broker.id要不同 > listeners = PLAINTEXT://127.0.0.1:9092 log.dirs=/tmp/kafka-logs#日志文件夹

2017-05-12 21:50:37 1414

原创 Error Code: 1290. The MySQL server is running with the --secure-file-priv op

我的MYSQL版本是5.7,一开始将导入文件放在”桌面”上,然后提示该错误。原因是导入文件所在目录不是安全目录。 方法一: 首先执行show variables like '%secure%';,查看MYSQL指定的安全目录在哪里。 查询结果中会有这样一条记录secure_file_priv | C:\ProgramData\MySQL\MySQL Server 5.7\Uploads\

2017-05-10 10:08:40 6624

Oracle_JDBC的rar

Java连接Oracle,Java连接Oracle,Java连接Oracle,Java连接Oracle,Java连接Oracle

2017-09-30

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除