标签:Lucene c style blog code java
一、中文分词:分词就是利用计算机识别出文本中词汇的过程。
1.典型应用:汉字处理:拼音输入法、手写识别、简繁转换 ;信息检索:Google 、Baidu ;内容分析:机器翻译、广告推荐、内容监控 ;语音处理:语音识别、语音合成 。
2.分词难点:歧义、新词等。
3.分词技术:机械分词(查词典FMM/BMM,全切分)、统计分词(生成式/判别式)、理解分词。
a)生成式分词:建立学习样本的生成模型,再利用模型对预测结果进行间接推理。两个假设:马尔科夫性(第i个词只依赖于前面的i-1个词);输出独立性(当前状态的输出仅取决于当前状态本身)。
第一步:全切分。
第二步:Viterbi动态规划,找到贯穿句子的路径并计算每条路经的概率。
第三步:选择概率最大的路径为切分结果。
优点:在语料足够大的情况下,切分正确率>95%;不足:需要很大的训练语料,新词识别弱,解码速度相对较慢。
b)判别式分词:在有限样本条件下建立对于预测结果的判别函数,直接对预测结果进行判别,建模无需任何假设。由字构词的分词理念,将分词问题转化为判别式分类问题。
典型算法:Maxent、SVM、 CRF、Perceptron。
原理:由字构词:把分词问题转化为确定句中每个字在词中位置问题。
优点:充分利用来源知识、需要较少的训练语料、解码速度快、新词识别好;缺点:训练速度慢、配置要求高。
4.分词评测:SIGHAN(http://www.sighan.org/)。
SIGHAN组织的中文分词/未登录词识别评测为学术界和工业界提供了一个评测技术优劣的舞台,是目前中文语言处理方面最具权威、最有影响力的国际评测。
5.分词系统:
ICTCLAS(http://ictclas.nlpir.org/,ICTCLAS3.0分词速度单机996KB/s,分词精度98.45%,API不超过200KB,各种词典数据压缩后不到3M.ICTCLAS全部采用C/C++编写,支持Linux、FreeBSD及Windows系列操作系统,支持C/C++、C#、Delphi、Java等主流的开发语言)。
IKAnalyzer(最初,它是以开源项目Luence为应用主体的,结合词典分词和文法分析算法的中文分词组件。新版本的IKAnalyzer3.0则发展为面向Java的公用分词组件,独立于Lucene项目,同时提供了对Lucene的默认优化实现);
Paoding(基于Java的开源中文分词组件,提供lucene和solr 接口,具有极高效率和高扩展性。引入隐喻,采用完全的面向对象设计。高效率:在PIII 1G内存个人机器上,1秒可准确分词 100万汉字。采用基于不限制个数的词典文件对文章进行有效切分,使能够将对词汇分类定义。 能够对未知的词汇进行合理解析)。
mmseg4j (MMSeg 算法有两种分词方法:Simple和Complex,都是基于正向最大匹配。Complex 加了四个规则过虑。官方说:词语的正确识别率达到了 98.41%)。
盘古分词(一个基于.net 平台的开源中文分词组件,提供lucene的.net版本和HubbleDotNet的接口。高效:Core Duo 1.8 GHz 下单线程 分词速度为 390K 字符每秒;准确:盘古分词采用字典和统计结合的分词算法,分词准确率较高;功能:盘古分词提供中文人名识别,简繁混合分词,多元分词,英文词根化,强制一元分词,词频优先分词,停用词过滤,英文专名提取等一系列功能)。
6.分词总结:
二、文本挖掘:
1.特征的建立(文本特征指的是关于文本的元数据)
特征分类:描述性特征:文本的名称、日期、大小、类型等;语义性特征:文本的作者、标题、机构、内容等。
特征表示:空间向量模型VSM矩阵、特征向量(ti为词条项,wi(d)为ti在d中的权值)。
文本特征的评价:
a)信息增益:
b)期望交叉熵:
c)互信息:
其中:F是对应于单词W的特征;P(W)为单词W出现的概率;P(Ci)为第i类值的出现概率;p(Ci|W)为单词W出现时属于第i类的条件概率。
d)文本证据权:
e)词频:TF(W)=Freq(F)
其中:P(W)为单词W出现的概率;P(Ci)为第i类值的出现概率;p(Ci|W)为单词W出现时属于第i类的条件概率;TF(W)为单词在文档集中出现的次数。
2.文档建模
文档相似度计算:余弦相似度
特征的缩减:潜在语义索引LSI,利用SVD分解将词频矩阵转化为奇异矩阵。步骤如下:
a)建立词频矩阵,frequency matrix
b)计算frequency matrix的奇异值分解,分解frequency
matrix成3个矩阵U,S,V。U和V是正交矩阵(UTU=I),S是奇异值的对角矩阵(K×K)
c)对于每一个文档
d,用排除了SVD中消除后的词的新的向量替换原有的向量
d)保存所有向量集合,用高级多维索引技术为其创建索引
e)用转换后的文档向量进行相似度计算
3.倒排索引:一种索引结构,包含两个哈希表索引表或两个B+树索引表。易实现,但不能处理同义词和多义词问题,posting_list非常长,存储开销大
4.签名文件:一个存储数据库中每一个文档的特征记录的文件,方法:每一个特征对应一个固定长度的位串,一个比特位对应一个词汇,若某一位对应的词出现在文档中则,则该位置1,否则置0。
5.词性标注:将句子中兼类词的词性根据上下文唯一地确定下来。同型异性异义兼类词:例如:领导(动词/名词);同型异性同义兼类词:例如:小时(量词/名词);异型同性同义兼类词:例如:电脑,计算机。自动词性标注就是用计算机来自动地给文本中的词标注词类。标注技术路线:基于概率统计和基于规则。
自动词类标注:
a)CLAWS算法:1)对训练集中的语料逐词进行词性的人工标注, 然后利用计算机对训练集中的任意两个相邻标记的同现概率进行统计,形成一个相邻标记的同现概率矩阵;2)进行自动标注时,系统从输入文本中顺序地截取一个有限长度的词串,这个词串的首词和尾词的词性应该是唯一的,这样的词串叫做跨段(span),记为W0,W1,W2,…,Wn,Wn+1。其中, W0和Wn+1 都是非兼类词, W1,W2,…,Wn 是n个兼类词;3)利用同现概率矩阵提供的数据来计算这个跨段中由各个单词产生的每个可能标记的概率积,并选择概率积最大的标记串作为选择路径(path),以这个路径作为最佳结果输出。
b)VOLSUNGA算法:大大地降低了CLAWS算法的时间复杂度和空间复杂度,提高了自动词性标注的准确率。其对CLAWS算法的改进有两方面。1)在最佳路径的选择方面,不是最后才来计算概率积最大的标记串,而是沿着从左至右的方向,采用“步步为营”的策略,对于当前考虑的词,只保留通往该词的最佳路径,舍弃其他路径,然后再从这个词出发,将这个路径同下一个词的所有标记进行匹配,继续找出最佳的路径,舍弃其他路径,这样一步一步地前进,直到整个跨段走完,得出整个跨段的最佳路径作为结果输出。2)根据语料库统计出每个词的相对标注概率(Relative Tag Probability),并用这种相对标注概率来辅助最佳路径的选择。
6.模型评价:查准率(precision):既相关又被检索到的实际文档与检索到的文档的百分比。查全率(recall):既相关又被检索到的实际文档与查询相关的文档的百分比。
7.文本分类:
a)一般方法:将预先分类过的文档作为训练集;从训练集中得出分类模式(需要测试过程,不断细化);用导出的分类模式对其它文档加以分类。
b)基于关联的分类:通过信息检索技术和关联分析技术提出关键字和词汇;利用已有的词类生成关键字和词的概念层次(文档类别);利用关联挖掘方法去发现关联词, 进而区分各类文档(每一类文档对应一组关联规则);用关联规则去对新的文档分类。
c)利用超链接中的信息进行分类:统计方法、马尔可夫随机场、结合宽松标识。
8.文本聚类:
a)层次聚类:
1)将文档集D={d1, … ,di , … ,dn} 中的每一个文档di看作是一个具有单个成员的类Ci={di},这些类构成了D的一个聚类C={c1, … ,ci , … ,cn};
2)计算C中每对类( ci , cj )之间的相似度sim(ci , cj );
3)选取具有最大相似度的类对arg max sim(ci , cj ),并将ci 和cj合并为一个新的类ck=ci∪cj ,从而构成D的一个新的类C={c1, … ,cn-1};
4)重复上述步骤,直到C中只剩下一个类为止。
b)平面划分k-means:
1)确定要生成的类的数目 k;
2)按照某种原则生成k个聚类中心作为聚类的种子 S={s1, … ,sj , …
,sk};
3)对D中的每一个文档di ,依次计算它与各个种子sj的相似度sim(di , sj );
4)选取具有最大的相似度的种子arg max
sim(di , sj ), 将di归入以sj 为聚类中心的类Cj ,从而得到D的一个聚类C={c1, …
,ck};
5)重复步骤2~4若干次,以得到较为稳定的聚类结果。
9.自动文摘:就是利用计算机自动地从原始文档中提取全面准确地反映该文档中心内容的简单连贯的短文。自动文摘系统应能将原文的主题思想或中心内容自动提取出来。文摘应具有概况性、客观性、可理解性和可读性。系统适用于任意领域。
三、文本内容处理(对以语言文字为载体的数字内容进行管理的技术)
1.文本内容处理的技术:文本信息的搜集和校对、文本内容分析(切分、标注、结构化、语义分析)、文本内容的索引和检索、文本内容的分类和过滤、文本内容的聚类和去重、问答系统/文摘/信息抽取/知识挖掘、跨语言、跨媒体(Cross-media)的内容处理。
2.语言内容处理的应用:
远程教育:自动答疑系统、学生情况调查分析;内容安全:垃圾邮件过滤、垃圾短信过滤、聊天室和BBS监控。智能商务:自助呼叫中心、用户投诉自动分类汇总、竞争情报;电子政务:首长办公系统、政务自动咨询、投诉自动汇总、行政简报自动编写;移动计算:短信定制、短信汇总。
四、搜索引擎:
1.standard web search engine architecture:
2.inverted index:
3.measuring importance of links:
4.Lucene:
5.Nutch:
6.Solr:
五、搜索引擎优化SEO:The process of improving web pages so they rank higher in search engines for your targeted keywords.
1.关键因素:Internal Link Structure、Link Popularity / Relevance、Crawlability / Optimized Code、Content Relevance。
2.页面布局:
3.organic clicks VS paid clicks:
4.SEO Process:
六、语义网络Semantic Web
1.Ontology:Ontology为人类和应用程序系统提供了一个对于主题的共同理解;为了不同来源的信息的合成,提供了一个共同的相关领域的理解;为了在不同的应用程序之间共享信息和知识(用于互操作),描述应用程序的领域,定义术语及其关系。
在Web,通常认为Ontology由一组知识术语,包括词汇,语义互联和一些简单的推理规则与逻辑组成,用于某个特定的主题。
2.语义标注:
RDF Schema定义类及子类:
网络挖掘技术——text mining,布布扣,bubuko.com
标签:Lucene c style blog code java
原文地址:http://www.cnblogs.com/jizhiyuan/p/3755768.html