docker搭建neo4j与elasticsearch数据同步

需求

现在有图数据,包含节点和边,节点或者关系都有大段的文本属性,并且需要对全文文本进行检索,因此计划使用Neo4j 进行关系存储以及图算法的应用,使用Elastic Search 进行全文搜索,因此需要Neo4j的数据与Elastic Search进行自动同步,从而实现节点/关系搜索使用Neo4j, 全文搜索使用Elastic Search, 各发挥自己的长处。

方案

正巧的Neo4j官方提供了一个插件neo-elasticsearch, 可以直接Neo4j的数据实时同步到ElasticSearch中。 不过由于官网文档的说明比较简单,以及本人对docker的熟练度有限,在使用docker搭建的过程中,遇到了很大的坑,记录于此。

Read More

pytorch关系抽取实验

接前面笔记:关系抽取总结中最后说的,在关系抽取基于Distant Supervision的NYT+Freebase的数据集有两个版本,目前大部分文章都是在这两份数据集上做的。通过纵向实验发现,同一个模型在不同版本数据集上的表现有不少差异,这篇笔记是基于自己使用Pytorch复现的PCNN(Zeng 2015)与PCNN+ATT(Lin 2016)的实验结果来简单对比。

代码地址: pytorch-relation-extraction,关于实现的细节,调参,踩过的一些坑等,会记录在readme中,这里不再赘述。

Read More

使用coding/github的webhook实现自动化部署

需求

一些代码托管网站比如coding.net/github.com 等都提供了webhook的工具, 经常用于自动化部署。 之前写过一篇博客搭建git服务器以及web自动化部署 主要记录的是在自己服务器上如何搭建git服务,并且利用hook进行自动化部署。不过这种方式有个缺点,没有像github或者coding.net的web界面,管理起来可能稍微麻烦,因此我们还是习惯在github,coding.net上进行代码托管。然后再部署到服务器上,这样有些不方便。还好这些托管网站均提供了webhook的工具,功能与git的hook一致。

Read More

Python中tuple+=赋值的四个问题

最近偶尔翻看Fluent Python,遇到有意思的东西就记下来. 下面的是在PyCon2013上提出的一个关于tuple的Augmented Assignment也就是增量赋值的一个问题。 并且基于此问题, 又引申出3个变种问题.

问题

首先看第一个问题, 如下面的代码段:

1
2
>>> t = (1,2, [30,40])
>>> t[2] += [50,60]

Read More

Hexo-admin后台管理博客

需求

像Hexo这种静态博客用起来很方便,但是硬伤就是没有后台管理,每次想写博客或者说想要修改原博客的话,都需要在本机上找markdown文件,修改之后发布,尤其是如果机器上没有安装hexo,git等工具的时候,就无法修改了。因此hexo可不可以以像wp,ghost这种有后台管理, 随时随地编辑博客呢?

Read More

Word2vec数学原理全家桶

目前需要做Network Embedding方面的课题,而复杂网络本身就经常借鉴NLP的一些算法模型, Embedding也不例外. 因此先从Word Embedding入手。之前对Word Embedding(暂且翻译为词嵌入或者词向量)的理解就是将单词根据某种特征转为数值向量,再来做其他工作比如文本分类的工作。而word2vec则是word embedding的一种模型,也是目前使用最广的词向量模型, 由Google的Mikolov团队2013年提出。之前仅仅能够使用第三方库来训练直接使用, 对其中原理并没有多少理解, 这篇博客则比较完整的从背景知识到原理,参数训练等方面整理一下word2Vec。

Read More