03 2014 档案
KL距离(相对熵)
摘要:KL距离,是Kullback-Leibler差异(Kullback-Leibler Divergence)的简称,也叫做相对熵(Relative Entropy)。它衡量的是相同事件空间里的两个概率分布的差异情况。其物理意义是:在相同事件空间里,概率分布P(x)对应的每个事件,若用概率分布 Q(x)编码时,平均每个基本事件(符号)编码长度增加了多少比特。我们用D(P||Q)表示KL距离,计算公式如下: 当两个概率分布完全相同时,即P(X)=Q(X),其相对熵为0 。我们知道,概率分布P(X)的信息熵为: 其表示,概率分布P(x)编码时,平均每个基本事件(符号)至少需要多少比特编码。通过信息熵的 阅读全文
posted @ 2014-03-24 11:29 NLP-Kevin 阅读(39231) 评论(1) 推荐(2)
NLP - Log-linear Models
摘要:1.The Language Modeling Problem 现在抛开我们之前讲的马尔科夫模型的假设,对于一门语言的定义,肯定不能简单依赖于每个单词的前两个单词,这是常识。比如英语中的动词形态就和主语有关。那么我会怎么考虑一个语言模型呢,很可能是下面这样一个情况: 我们之前讲的Trigram模型也可以用这样的形式来表示: 那么我们要用我们增加的一些定义,一种naive的方法就是选取一些参数来生成模型: 可以想象,这是很难驾驭的。但是我们可以用这样的模型来理论上地表示一些例子。 而下面要讲的Log-Liner Model就可以加入这些信息,... 阅读全文
posted @ 2014-03-20 13:57 NLP-Kevin 阅读(1364) 评论(0) 推荐(0)
Javah提示未找到 ..的类
摘要:Javah相关错误,如下图所示:解决办法:用javah生成java调用C++语言用的头文件时出错;首先简单地介绍javah命令的使用假设我们已经有了这个类,准备用它生成调用C语言的头文件。另外,这个Java文件是在路径“f:\workspace\HelloWorld\src”下,包“package cn.nlp.demo;”中的package cn.nlp.demo;class HelloWorld { public native void displayHelloWorld(); // 一个外部实现的方法 static { System.loadLibrary("hello&quo 阅读全文
posted @ 2014-03-17 11:00 NLP-Kevin 阅读(517) 评论(0) 推荐(0)
准确率(Precision)、召回率(Recall)以及综合评价指标(F1-Measure)
摘要:在信息检索和自然语言处理中经常会使用这些参数,下面简单介绍如下:准确率与召回率(Precision & Recall)我们先看下面这张图来加深对概念的理解,然后再具体分析。其中,用P代表Precision,R代表Recall 一般来说,Precision 就是检索出来的条目中(比如:文档、网页等)有多少是准确的,Recall就是所有准确的条目有多少被检索出来了。下面这张表介绍了True Positive,False Negative等常见的概念,P和R也往往和它们联系起来。RelevantNonRelevantRetrievedtrue positives (tp)false posi 阅读全文
posted @ 2014-03-14 11:54 NLP-Kevin 阅读(2696) 评论(0) 推荐(0)
语法错误 : 缺少“;”(在“<”的前面)
摘要:该错误有可能是由错误所指行“所造成的 阅读全文
posted @ 2014-03-14 11:52 NLP-Kevin 阅读(1773) 评论(0) 推荐(0)
问题解决:fatal error C1083: 无法打开包括文件:No such file or directory
摘要:fatal error C1083: 无法打开包括文件:No such file or directory将别的工程直接用VS2010打开出现了该问题,此时必须检查是不是:1.如果要引入的这些.h文件跟.cpp在同一个目录下,就不会出现这种问题,检查在工程的include目录下是不是真的存在这些文件2. 工程 -> 属性 -> 配置属性 -> C/C++ -> 常规 -> 附加包含目录->添加“$(ProjectDir)”或者添加诸如“...\BeamSRTrainer_3T\include”之类的,即硬盘上的include目录路径 阅读全文
posted @ 2014-03-14 11:51 NLP-Kevin 阅读(28854) 评论(1) 推荐(0)
Linux环境下warning: no newline at end of file
摘要:今天在Windows下VS2012写了一个程序, 然后放在Linux系统下进行编译。Linux下使用的编译器是CC,结果,一编译出现了很多诸如下面的警告信息,似乎每一个.cpp和.h文件都有。Item.h:53:7: warning: no newline at end offile原因:产生这种警告的原因在于源文件的最后一行没有回车符。解决办法:在每个源文件(包括.cpp和.h)的最后一行补一个回车, 然后保存,重新编译,不再有警告,全部顺利编译成功。 阅读全文
posted @ 2014-03-14 11:50 NLP-Kevin 阅读(576) 评论(0) 推荐(0)
C++代码匈牙利命名规范
摘要:一、类除了异常类等个别情况(不希望用户把该类看作一个普通的、正常的类之情况)外,C++类/结构的命名应该遵循以下准则:C++类的命名类的名称都要以大写字母“C”开头,后跟一个或多个单词。为便于界定,每个单词的首字母要大写。类的命名推荐用"名词"或"形容词+名词"的形式,例如:"CAnalyzer", "CMonkeyVector" ....传统C结构体的命名传统的C结构体只是一种将一组数据捆绑在一起的方式,其名称全部由大写字母组成,单词间使用下划线界定,例如:"SERVICE_STATUS",& 阅读全文
posted @ 2014-03-14 11:48 NLP-Kevin 阅读(920) 评论(0) 推荐(0)