随笔分类 -  搜索引擎之自然语言处理

摘要:package com.capinfotech.faq.classifier;import java.util.*;import java.io.File;import java.io.IOException;import org.apache.lucene.document.Field;import org.apache.lucene.document.Field.Index;import org.apache.lucene.document.Document;import org.apache.lucene.index.CorruptIndexException;import org.ap 阅读全文
posted @ 2013-12-19 16:49 东嘉CEO 阅读(6123) 评论(0) 推荐(0)
摘要:Lucene的CJKAnalyzer分析器。CJKAnalyzer分析器的思想:对中文汉字,每两个字作为一个词条,例如A,B,C,D是四个中文汉字,使用CJKAnalyzer分析器分词后一共得到三个词条如下:AB,BC,CD。其实,CJKAnalyzer分析器在对中文分词方面比StandardAnalyzer分析器要好一点。因为根据中文的习惯,包括搜索的时候键入关键字的习惯,中文的词(大于一个汉字)比单个汉字的频率应该高一些。但是,在设置相同的过滤词条文本以后,CJKAnalyzer分析器的缺点就是产生了冗余会比较大,相对于StandardAnalyzer分析器来说。使用StandardAna 阅读全文
posted @ 2013-12-16 11:24 东嘉CEO 阅读(2841) 评论(0) 推荐(0)
摘要:CRF(Conditional Random Field) 条件随机场是近几年自然语言处理领域常用的算法之一,常用于句法分析、命名实体识别、词性标注等。在我看来,CRF就像一个反向的隐马尔可夫模型(HMM),两者都是用了马尔科夫链作为隐含变量的概率转移模型,只不过HMM使用隐含变量生成可观测状态,其生成概率有标注集统计得到,是一个生成模型;而CRF反过来通过可观测状态判别隐含变量,其概率亦通过标注集统计得来,是一个判别模型。由于两者模型主干相同,其能够应用的领域往往是重叠的,但在命名实体、句法分析等领域CRF更胜一筹。当然你并不必须学习HMM才能读懂CRF,但通常来说如果做自然语言处理,这两个 阅读全文
posted @ 2012-12-23 22:02 东嘉CEO 阅读(830) 评论(0) 推荐(0)
摘要:1. 简述 最近要应用CRF模型,进行序列识别。选用了CRF++工具包,具体来说是在VS2008的C#环境下,使用CRF++的windows版本。本文总结一下了解到的和CRF++工具包相关的信息。 参考资料是CRF++的官方网站:CRF++: Yet Another CRF toolkit,网上的很多关于CRF++的博文就是这篇文章的全部或者部分的翻译,本文也翻译了一些。2. 工具包下载 第一,版本选择,当前最新版本是2010-05-16日更新的CRF++ 0.54版本,不过这个版本以前我用过一次好像运行的时候存在一些问题,网上一些人也说有问题,所以这里用的是2009-05-06: CRF++ 阅读全文
posted @ 2012-12-23 22:01 东嘉CEO 阅读(377) 评论(0) 推荐(0)
摘要:文章出处:http://blog.sina.com.cn/s/blog_5980285201018m6r.htmlCRF++代码中还有LBFGS算法没有读,利用空闲时间仔细读了下,总结如下:LBFGS算法CRF++中与L-BFGS相关的代码都存放在lbfgs.h和lbfgs.cpp中其中mcsrch函数用于线性搜索,找到给定搜索方向后合适的步长lbfgs_optimize函数实现了L-BFGS算法。LBFGS算法的理论相关的最重要的论文:[Jorge Nocedal; updating quasi-newton matrices with limited storage是一个拟牛顿算法,它是7 阅读全文
posted @ 2012-12-21 22:02 东嘉CEO 阅读(490) 评论(0) 推荐(0)
摘要:文章出处:http://blog.sina.com.cn/s/blog_5980285201018ijz.html先贴一个类图吧:再贴一个函数调用图:需要注意的地方也不多:最需要注意的是TaggerImpl::gradient()函数1. 首先调用buildLattice函数来构造出一个表buildLattice函数调用 rebuildFeatures函数在rebuildFeatures函数中,建立了tagger需要的node_矩阵,同时填充了path信息。重要需要关注的是node类:2. buildLattice函数接下来调用calcCost()函数分别对应于论文【条件随机场理论综述,韩雪冬 阅读全文
posted @ 2012-12-21 22:00 东嘉CEO 阅读(387) 评论(0) 推荐(0)
摘要:一、关系抽取简介信息抽取的主要目的是将非结构化或半结构化描述的自然语言文本转化成结构化数据(Structuring),关系抽取是其重要的子任务,主要负责从文本中识别出实体(Entities),抽取实体之间的语义关系。如:句子“Bill Gates works at Microsoft Inc.”中包含归属关系Person-Affiliation实体对(Bill Gates,Microsoft Inc),又如:关系抽取的结构化数据可以用于自动问答系统、生物信息、知识推理、文摘等众多方面。关系抽取任务常用的评测数据集当属Automatic Content Extraction (ACE),现已被归 阅读全文
posted @ 2012-11-03 22:48 东嘉CEO 阅读(1506) 评论(1) 推荐(0)
摘要:CRF简介Conditional Random Field:条件随机场,一种机器学习技术(模型)CRF由John Lafferty最早用于NLP技术领域,其在NLP技术领域中主要用于文本标注,并有多种应用场景,例如:分词(标注字的词位信息,由字构词)词性标注(标注分词的词性,例如:名词,动词,助词)命名实体识别(识别人名,地名,机构名,商品名等具有一定内在规律的实体名词)本文主要描述如何使用CRF技术来进行中文分词。CRF VS 词典统计分词基于词典的分词过度依赖词典和规则库,因此对于歧义词和未登录词的识别能力较低;其优点是速度快,效率高CRF代表了新一代的机器学习技术分词,其基本思路是对汉字 阅读全文
posted @ 2012-11-01 09:16 东嘉CEO 阅读(417) 评论(0) 推荐(0)