‘壹’ 搜索引擎原理与实践的目录
第1章 搜索引擎概述
1.1 搜索引擎的概念
1.2 搜索引擎的历史
1.3 搜索引擎的分类
1.4 搜索引擎的关键技术
1.5 当代主要搜索引擎介绍
1.5.1 谷歌搜索
1.5.2 雅虎搜索
1.5.3 网络搜索
1.5.4 北大天网搜索
1.6 搜索引擎的发展
1.7 小结
思考题
第2章 搜索引擎的体系结构和工作原理
2.1 搜索引擎的体系结构
2.1.1 搜索器
2.1.2 索引器
2.1.3 检索器
2.1.4 用户接口
2.2 搜索引擎的工作原理
2.2.1 网页搜集
2.2.2 网页处理
2.2.3 查询服务
2.3 元搜索引擎
2.3.1 元搜索引擎的基本构成
2.3.2 元搜索引擎的分类
2.3.3 常用元搜索引擎介绍
2.3.4 元搜索引擎的特点
2.3.5 主要技术指标
2.4 小结
思考题
第3章 信息处理技术
3.1 检索模型
3.1.1 经典模型
3.1.2 代数模型
3.2 文本处理
3.2.1 词法分析
3.2.2 分词技术
3.2.3 无用词汇删除
3.2.4 词干提取
3.2.5 索引词选择
3.2.6 词典
3.3 文本压缩
3.3.1 基本概念
3.3.2 统计方法
3.3.3 字典方法
3.3.4 倒排文档压缩
3.4 Web信息处理
3.4.1 Web信息的特点
3.4.2 Web信息的表现方式
3.4.3 Web信息系统结构
3.5 小结
思考题
第4章 信息检索技术
4.1 顺排检索
4.1.1 表展开法
4.1.2 逻辑树展开法
4.1.3 BF算法
4.1.4 KMP算法
4.1.5 BM算法
4.2 倒排检索
4.2.1 倒排检索
4.2.2 倒排文档
4.2.3 逆波兰表达式
4.2.4 检索指令表的生成
4.2.5 检索实施
4.3 其他检索方法
4.3.1 布尔检索
4.3.2 后缀树和后缀数组
4.3.3 加权检索
4.3.4 全文检索
4.3.5 超文本检索
4.4 web信息检索
4.4.1 网页的搜集
4.4.2 网页的预处理
4.4.3 网页索引的建立
4.4.4 相似度计算与排序方法
4.5 小结
思考题
第5章 信息检索评价
5.1 相关性
5.1.1 相关性的特征
5.1.2 相关性类别
5.1.3 相关性模型
5.2 性能评价指标
5.2.1 有效性
5.2.2 查全率和查准率
5.2.3 其他指标
5.3 相关组织和会议
5.4 小结
思考题
第6章 网络搜索引擎技术
6.1 搜索引擎的基本结构
6.1.1 搜索引擎的结构分类
6.1.2 网页收集模块
6.1.3 网页索引模块
6.1.4 查询模块
6.1.5 用户界面
6.1.6 搜索引擎的主要指标及分析
6.2 搜索引擎的数据结构
6.2.1 存储结构
6.2.2 信息库
6.2.3 文本索引
6.2.4 词典
6.2.5 采样表
6.2.6 前向索引
6.2.7 后向索引
6.3 搜索引擎爬虫
6.3.1 网络爬虫
6.3.2 深度优先策略
6.3.3 广度优先策略
6.3.4 不重复抓取策略
6.3.5 网页抓取优先策略
6.3.6 网页重访策略
6.3.7 网页抓取提速策略
6.3.8 Robots协议
6.3.9 网页内容提取技术
6.4 小结
思考题
第7章 多媒体检索概述
7.1 多媒体信息
7.1.1 多媒体及多媒体技术
7.1.2 音频信息
7.1.3 图形与图像信息
7.1.4 视频信息
7.2 多媒体的基本概念
7.2.1 多媒体技术的特点
7.2.2 多媒体信息系统
7.2.3 多媒体数据库
7.2.4 多媒体信息检索
7.3 多媒体数据压缩
7.3.1 多媒体压缩原理
7.3.2 多媒体压缩编码
7.4 多媒体内容的理解
7.4.1 图像分割
7.4.2 特征提取
7.4.3 分类
7.5 多媒体信息检索的关键技术
7.5.1 信息模型和表示
……
第8章 基于内容的多媒体信息检索技术
第9章 搜索引擎开发技术
参考文献
……
‘贰’ 编辑距离的应用
最小编辑距离通常作为一种相似度计算函数被用于多种实际应用中,详细如下: (特别的,对于中文自然语言处理,一般以词为基本处理单元) DNA分析:基因学的一个主要主题就是比较 DNA 序列并尝试找出两个序列的公共部分。如果两个 DNA 序列有类似的公共子序列,那么这些两个序列很可能是同源的。在比对两个序列时,不仅要考虑完全匹配的字符,还要考虑一个序列中的空格或间隙(或者,相反地,要考虑另一个序列中的插入部分)和不匹配,这两个方面都可能意味着突变(mutation)。在序列比对中,需要找到最优的比对(最优比对大致是指要将匹配的数量最大化,将空格和不匹配的数量最小化)。如果要更正式些,可以确定一个分数,为匹配的字符添加分数、为空格和不匹配的字符减去分数。 全局序列比对尝试找到两个完整的序列 S1和 S2之间的最佳比对。以下面两个 DNA 序列为例:
S1= GCCCTAGCG
S2= GCGCAATG
如果为每个匹配字符一分,一个空格扣两分,一个不匹配字符扣一分,那么下面的比对就是全局最优比对:
S1'= GCCCTAGCG
S2'= GCGC-AATG
连字符(-)代表空格。在 S2'中有五个匹配字符,一个空格(或者反过来说,在 S1'中有一个插入项),有三个不匹配字符。这样得到的分数是 (5 * 1) + (1 * -2) + (3 * -1) = 0,这是能够实现的最佳结果。
使用局部序列比对,不必对两个完整的序列进行比对,可以在每个序列中使用某些部分来获得最大得分。使用同样的序列 S1和 S2,以及同样的得分方案,可以得到以下局部最优比对 S1''和 S2'':
S1 = GCCCTAGCG
S1''= GCG
S2''= GCG
S2 = GCGCAATG
这个局部比对的得分是 (3 * 1) + (0 * -2) + (0 * -1) = 3。 拼写纠错(Spell Correction):又拼写检查(Spell Checker),将每个词与词典中的词条比较,英文单词往往需要做词干提取等规范化处理,如果一个词在词典中不存在,就被认为是一个错误,然后试图提示N个最可能要输入的词——拼写建议。常用的提示单词的算法就是列出词典中与原词具有最小编辑距离的词条。 这里肯定有人有疑问:对每个不在词典中的词(假如长度为len)都与词典中的词条计算最小编辑距离,时间复杂度是不是太高了?的确,所以一般需要加一些剪枝策略,如: 因为一般拼写检查应用只需要给出Top-N的纠正建议即可(N一般取10),那么我们可以从词典中按照长度依次为len、len-1、len+1、len-2、len-3、...的词条比较; 限定拼写建议词条与当前词条的最小编辑距离不能大于某个阈值; 如果最小编辑距离为1的候选词条超过N后,终止处理; 缓存常见的拼写错误和建议,提高性能。 命名实体抽取(Named Entity Extraction):由于实体的命名往往没有规律,如品牌名,且可能存在多种变形、拼写形式,如“IBM”和“IBM Inc.”,这样导致基于词典完全匹配的命名实体识别方法召回率较低,为此,我们可以使用编辑距离由完全匹配泛化到模糊匹配,先抽取实体名候选词。 具体的,可以将候选文本串与词典中的每个实体名进行编辑距离计算,当发现文本中的某一字符串的编辑距离值小于给定阈值时,将其作为实体名候选词;获取实体名候选词后,根据所处上下文使用启发式规则或者分类的方法判定候选词是否的确为实体名。 实体共指(Entity Coreference):通过计算任意两个实体名之间的最小编辑距离判定是否存在共指关系?如“IBM”和“IBM Inc.”, "Stanford President John Hennessy "和"Stanford University President John Hennessy"。 机器翻译(Machine Translation): 识别平行网页对:由于平行网页通常有相同或类似的界面结构,因此平行网页在HTML结构上应该有很大近似度。首先将网页的HTML标签抽取出来,连接成一个字符串,然后用最小编辑距离考察两个字符串的近似度。实际中,此策略一般与文档长度比例、句对齐翻译模型等方法结合使用,以识别最终的平行网页对。 自动评测:首先存储机器翻译原文和不同质量级别的多个参考译文,评测时把自动翻译的译文对应到与其编辑距离最小的参考译文上,间接估算自动译文的质量,如下图所示: 字符串核函数(String Kernel):最小编辑距离作为字符串之间的相似度计算函数,用作核函数,集成在SVM中使用。
‘叁’ R语言中的情感分析与机器学习
来源 | 雪晴数据网
利用机器学习可以很方便的做情感分析。本篇文章将介绍在R语言中如何利用机器学习方法来做情感分析。在R语言中,由Timothy P.Jurka开发的情感分析以及更一般的文本挖掘包已经得到了很好的发展。你可以查看下sentiment包以及梦幻般的RTextTools包。实际上,Timothy还写了一个针对低内存下多元Logistic回归(也称最大熵)的R包maxtent。
然而,RTextTools包中不包含朴素贝叶斯方法。e1071包可以很好的执行朴素贝叶斯方法。e1071是TU Wien(维也纳科技大学)统计系的一门课程。这个包的主要开发者是David Meyer。
我们仍然有必要了解文本分析方面的知识。用R语言来处理文本分析已经是公认的事实(详见R语言中的自然语言处理)。tm包算是其中成功的一部分:它是R语言在文本挖掘应用中的一个框架。它在文本清洗(词干提取,删除停用词等)以及将文本转换为词条-文档矩阵(dtm)方面做得很好。这里是对它的一个介绍。文本分析最重要的部分就是得到每个文档的特征向量,其中词语特征最重要的。当然,你也可以将单个词语特征扩展为双词组,三连词,n-连词等。在本篇文章,我们以单个词语特征为例做演示。
注意,在R中用ngram包来处理n-连词。在过去,Rweka包提供了函数来处理它,感兴趣的可以查看这个案例。现在,你可以设置RTextTools包中create_matrix函数的参数ngramLength来实现它。
第一步是读取数据:
创建词条-文档矩阵:
现在,我们可以用这个数据集来训练朴素贝叶斯模型。注意,e1071要求响应变量是数值型或因子型的。我们用下面的方法将字符串型数据转换成因子型:
测试结果准确度:
显然,这个结果跟python得到的结果是相同的(这篇文章是用python得到的结果)。
其它机器学习方法怎样呢?
下面我们使用RTextTools包来处理它。
首先,指定相应的数据:
其次,用多种机器学习算法训练模型:
现在,我们可以使用训练过的模型做测试集分类:
准确性如何呢?
得到模型的结果摘要(特别是结果的有效性):
结果的交叉验证:
结果可在我的Rpub页面找到。可以看到,maxent的准确性跟朴素贝叶斯是一样的,其它方法的结果准确性更差。这是可以理解的,因为我们给的是一个非常小的数据集。扩大训练集后,利用更复杂的方法我们对推文做的情感分析可以得到一个更好的结果。示例演示如下:
推文情感分析
数据来自victornep。victorneo展示的是用python对推文做情感分析。这里,我们用R来处理它:
读取数据:
首先,尝试下朴素贝叶斯
然后,尝试其他方法:
这里,我们也希望得到正式的测试结果。包括:
1.analytics@algorithm_summary:包括精确度,召回率,准确率,F-scores的摘要
2.analytics@label_summary:类标签摘要
3.analytics@document_summary:所有数据和得分的原摘要
4.analytics@ensemble_summary:所有 精确度/覆盖度 比值的摘要
现在让我们看看结果:
与朴素贝叶斯方法相比,其它算法的结果更好,召回精度高于0.95。结果可在Rpub查看
原文链接:http://www.xueqing.cc/cms/article/107
‘肆’ 有没有老师了解Python用于Meta分析的工具包
Python在科学计算领域,有两个重要的扩展模块:Numpy和Scipy。其中Numpy是一个用python实现的科学计算包。包括:
一个强大的N维数组对象Array;
比较成熟的(广播)函数库;
用于整合C/C++和Fortran代码的工具包;
实用的线性代数、傅里叶变换和随机数生成函数。
SciPy是一个开源的Python算法库和数学工具包,SciPy包含的模块有最优化、线性代数、积分、插值、特殊函数、快速傅里叶变换、信号处理和图像处理、常微分方程求解和其他科学与工程中常用的计算。其功能与软件MATLAB、Scilab和GNU Octave类似。
Numpy和Scipy常常结合着使用,Python大多数机器学习库都依赖于这两个模块,绘图和可视化依赖于matplotlib模块,matplotlib的风格与matlab类似。Python机器学习库非常多,而且大多数开源,主要有:
1.scikit-learn
scikit-learn是一个基于SciPy和Numpy的开源机器学习模块,包括分类、回归、聚类系列算法,主要算法有SVM、逻辑回归、朴素贝叶斯、Kmeans、DBSCAN等,目前由INRI资助,偶尔Google也资助一点。
项目主页:
https://pypi.python.org/pypi/scikit-learn/
http://scikit-learn.org/
https://github.com/scikit-learn/scikit-learn
2.NLTK
NLTK(Natural Language Toolkit)是Python的自然语言处理模块,包括一系列的字符处理和语言统计模型。NLTK常用于学术研究和教学,应用的领域有语言学、认知科学、人工智能、信息检索、机器学习等。NLTK提供超过50个语料库和词典资源,文本处理库包括分类、分词、词干提取、解析、语义推理。可稳定运行在Windows, Mac OS X和linux平台上.
项目主页:
http://sourceforge.net/projects/nltk/
https://pypi.python.org/pypi/nltk/
http://nltk.org/
3.Mlpy
Mlpy是基于NumPy/SciPy的Python机器学习模块,它是Cython的扩展应用。包含的机器学习算法有:
l回归
least squares,ridge regression, least angle regression,elastic net, kernel ridge regression,support vector machines(SVM),partial least squares(PLS)
l分类
linear discriminant analysis(LDA), Basicperceptron, Elastic Net,logistic regression, (Kernel) Support Vector Machines (SVM), Diagonal Linear Discriminant Analysis (DLDA), Golub Classifier, Parzen-based, (kernel) Fisher Discriminant Classifier, k-nearest neighbor, Iterative RELIEF, Classification Tree, Maximum Likelihood Classifier
l聚类
hierarchical clustering, Memory-saving Hierarchical Clustering,k-means
l维度约减
(Kernel)Fisher discriminant analysis(FDA), Spectral Regression Discriminant Analysis (SRDA), (kernel)Principal component analysis(PCA)
项目主页:
http://sourceforge.net/projects/mlpy
https://mlpy.fbk.eu/
4.Shogun
Shogun是一个开源的大规模机器学习工具箱。目前Shogun的机器学习功能分为几个部分:feature表示,feature预处理,核函数表示,核函数标准化,距离表示,分类器表示,聚类方法,分布,性能评价方法,回归方法,结构化输出学习器。
SHOGUN的核心由C++实现,提供Matlab、R、Octave、Python接口。主要应用在linux平台上。
项目主页:
http://www.shogun-toolbox.org/
5.MDP
The Molar toolkit for Data Processing (MDP),用于数据处理的模块化工具包,一个Python数据处理框架。
从用户的观点,MDP是能够被整合到数据处理序列和更复杂的前馈网络结构的一批监督学习和非监督学习算法和其他数据处理单元。计算依照速度和内存需求而高效的执行。从科学开发者的观点,MDP是一个模块框架,它能够被容易地扩展。新算法的实现是容易且直观的。新实现的单元然后被自动地与程序库的其余部件进行整合。MDP在神经科学的理论研究背景下被编写,但是它已经被设计为在使用可训练数据处理算法的任何情况中都是有用的。其站在用户一边的简单性,各种不同的随时可用的算法,及应用单元的可重用性,使得它也是一个有用的教学工具。
项目主页:
http://mdp-toolkit.sourceforge.net/
https://pypi.python.org/pypi/MDP/
‘伍’ r语言tm包转换为语料后怎么到处
##4.Transformations
#对于xml格式的文档用tm_map命令对语料库文件进行预处理,将其转为纯文本并去除多余空格,
#转换小写,去除常用词汇、合并异形同意词汇,如此才能得到类似txt文件的效果
#可以用inspect(reuters)查看此时的效果,明显好很多
reuters <- tm_map(reuters, as.PlainTextDocument)#将reuters转化为纯文本文件,去除标签
reuters <- tm_map(reuters, stripWhitespace)#去掉空白
reuters <- tm_map(reuters, tolower)#转换为小写
reuters <- tm_map(reuters, removeWords, stopwords("english"))#去停用词
#采用Porter's stemming 算法 提取词干
#Stem words in a text document using Porter's stemming algorithm
#install.packages("SnowballC")
tm_map(reuters, stemDocument)
‘陆’ 英汉讲笑话的异同分析
一、中英文分词方式不同
分词是中英文NLP差异最广为人知的一点。我们都知道英文的单词之间天然存在空格来分隔,因此在进行英文文本处理时,可以非常容易的通过空格来切分单词。例如英文句子:
DataGrand is a Chinese company
可轻松切分为DataGrand / is / a / Chinese / company (文本用/表示词汇分隔符)。
中文在每句话中间是不存在分隔符的,而是由一串连续的汉字顺序连接构成了句子。现代汉语里表达意思的基本语素是词而不是字。例如“自然”,拆为“自”和“然”都不能单独表意,两个字合并组成的词才能有准确的意义,对应英文单词是Nature。因此在我们使用计算机技术对中文进行自动语义分析时,通常首要操作就是中文分词(Chinese Word Segmentation)。中文分词是指按人理解汉语的方式,将连续的汉字串切分为能单独表义的词汇。例如中文句子:
“达观数据是一家中国公司。”
让计算机来处理,第一步需要切分为“达观数据/是/一家/中国/公司”这样的词串的形式,然后再进行后续的理解和处理。
如何正确的根据语义完成中文切分是一个挑战性的任务,一旦切词发生失误,会导致后续的文本处理产生连锁问题,给正确理解语义带来障碍。为了快速准确的切分好中文,学术界迄今有超过50年的研究,提出了很多方法。中文切词常见方法里既有经典的机械切分法(如正向/逆向最大匹配,双向最大匹配等),也有效果更好一些的统计切分方法(如隐马尔可夫HMM,条件随机场CRF),以及近年来兴起的采用深度神经网络的RNN,LSTM等方法。
由于汉语语法本身极为灵活,导致歧义语义时常发生,给正确完成中文分词带来了很多障碍。如例句“严守一把手机关了”所示,按照语义理解,正确切分方式为“严守一/把/手机/关了”,而算法有误时容易切分为“严守/一把/手机/关了”。
更困难的是,有些时候两种切词方法意思都对,例如“乒乓球拍卖了”,切分为“乒乓/球拍/卖了”和“乒乓球/拍卖/了”本身都可行,必须要依赖更多上下文来选择当前正确的切分方法。类似的还有“南京市长江大桥”、“吉林省长春药店”等等。如果把“市长”“省长”等切出来,整句话的理解就偏差很多了。常见歧义类型包括交叉歧义(Cross Ambiguity)和组合歧义(Combination Ambiguity)等,在语义消岐方面近年不断有国内外学者提出新的解决思路,来解决汉藏语系的这个特定问题。
此处顺便一提,和中文类似,日文句子内部同样缺乏天然的分隔符,因此日文也同样存在分词需求。日文受汉语语法的影响很深,但同时又受表音语法的影响,明治时代还曾兴起过废汉字兴拼音的运动,行文上汉字和假名混杂,好比中英文混血儿。业内比较知名的日文分词器有MeCab,其算法内核是条件随机场CRF。事实上,如果将MeCab的内部训练语料由日文更换为中文后,也同样可以用于切分中文。
随着深度学习技术近年来在NLP领域成功的应用,一些seq2seq学习过程可以不再使用分词,而是直接将字作为输入序列,让神经网络自动学习其中的特征,这在一些端到端的应用中(如自动摘要、机器翻译、文本分类等)确实省略了中文分词这一步骤,但是一方面还有很多的NLP应用离不开分词的结果,如关键词提取、命名实体识别、搜索引擎等;另一方面切分所得的词汇也可以和单字一起作为特征输入,用以增强效果。因此分词仍然是工程界进行中文处理时的一项重要技术。
二、英文语素和中文偏旁的使用
英文单词的提取虽然比中文简单的多,通过空格就能完整的获取单词,但英文特有的现象是单词存在丰富的变形变换。为了应对这些复杂的变换,英文NLP相比中文存在一些独特的处理步骤,我们称为词形还原(Lemmatization)和词干提取(Stemming)。
词形还原是因为英文单词有丰富的单复数、主被动、时态变换(共16种)等情况,在语义理解时需要将单词“恢复”到原始的形态从而让计算机更方便的进行后续处理。例如“does,done,doing,do,did”这些单词,需要通过词性还原统一恢复为“do”这个词,方便后续计算机进行语义分析。类似的:“potatoes,cities,children,teeth”这些名词,需要通过Lemmatization转为“potato,city,child,tooth”这些基本形态;同样“were,beginning,driven”等要转为“are,begin,drive”。
请注意词形还原通常还需要配合词性标注(pos-tag)一起来进行,以确保还原准确度,避免歧义发生。因为英文中存在一些多义词的情况,例如calves就是个多义词,即可以作为calf(名词,牛犊)的复数形式,也可以是calve(动词,生育小牛)的第三人称单数。所以词形还原也有两种选择,需要按实际所表示的词性来挑选合适的还原方法。
‘柒’ 网络信息检索的图书1
ISBN: 978-7-5606-2378-8
开本: 16开
定价: 32.00元 《网络信息检索》详细介绍了网络信息检索的原理和技术,内容包括信息检索模型、网络信息的自动获取、网络信息预处理和索引、查询语言和查询优化等。针对网络信息检索的广泛应用,书中对搜索引擎、中文和跨语言信息检索、多媒体检索、并行和分布式信息检索、信息分类和聚类、信息提取与自动问答等重要应用的关键技术也进行了深入的探讨。
《网络信息检索》层次分明,深入浅出;既有原理阐述和理论推导,也有大量的实例分析,阐述力求系统性和科学性。《网络信息检索》可作为高等院校计算机科学与技术、信息管理与信息系统、电子商务等专业的高年级本科生或研究生的教科书和参考书,对广大从事网络信息检索、数字图书馆、信息管理、人工智能、Web数据挖掘等研究和应用开发的科技人员也有较大的参考价值。 第1章 绪论
1.1 网络信息检索概述
1.1.1 网络信息
1.1.2 信息检索
1.1.3 网络信息检索
1.2 信息检索的发展
1.2.1 手工检索
1.2.2 脱机批处理检索
1.2.3 联机检索
1.2.4 网络信息检索
1.3 网络信息检索的应用
1.3.1 搜索引擎
1.3.2 多媒体信息检索
1.3.3 话题识别与跟踪
1.3.4 信息过滤
1.3.5 问题回答
思考题
参考文献
第2章 信息检索模型
2.1 检索模型定义
2.2布尔模型
2.3 向量模型
2.3.1 索引项权重
2.3.2 相似度量
2.3.3 计算方法
2,4 概率模型
2.5 扩展的布尔模型
2.5.1 模糊集合模型
2.5.2 扩展布尔模型
2.6 扩展的向量模型
2.6.1 广义向量空间模型
2.6.2 潜语义标引模型
2.6.3神经网络模型
2.7 扩展的概率模型
2.7.1 推理网络模型
2.7.2 信任度网络模型
2.7.3 语言模型
2.8 小结
思考题
习题
参考文献
第3章 网络信息的自动搜集
3.1 网络信息的特点
3.1.1 Web的组成
3.1.2 Web的特点
3.2 网络信息搜集的原理
3.2.1 信息搜集的基本流程
3.2.2 遍历策略
3.2.3 页面解析
3.3 网络信息搜集的礼貌原则
3.3.1 机器人排斥协议
3.3.2 机器人元标签
3.4 高性能信息搜集
3.4.1 并行搜集
3.4.2 DNS优化
3.4.3 优先搜集策略
3.4.4 网页更新
3.4.5 网页消重
3.4.6 避免蜘蛛陷阱
3.5 专题信息搜集
3.5.1 网页的主题特性
3.5.2 专题信息搜集算法
3.6 小结
思考题
习题
参考文献
第4章 网页文本处理和索引
4.1 文本的特性
4.1.1 信息熵
4.1.2 统计定律
4.2 网页信息的特征
4.2.1 网页结构
4.2.2 网页类型
4.3 网页去噪
4.3.1 基于网页结构的方法
4.3.2 基于模板的方法
4.4 文本处理
4.4.1 词汇分析
4.4.2 排除停用词
4.4.3 词干提取
4.4.4 索引词选择
4.5 索引
4.5.1 Trie树
4.5.2 后缀树
4.5.3 签名档
4.5.4 倒排文件
4.6 小结
思考题
习题
参考文献
第5章 查询语言与查询处理
5.1 Web查询语言
5.1.1 WebSQL查询语言
5.1.2 W3QL查询语言
5.1.3 WebOQL查询语言
5.2 查询方式
5.2.1 基于关键字的查询
5.2.2 模式匹配
5.3 相关反馈
5.3.1 向量空间模型中的相关反馈
5.3.2 概率模型中的相关反馈
5.4 查询扩展
5.4.1 基于字典的简单查询扩展
5.4.2 自动局部分析
5,4.3 自动全局分析
5.5 小结
思考题
习题
参考文献
第6章 信息检索性能评价
6.1 信息检索评价指标
6.1.1 查全率和查准率
6.1.2 其他评价指标
6.2 信息检索评价基准
6.2.1 基准测试
6.2.2 TREC评测
6.2.3 Web检索评价
6.2.4 CWIRF评测
6.3 小结
思考题
习题
参考文献
第7章 搜索引擎
7.1 概述
7.1.1 发展概况
7.1,2 术语与定义
7.1.3 工作原理
7.2 链接分析
7.2.1 PageRank
7.2.2 HITS
7.2.3 算法比较
7.3 相关排序
7.3.1 Lucene检索模型
7.3.2 Nutch排序算法
7.4 大规模搜索引擎
7.4.1 体系架构
7.4.2数据结构
7.4.3 检索算法
7.4.4 相关排序
7.5 小结
思考题
习题
参考文献
第8章 并行和分布式信息检索
8.1 并行信息检索
8.1.1 并行计算的概念
8.1.2 并行信息检索体系架构
8.1.3 并行编程
8.1.4 数据并行
8.2 分布式信息检索
8.3元搜索引擎
8.3.1 系统架构
8.3.2 资源选择
8.3.3 文档选择
8.3.4 信息融合
8.4 P2P网络信息检索
8.4.1 P2P网络信息检索的原理
8.4.2 非结构化P2P网络信息检索
8.4.3 结构化P2P网络信息检索
8.5 小结
思考题
习题
参考文献
第9章 中文和跨语言信息检索
9.1 中文预处理
9.1.1 中文编码及转换
9.1.2 中文分词
9.2中文信息检索
9.2.1 中文检索模型
9.2.2 中文索引
9.3 跨语言信息检索
9.3.1 基本原理
9.3.2 基于GVSM的跨语言检索
9.3.3 基于LSI的跨语言检索
9,4 小结
思考题
习题
参考文献
第10章 多媒体信息检索
10.1 基于内容的图像信息检索
10.2 图像特征提取
10.2.1 颜色特征
10.2.2 形状特征提取
10.2.3 纹理特征提取
10.3 图像相似量度
10.4 基于内容的视频信息检索
10.4.1 镜头分割
10.4.2 关键帧提取
10.5 基于内容的音频信息检索
10.6 小结
思考题
习题
参考文献
第11章 信息分类与聚类
11.1 基本知识
11.1.1 类的概念
11.1.2 对象特征描述
11.1.3 文档相似性
11.1.4 类间距离
11.2 特征描述及提取
11.2.1 特征提取
11.2.2 特征选择
11.3 聚类方法
11.3.1 划分聚类法
11.3.2 层次聚类法
11.3.3 其他聚类方法
11.4 分类方法
11.4.1 NaiveBayes算法
11.4.2 kNN算法
11.4.3 Rocchio算法
11.4.4 SVM算法
11.5 方法评测
11.5.1 聚类方法评测
11.5.2 分类方法评测
11.5.3 显着性检验
11.6 小结
思考题
习题
参考文献
第12章 Web信息抽取与问答系统
12.1 信息抽取概述
12.1.1 信息抽取的发展
12.1.2 信息抽取的评价指标
12.2 Web信息抽取
12.2.1 基于关键字的Web信息抽取
12.2.2 基于模式的Web信息抽取
12.2.3 基于样本的Web信息抽取
12.3 问答系统
12.3.1 问题分析
12.3.2 信息检索
12.3.3 答案抽取
12.6 小结
思考题
参考文献
‘捌’ Python中主要使用哪些数据库
Python中常用的数据库有很多,需要根据不同的业务和应用场景来选择合适的数据库,才能使程序更高效.
一般常用的主要有 MySQL, Redis, MangoDB 等数据库
学习这些数据库,可以看黑马程序员视频库的学习视频,有代码、有资料,有PPT,不了解还可以问老师!
‘玖’ 求用C/C++写的抽词干(stem)函数
C 程序
给定目标 字符str_stem
打开文件 a.txt
查到有str_stem 子串的 的字符串则 打印出来
#include"stdio.h"
FILE *fin;
void main()
{
char namein[80]="a.txt";
char str_stem[]="read";
char str[32];
int i,j,N,L;
N = strlen(str_stem);
if ( (fin = fopen(namein,"r") ) == NULL ) {
printf("open %s error\n",namein);
exit(0);
};
while (fscanf(fin,"%s",&str[0]) == 1){
L = strlen(str);
if (L >= N) {
for (i=0;i<=L-N;i++)
if (strncmp(&str[i],str_stem,N) == 0){ printf("found: %s\n",str); };
} // if
}; // while
fclose(fin);
getch();
}
----------
type a.txt
Let us read some thing
reading book forread
.... 1234 read1 3read--
‘拾’ 自然语言处理的工具(词干提取 )( 指代消解)的工具(软件)分别都有哪些急呀,,,,期待您帮助
http://jkx.fudan.e.cn/nlp/fudannlp.do 复旦的在线demo,可以下载webservice调用指代消解……