Global Vectors-使用小试

Socher 2014 EMNLP 中给出一个新的词向量方法:GloVec 官方下载地址为:http://nlp.stanford.edu/projects/glove/ 按照说明进行编译make,不过编译时出现错误,从他人经验中看,应该是GCC版本的问题。 $gcc -v gcc version 4.3.4 这里有建议为4.7.3 版本,http://blog.csdn.net/adooadoo/article/details/38505497 那么更新一下版本吧,先查看一下本地服务器的Linux版本: $lsb_release -a Distributor ID: SUSE LINUX Description: SUSE Linux Enterprise Server 11 (x86_64) Release: 11 Codename: n/a 这里有提供多种版本的GCC 4 SUSE http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/,不过基于二进制文件进行安装的步骤很繁琐,例如是这样子的:http://blog.csdn.net/cloudskyfhx/article/details/17660607 另一种方式是:suse 的安装包里面有gcc,使用命令yast2,打开图形界面,找到软件管理,查找gcc,点击安装,系统会帮你装好的。 你下载二进制的包,有很多依赖包要装,很麻烦。。。。反正就是各种麻烦,组里的好多服务器申请权限又需要时间,想想就麻烦,还是用自家的虚拟机Ubuntu虚拟机吧。 自家Ubuntu的GCC版本是gcc version … 继续阅读

ICTPOS3.0汉语词性标记集

汉语词性标记集太多,仅此以ICTCLAS使用的为例,转自:http://www.ictclas.org/docs/ICTPOS3.0汉语词性标记集.doc 目前链接已失效 Ag 形语素 形容词性语素。形容词代码为a,语素代码g前面置以A。 a 形容词 取英语形容词adjective的第1个字母。 ad 副形词 直接作状语的形容词。形容词代码a和副词代码d并在一起。 an 名形词 具有名词功能的形容词。形容词代码a和名词代码n并在一起。 b 区别词 取汉字“别”的声母。 c 连词 取英语连词conjunction的第1个字母。 Dg 副语素 副词性语素。副词代码为d,语素代码g前面置以D。 d 副词 取adverb的第2个字母,因其第1个字母已用于形容词。 e 叹词 取英语叹词exclamation的第1个字母。 f 方位词 取汉字“方” g 语素 绝大多数语素都能作为合成词的“词根”,取汉字“根”的声母。 h 前接成分 取英语head的第1个字母。 i 成语 … 继续阅读

Word2vec给的二进制bin文件如何转成文本

用word2vec工具跑词向量时有参数可选,保存为文本格式或二进制格式。而Mikilov公开的在Google News 上跑的词向量为了节省存储空间,保存为二进制了,解压前占1.5G,解压后占3.4G左右(注:超过了2G,则程序一定要在64位机子上调用GCC进行编译)。为了便于在其他地方使用,我们将其转为文本格式会很方便一些。转二进制为文本格式,需要知道二进制存储格式及内容。还好,Thomas Mensink 帮我们做了此工作:https://groups.google.com/forum/#!topic/word2vec-toolkit/5Qh-x2O1lV4,感谢 Glenn Murray 的释疑。 //  Copyright 2013 Google Inc. All Rights Reserved.    //    //  Licensed under the Apache License, Version 2.0 (the ”License”);    //  you may not use this file except in compliance with the License.    //  You may obtain a copy of the License at    //    //      http://www.apache.org/licenses/LICENSE-2.0    //    //  Unless required by applicable law or agreed to in writing, software    //  distributed under the License is distributed on an ”AS IS” BASIS,    //  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.    //  See the License for the specific language governing permissions and    //  limitations under the License.       #include <stdio.h>    #include <string.h>    #include <math.h>    #include <malloc.h> … 继续阅读

Theano教程

感谢TJ同学讲解Theano. – 20141210 上次使用Pycharm的时候我们已经安装了Pycharm 和 Anaconda,这里我们在安装一下Theano,安装Theano有两种方式: 1. 在anaconda下pip install theano; 2. 下载Theano的安装包进行安装。 Theano是什么? Python是解释性语言,Theano是Python的一个库,提供了很多接口,可以隐形的和GPU打交道,不需要GPU编程,免去了学CUDA的麻烦。 GPU 默认是32位的,如果写64位会报错的。 安装 需要安装的东西: 1. Pycharm, Anaconda,Theano,iPython(可选) 所有的Theano接口都是以 T.* 命名。 参数共享,borrow参数: Theano 和Python 的内存空间相互独立。 先在内存中用numpy初始化一个数据,然后要搬到GPU上。如果数据量不是太大,而且我们非常希望使用GPU的话,默认的就是Deep Copy, 而有时数据会非常庞大,copy过程更浪费时间,那么我们使用shallow copy。额。。。这部分待理解,因如果分区当前配置了使用GPU,则Borrow参数无效。 迭代,用Theano 求梯度非常方便。 如果学习源码的话,可以查看pylenra. 教程的话,过一遍 http://www.deeplearning.net/tutorial/ 即可。

Reuters-21578数据集预处理遇到的血泪史

Reuters-21578 是文本分析任务中比较重要的数据集,但是它不像20Newsgroup是现成的纯文本,而是SGML格式的文件,需要我们进行预处理。 插播一条:如果是做词袋模型,那么公开数据集大家已经处理的很成熟了,可以借鉴的如,Deng Cai的工作: http://www.cad.zju.edu.cn/home/dengcai/Data/TextData.html 里面可以下载TDT2, Reuters21578, Reuters21578, RCV1@Top4 的Matlab格式。 但是用于DNN的话,基于词袋模型的数据集就无可以用之地,因而我们还是要老老实实的提取纯文本数据。 Reuters21578数据集的下载地址:http://www.daviddlewis.com/resources/testcollections/reuters21578/ Reuters21578提前要注意的是: ===============下面摘自andy_tsg 的经验分享===================== 1. 这个数据集中的所有记录并不是一股脑拿来全部都用的,学术界有好几种划分的方法,通常最最常用的是ModApte划分方法(关于如何划分的细节可以参见下载包里README.txt文件的介绍); 2. 这些数据文件貌似是有一定的格式的,我刚开始也试图把他们当做标准的xml文档来处理(因为下载包里还像模像样的包含了一个SGML DTD 的文件),但老是报错。最终发现很多的记录格式是错误的,而且错误千奇百怪。所以干脆放弃,直接把它们全部看做文本文件来处理得了; 3. 并不是所有按照ModApte划分得到的记录都能拿来使用,因为有些记录的与之间并没有包含任何的topic信息(比如reut2-000.sgm文件的第307行记录,写个程序可以检测出有不少这种情况,仅举一例),所以只好丢弃; 4. 并不是所有的包含topic的记录都包含有< BODY >字段和< TITLE >字段(比如reut2-000.sgm文件中的第3099行记录,同样这种情况也有不少),但是因为这种情况通常在< TEXT >字段中还是包含了一些文字信息的,所以我选择并不将它丢弃; 5. 由于有4,所以我处理时并不是只将< BODY >字段和< TITLE >字段看作记录的正文,而是将去除所以包含在成对的之间的内容和有关topic的内容后得到的所剩下的部分当做记录正文来看待。这样处理的后果是包含了< DATA >、< PLACES … 继续阅读

Python IDE使用之Pycharm

之前装过 Python(x,y) (见 http://jacoxu.com/?p=187 ),但是发现IDE使用很不方便,朋友推荐使用Pycharm Python作为⼀种流⾏的现代交互式编程语⾔,利⽤它与计算机交流简单⾼效,是智力工作者的得力工具。Python发展到现在,在它的框架下已经有⼤量优秀且免费的程序库。Python在科学研究领域的应⽤也相当成熟,经过简单的学习,利用它可以零成本地,简单高效地完成大量科研工作,如绘图相关、矩阵相关、符号代数相关、并行计算相关、数据分析相关等等。 IDE安装篇:直接上链接:http://www.cnblogs.com/archimedes/p/pycharm-test.html 我的安装版本是:pycharm-community-4.0.1 参考:另一方面,也由于Python的相关程序库已经相当庞大,而且库之间可能存在相互依赖关系,对程序的编译和安装造成了困难,不便于初学者直接使⽤,所以出现了许许多多的集合了特定功能的已经编译好的Python发行版,在科学计算领域推荐大家使用Anaconda。 简单来讲 Anaconda 是 Python 的科学计算包的合集(195+)。它包含了众多关于科学、数学、⼯程、数据分析等⺫的的程序包(模块),比如常用的的ipython,numpy、 scipy和matplotlib等。它是跨平台的,Linux, Windows, Mac下都可以正常方便的安装使用。 它也是完全免费的! 更详细的信息请进主页:https://store.continuum.io/cshop/anaconda/ 我安装的版本是:Anaconda-2.1.0-Windows-x86_64

写文章的那些毛病

1. 缩写词第一次出现时应先写全称,例如应为Question and Answer (Q&A) 而不是Q&A (Question and Answer); 2. Firstly, . Secondly, . Finally, .,在同段中用句号隔开就Ok,不需要分号; 3. 文中的每一个新符号出现的时候一定要进行解释,最后应过一遍文章,避免出现符号表达前后不一致问题; 4. 如果上一个句子以公式符号结尾的话,下面的句子最好不要以公式符号开头,很容易混淆; 5. Latent Dirichlet Allocation (LDA),注意括号(LDA)前要有空格; 6. 公式和图标应尽可能靠近文中对应内容的地方; 7. 尽量避免出现learn-s这样的连接词,孤零的一个s被隔开比较难看; 8. 图片中的文字切记过小; 9. 试验数据集最好比较多而充分; 10. 写论文要会扬长避短; 11. Baseline方法最好在相关工作中描述一下; 12. 论文中如果出现了网址,一定要自己试一下,保证链接没有问题,重要的线索如果写错会让人很恼火; 13. … 继续阅读

LaTex公式长度过长问题

发现一个博文总结挺好的,直接拿来主义 ==================== 见下文 ================== 【原文】http://blog.163.com/chen_dawn/blog/static/112506320137910339309 解决方案: 1. 断行 2. 适量缩小公式间距 3 变小字体 1. 断行: http://blog.163.com/chen_dawn/blog/static/11250632013789459674/ 2. 适量缩小公式间距 微调公式长度,调整空格 有时候,用LATEX 打出的公式,显示出来的长度是,一行还多,多出来的一点串到下一行还太少。很想浓缩成一行显示,简洁美观。这时候就利用微调来完成。 例如。某公式原式为: % 公式-1 \ begin{eqnarray} \ dot{x}(t)=\ bar{A}_{i}x(t)+\ bar{B}_{i_{1}}x(t)+\ bar{B}_{i_{2}}x(t)+\ bar{B}_{i_{3}}[a_{i}(t)+b_{i}(t)]. \ end{eqnarray} —————————– LATEX 中空格的距离大致如下: 具体的间隔大小为: \ quad 1em,em代表一个字符宽度 … 继续阅读