精华内容
下载资源
问答
  • 信息检索算法论文集

    2017-07-24 11:35:07
    信息检索算法论文集
  • P2P社区的信息检索算法设计P2P社区的信息检索算法设计
  • 一种面向海量实时数据的信息检索算法 丁伟 林容熔 倪良胜 南京东南大学计算机科学与工程系
  • 关于p2p检索一篇论文。中南大学的论文,提出节点聚类和信息检索算法
  • 一种利用局部结构信息的加权哈希图像检索算法
  • 由于颜色直方图无法表达空间分布信息,因此采用的颜色特征为颜色自相关图,并对色调进行重叠量化。而形状特征采用边缘方向直方图,并对方向进行重叠量化。仿真实验表明,综合利用颜色和形状特征比单独用颜色和形状...
  • 一种改进的信息检索排序算法 .
  • 然后,分析信息检索的设计思路设计元数据库,提出元数据信息的资源组织,针对提出的多维度元数据检索算法设计元数据检索系统。最后,对元数据检索算法进行实现。通过本文研究表明,将多维度作为基础的元数据检索算法...
  • 信息检索之BM25算法

    2020-03-18 16:37:08
    BM25算法参考文档,搜索引擎中的相关应用。 import math import jieba class BM25(object): def __init__(self, docs): self.D = len(docs) # 训练集的文本数量 self.avgdl = sum([len(doc)+0.0 for doc in ...

    BM25算法参考文档,搜索引擎中的相关应用

    import math
    import jieba
    
    
    class BM25(object):
    
        def __init__(self, docs):
            self.D = len(docs)  # 训练集的文本数量
            self.avgdl = sum([len(doc)+0.0 for doc in docs])/self.D # 平均每个文本的长度
            self.docs = docs
            self.f = []  # 一个文档中每个词的出现次数
            self.df = {} # 存储每个词及出现了该词的文档数量
            self.idf = {} # 存储每个词的idf值
            self.k1 = 1.5
            self.b = 0.75
            self.init()
    
        def init(self):
            for doc in self.docs:
                tmp = {}
                for word in doc:
                    tmp[word] = tmp.get(word, 0) + 1  # 存储每个文档中每个词的出现次数
                self.f.append(tmp)
                for k in tmp.keys():
                    self.df[k] = self.df.get(k, 0) + 1
            for k, v in self.df.items():
                self.idf[k] = math.log(self.D-v+0.5)-math.log(v+0.5)
    
            for key, value in self.__dict__.items():
                print(key, value)
    
        def sim(self, doc, index):
            score = 0
            for word in doc:
                if word not in self.f[index]:
                    continue
                d = len(self.docs[index])
                score += (self.idf[word]*self.f[index][word]*(self.k1+1)/(self.f[index][word]+self.k1*(1-self.b+self.b*d/self.avgdl)))
            return score
    
        def simall(self, query_list):
            sim_dict = {}
    
            # 遍历所有的候选文章,计算每个文章与querey的score
            for index in range(self.D):
                # 查询的每个语素,计算每个语素与该句子的score
                score = 0
                for query in query_list:
                    # 每个语素的idf
                    if query in self.idf:
                        quer_idf = self.idf[query]
                    else:
                        quer_idf = 0
                    # 计算R
                    if query in self.f[index]:
                        f_i = self.f[index][query]
                    else:
                        f_i = 0
                    R = (f_i*(self.k1+1))/(f_i+self.k1*(1-self.b+self.b*len(self.docs[index])/self.avgdl))
                    # 计算idf*R
                    sim = quer_idf * R
                    score += sim
                if score != 0:
                    sim_dict[score] = index
    
            sim_dict = sorted(sim_dict.items(),key=lambda item:item[0], reverse=True)
            return sim_dict
    
    if __name__ == '__main__':
    
        sents = []
        sents.append("自然语言自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。")
        sents.append("它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。")
        sents.append("自然语言处理是一门融语言学、计算机科学、数学于一体的科学。")
        sents.append("因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,")
        sents.append("所以它与语言学的研究有着密切的联系,但又有重要的区别。")
        sents.append("自然语言处理并不是一般地研究自然语言,")
        sents.append("而在于研制能有效地实现自然语言通信的计算机系统,")
        sents.append("特别是其中的软件系统。因而它是计算机科学的一部分。")
    
        # 分词并剔除停用词
        docs = []
        for sent in sents:
            words = list(jieba.cut(sent))
            new_words = []
            for word in words:
                if word not in [",", "。", "的", "而", "是", "与", "中", "它", "能"]:
                    new_words.append(word)
            docs.append(new_words)
        s = BM25(docs)
    
        print()
        list1 = ['自然语言', '计算机科学', '人工智能', '领域']   # 分词之后的list
        sim_dict = s.simall(list1)
        for score, index in sim_dict:
            print(score, sents[index])

     

    展开全文
  • 多媒体技术是信息时代高度发展的重要体现,在多媒体技术中对海量信息的高效管理就成为一个重要的研究领域,海量图像数据库的检索是近期多媒体技术研究的一个热点问题,基于内容图像检索(CBIR)研究是图像检索一个重要的...
  • 智能视频检索算法

    2016-09-07 16:51:00
    能视频检索依赖于视频算法对视频内容进行分析,通过提取视频中关键信息,进行标记或者相关处理,并形成相应事件和告警的监控方式,人们可以通过各种属性描述进行快速检索。如果把摄像机看作人的眼睛,而智能视频监控...

    能视频检索依赖于视频算法对视频内容进行分析,通过提取视频中关键信息,进行标记或者相关处理,并形成相应事件和告警的监控方式,人们可以通过各种属性描述进行快速检索。如果把摄像机看作人的眼睛,而智能视频监控系统可以理解为人的大脑。智能视频技术借助处理器的强大计算功能,对视频画面中的海量数据进行高速分析,获取人们需要的信息;

     

    帧差模型


          帧差可说是最简单的一种背景模型,指定视频中的一幅图像为背景,用当前帧与背景进行比较,根据需要过滤较小的差异,得到的结果就是前景了。

    背景统计模型

       背景统计模型是:对一段时间的背景进行统计,然后计算其统计数据(例如平均值、平均差分、标准差、均值漂移值等等),将统计数据作为背景的方法。

    编码本背景模型

     编码本的基本思路是这样的:针对每个像素在时间轴上的变动,建立多个(或者一个)包容近期所有变化的Box(变动范围);在检测时,用当前像素与Box去比较,如果当前像素落在任何Box的范围内,则为背景。

    混合高斯模型

    混合高斯背景建模是背景建模比较成功的一种。

    为什么这么说呢? 机器视觉算法提取运动目标面临的基本问题:图像抖动,噪声干扰,光线变化,云飘动,阴影(包括目标阴影和区域外物体阴影),区域内部反光(如水面,显示器),运动目标缓慢移动等。那我们来看看,混合高斯背景建模是怎么解决这些问题的?

     

     

    通过背景建模与前景提取,把视频帧中的目标对象提取了出来,不过提取得到的是所有非背景对象,也就是是混合的,可能包含很多人、车、动物等对象,最终以图搜图检索所要对比的是当个对象与搜索目标的相似性,这里就需要通过目标检测与跟踪把这些混合的对象分离开来分别处理;

    在目标检测方面,所了解到的算法有贝叶斯方法、卡尔曼滤波器、粒子滤波器几种,他们之间的关系如下:

    贝叶斯方法利用已知的信息建立系统的概率密度函数可以得到对系统状态估计的最优解。

    对于线性高斯的估计问题,期望的概率密度函数仍是高斯分布,它的分布特性可用均值和方差来描述,卡尔曼滤波器很好地解决了这类估计问题。

    粒子(particle)滤波器——序列重要性采样粒子滤波器,是一种适用于强非线性、无高斯约束的基于模拟的统计滤波器。

    综合上,粒子滤波的效果要更好;

     

    光照处理:同一个物体,在不同光照下的视觉效果是不同的,所对应的数据也是不同的,所以,为了提高分析准确性,召回率,需要对目标对象做光照处理;光照处理方面,业界比较流行的算法是本征图像分解法;

    本征图像分解

    照相机所获得的图像中的每个像素点值所具有的属性所表示的信息中最为重要的是亮度(shading)和反照率(reflectance)这两种。其中亮度对应环境中的光照信息,反照率对应于物体的材质信息,即物体对光照的反射特性,反照率主要表现为物体的颜色信息。本征图像求解问题就是从图像出发,恢复所有像素点对应的场景中的亮度和反照率信息,分别形成亮度本征图和反照率本征图

    本征图像分解可以表述为I(x,y) = L(x,y)R(x,y),其中I(x,y)表示输入图像, R(x,y)表示反照率图像, L(x,y)表示亮度图像。因为在对数域中,乘法被转换成了更加易于计算的加法,因此我们在图像的对数域中进行计算,记 /(X,y) = log(I(x, y)) , r0,y) = log(R(x,少)),l(x,y) = log(L(x,y))。如此原来的乘法关系被转化为:i(x,y,t) = r(x,y) + l(x,y,t)。

    关键帧提取

    安防监控所采集的视频数据量非常大,如果对视频的每一帧都进行特征提取、建立高维索引、检索,那么在视频分析和检索方面的时间开销将非常大,所以第一步,要先对视频流进行关键帧提取,只对关键帧进行特征提取、建立高维索引、检索的操作,大幅度缩短计算量;

    视频关键帧提取是指按照一定的规则提取能够代表原视频内容的帧,该技术能够去除视频数据中大部分冗余信息,仅保留视频数据有用的部分;关键帧提取是后续特征提取。索引建立的前提,算法的优劣会直接影响整个视频分析的准确率和性能;

    关键帧提取的方法

    关键帧提取方法主要分为两类:基于全图像序列的方法和基于压缩视频的方法;  

    目前大多数关键帧的提取研究是基于全图像视频分析的.具体实现方法的区别主要在于检测方法的应用、特征的选择以及帧图像子块的划分。主要可以分为以下几类:

    基于镜头边界的方法

    该方法将视频流分割成很多的镜头,把镜头中的第一帧和最后一帧以及中间几帧作为关键帧。该方法简单易行,适于内容活动性小或内容保持不变的镜头。但未考虑镜头视觉内容的复杂性:限制了镜头关键帧的个数:提取的关键帧代表性不强,效果不够稳定。

    基于内容分析的方法

    该方法基于每一帧的颜色、纹理等视觉信息的改变来提取关键帧。比较经典的方法是帧平均法和直方图平均法。帧平均法是在镜头中计算所有帧在某个位置上像素值的平均值.然后将镜头中该点位置的像素值最接近平均值的帧作为关键帧;直方图平均法是将镜头中所有帧的统计直方图取平均.然后选取与该平均直方图最接近的帧作为关键帧。

    基于运动分析的方法

    此方法是根据运动信息提取关键帧.代表算法是Wolf提出的运动极小值算法 Wolf通过光流分析来计算镜头中的运动量.在运动量取局部最小值处选取关键帧。

    基于聚类的方法

    该方法是目前关键帧提取的主流技术.其基本思想是:首先确定一个初始类心.然后根据当前帧与类心的距离来判断当前帧是归为该类还是作为新的类心.将镜头中帧分类后.取各类中离类心距离最近的帧作为关键帧。

    基于压缩视频的方法

    上述方法都是基于全图像序列的,即在提取关键帧之前.对视频进行解压,还原成帧图像。运算量大。基于压缩域的方法是直接从MPEG压缩视频流上提取关键帧.无需对视频流解压或只需部分解压,降低了计算的复杂性。

     

         业界比较常用的是基于聚类的方法和基于压缩域的方法进行关键帧提取;

     

         关键帧提取完成后,就需要对提取到的关键帧进行特征提取操作,主要是颜色特征、纹理特征、形状特征等几个角度;特征提取完成后,会对目标特征建立高维索引,来提高检索速度,最后通过对索引进行检索来搜索目标图像,返回搜索结果;

     

    转载于:https://www.cnblogs.com/changbosha/p/5850068.html

    展开全文
  • 信息检索课件,从信息检索入门,相关继续,讲到信息检索模型、各个模型的核心算法信息检索模型的评判准则等。
  • 考虑到边缘梯度方向直方图和边缘方向自相关图不具有旋转不变性,通过共享统计方法的应用,提出了一种基于边缘梯度方向统计码的图像检索算法(以下简称EGOSC)。链式编码的边缘方向在八个邻域中的变化与边缘梯度方向...
  • 针对高维计算量大的特点,提出了构造一个核矢量的算法,将高雏空间转换到低维空间,在低维空间逐维过滤不相似的数据集,缩小检索范围,提高检索速度。关键词:核矢量子域过滤候选集  为了有效地从视频媒体库中...
  • 基于特征选择的哈希图像检索算法研究 摘 要 随着信息时代的到来作为信息的主要载体图像的数据量也在不断地增长 因此在大规模图像数据中利用图像检索技术快速检索出相似的图像信息成为了 研究的热点方向传统图像检索...
  • 信息检索——扁平聚类

    信息检索之扁平聚类的k-means聚类算法的c++实现

    • k-means算法:
    • 1.选取任意的初始二维点为初始的质心,数量为簇数。
    • 2.计算所有的二维点到质心的欧几里得距离,将距离短的二维点归为一类,形成初始簇类。
    • 3.迭代:1.更新质心;2.清空簇类容器;3.计算所有二维点到新质心的欧氏距离,选择距离进的加入相应的簇类容器;4.通过计算该簇类的平方误差判断是否继续迭代。
    • 实现的功能:随机产生50组二维随机点进行聚类。
    • 代码如下
    #include<iostream>
    #include<vector>
    #include<math.h>
    #define k 3  //聚类数,可在kmeans算法处作参数
    #define random(x) rand()%(x)//产生随机数
    #include <ctime>
    int const N = 50;
    using namespace std;
    struct Tuple  //数据结构
    {
    	float attr1;//可看作x
    	float attr2;//可看作y
    };
    
    float Dist(Tuple t1,Tuple t2)//欧式距离
    {
    	return sqrt((t1.attr1 - t2.attr1)*(t1.attr1 - t2.attr1) + (t1.attr2 - t2.attr2)*(t1.attr2 - t2.attr2));
    }
    
    //决定该样本属于哪一个聚类,传入的是聚类的质心(也是一个组,看作x,y)和一个样本,返回的是label;
    int clusterofTuple(Tuple means[],Tuple tuple)
    {
    	float distance = Dist(means[0],tuple);
    	int label = 0;
    	for (int i = 0; i < k; i++)
    	{
    		if (Dist(means[i],tuple)<distance)
    		{
    			label = i;
    		}
    	}
    	return label; //找最近质心
    
    }
    
    //获得蔟集的平方误差,用来判断是否还需要继续迭代,传入的是蔟集的质心,以及所有归类好的样本,装着每个蔟集的容器数组,计算该聚类到自己质心的距离,所有距离的加和,返回所有的平方误差
    float getVar(Tuple means[],vector<Tuple> cluster[])
    {
    	float var = 0;
    	for (int i = 0; i < k; i++)
    	{
    		vector<Tuple> t = cluster[i];
    		for (int j = 0; j < t.size(); j++)
    		{
    			var += Dist(means[i], t[j]);
    		}
    	}
    	return var;
    }
    
    float ads(float oldvar,float newvar){  //计算平方差变化
    	float p;
    	p=newvar-oldvar;
    	return p;
    
    }
    //计算当前蔟集的质心,输入的是一个蔟集的容器,质心的计算就是对于两个属性累加后除以个数求平均,然后返回质心,所以也要初始化一个质心Tuple t
    Tuple getMeans(vector<Tuple> cluster)
    {
    	Tuple t;
    	int num = cluster.size();
    	float meanX = 0, meanY = 0;
    	for (int i = 0; i < num; i++)
    	{
    		meanX += cluster[i].attr1;
    		meanY += cluster[i].attr2;
    	}
    	t.attr1 = meanX / num;
    	t.attr2 = meanY / num;
    	return t;
    
    }
    
    void Kmeans(vector<Tuple> tuples)  //kmeans算法
    {    //定义与初始化
        //首先是要定义一个放置分好的蔟,那就是容器组咯,一个容器放一个蔟
        //然后还要有放k个质心的数组
    	vector<Tuple> cluster[k];//容器组
    	Tuple means[k];//放k个质心的数组
    	//首先设置默认的质心,就是每个组分别是所有tuples里面最前面三个;
    	for(int i = 0; i < k; i++)
    	{
    		means[i].attr1 = tuples[i].attr1;
    		means[i].attr2 = tuples[i].attr2;
    	}
    
    	//第一次计算距离,进行分类,得到第一次的类标,容器的话是直接用push_back放置进去
    	int label = 0;
    	for (int i = 0; i < tuples.size(); i++)
    	{
    		label = clusterofTuple(means, tuples[i]);
    		cluster[label].push_back(tuples[i]);
    
    	}
    
        //输出刚开始的蔟
        cout<<"默认以数据集前三个坐标作为初始质心,初始的簇为:"<<endl;
    	for (int i = 0; i < k; i++)
    	{
            cout<<endl;
    		cout << "第" << i+1 <<"个簇:"<< endl;
    		vector<Tuple> t = cluster[i];
    		for (int j = 0; j<t.size(); j++)
    		{
    			cout <<"("<< t[j].attr1 << "," << t[j].attr2 << ")" << endl;
    		}
    	}
    
    	float oldvar = 0;//上一轮平方差
        float newvar = getVar(means,cluster);
    	//循环迭代
    		while (ads(oldvar,newvar)>5)  //结束条件,可修改
    		{
    			//1先计算新的k个质心
    			for (int i = 0; i < k; i++)
    			{
    				means[i] = getMeans(cluster[i]);
    			}
    			//2清空分号蔟的容器,待会才可以根据新的质心重新分配
    			for (int i = 0; i < k; i++)
    			{
    				cluster[i].clear();
    			}
    			//3根据新的质心,对于原来传入的所有数据重新分配
    			for (int i = 0; i < tuples.size(); i++)
    			{
    				label = clusterofTuple(means, tuples[i]);
    				cluster[label].push_back(tuples[i]);
    			}
    			//4最后输出
    			    cout<<endl<<"----------------------------------------------"<<endl;
    			    cout<<"迭代后:"<<endl;
    			for (int i = 0; i < k; i++)
    			{
                    cout<<endl;
    			    cout<<"第"<<i+1<<"个簇:"<<endl;
    				vector<Tuple> t = cluster[i];
    				for (int j = 0; j < t.size(); j++)
    				{
    					cout <<"("<< t[j].attr1 <<","<< t[j].attr2<<")" << endl;
    				}
    			}
    				exit(1);
    		}
    
    }
    
    vector<Tuple> input(vector<Tuple> &tuples){  //数据输入,可改读入
    	srand((int)time(0));
    	Tuple tuple;
    	for (int i=0;i<N;i++){
            tuple.attr1=random(100);
            tuple.attr2=random(100);
            tuples.push_back(tuple);
    	}
    
    }
    
    int main()
    {
        vector<Tuple> tuples;
    	input(tuples);
    	Kmeans(tuples);
    	return 0;
    }
    
    
    

    运行截图
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 排序算法信息检索里面很重要的一环,例如用户提交了一个查询 q,搜索引擎会返回很多相关的文档,然后需要采用排序算法根据文档与 q 的相关性对文档进行排序。可以采用机器学习的方法解决排序的问题,称为 Learning...

    排序算法是信息检索里面很重要的一环,例如用户提交了一个查询 q,搜索引擎会返回很多相关的文档,然后需要采用排序算法根据文档与 q 的相关性对文档进行排序。可以采用机器学习的方法解决排序的问题,称为 Learning To Rank (LTR) 。LTR 主要分三类 PointWise,PairWise,ListWise,本文主要介绍一种 PairWise 的算法 RankNet。

    1.信息检索排序

    在信息检索时,系统需要根据用户的查询 q,对文档进行相关性排序。信息检索中有很多经典的排序算法。

    a. 布尔模型(Boolean Model)

    将查询表示成关键词的布尔组合,用 "与","或","非" 将查询组合起来,然后计算文档和查询的匹配程度。但是布尔模型通常只能检索出符合条件的文档,不能进行排序,例如我们有如下三个文档:

    文档1: a b c d e f文档2: a x b y y z文档3: a c d e f g

    根据文档和单词可以构造出一个单词-文档矩阵,表示单词是否出现在文档中。

    4af0b2f161eb18e70f2a65fcc50c2240.png

    单词-文档矩阵

    如果用户要查询有 a 或者 b,但是一定有 z 的文档。首先从上述矩阵中找出 a,b,z 对应的向量 a(1, 1, 1),b(1, 1, 0),z(0, 1, 0),然后按照查询所描述的布尔组合将向量组合在一起。如下所示,只有文档 2 符合条件。

    0af03d22e74f486fe937ac1d7afd064c.png

    b. 向量空间模型 Vectos Space Model

    将文档和查询转成向量空间中的向量,然后计算查询向量和文档向量的内积得到相似度,按相似度进行排序。向量可以用 TF-IDF 向量表示。

    c. PageRank

    给定一个网页 u,其影响力等于所有链接到 u 的网页加权影响力之和,如下所示。

    5267a33312fa0da6d6dbab2d7bf394b9.png

    PageRank

    v 表示所有能够跳转到网页 u 的页面,L(v) 表示网页 v 所有跳转链接个数。另外用户也有可能通过输入网址访问页面而不是通过跳转链接,因此 PageRank 算法还加上了一个因子 d,表示用户按照跳转链接上网的概率。

    25b81ada22389637c71eb6c755fbf9a1.png

    PageRank 加阻尼因子

    2.Learning To Rank

    Learning To Rank 主要是使用机器学习的方法学习出文档的排序,主要分为三类:

    PointWise:给定查询 q,PointWise 模型的输入是单个文档,直接计算出 q 和该文档的相关性,再根据相关性进行排序。这一类方法没有考虑文档之间的相互依赖关系,而且损失函数是不知道排序后文档的相对位置的。

    PairWise:给定查询 q,PairWise 模型的输入是文档对 (即两个文档),然后计算 q 更偏向于哪个文档。因此模型可以知道文档之间的相对顺序。

    ListWise:输入的是查询 q 以及一组文档,输出为所有文档的排序结果。

    本文主要介绍一种 PairWise 的 LTR 算法,RankNet 是微软研究院 2005 年提出的,用在搜索引擎 Bing 中,对应的论文是《Learning to Rank Using Gradient Descent》。RankNet 提出了一种概率损失函数,然后使用神经网络学习排名函数 (ranking function),最后用使用梯度下降的方法训练模型。

    3.RankNet

    RankNet 使用神经网络对文档进行打分,f(x1) 表示样本 x1 的分数,如果 f(x1) > f(x2),则表示 x1 排名高于 x2 (用 x1->x2 表示)。

    我们可以利用函数 f 计算得到样本 xi 比样本 xj 排名更高的概率,如下所示。

    7b6e3d53f668b663fb613b47fe94ca3f.png

    另外还需要 xi 比 xj 排名更高 (即 xi 比 xj 更加相关) 的真实概率,在数据集中有参数 Sij。如果 xi 相关性比 xj 更高,则 Sij = 1;如果 xi 相关性比 xj 低,则 Sij = -1;如果 xi 相关性和 xj 一样,则 Sij = 0。我们可以通过下面的公式计算 xi 比 xj 排名更高的真实概率。

    5b4aba24bb97a9b8e3d24136a7fdc592.png

    RankNet 的损失函数采用了 cross entrophy,根据 损失函数进行梯度下降,优化神经网络的参数 (即函数 f),损失函数如下所示。

    0bea4b4c3f2fdc150669d0d5ff3c91b4.png

    下图是不同真实概率下,损失函数取值和 (oi-oj) 的关系。

    e659a54259a94c0f12df563c38d86d7c.png

    4.参考文献

    《Learning to Rank using Gradient Descent》

    展开全文
  • CEDD图像检索算法

    千次阅读 2017-06-17 15:43:16
    颜色和边缘的方向性描述符(Color and Edge Directivity Descriptor,CEDD) ...本文节选自论文《Android手机上图像分类技术的研究》。...CEDD特征结合了颜色和纹理两方面信息,本小结将给出颜
  • 信息检索中的经典算法——BM25

    千次阅读 热门讨论 2010-10-25 23:00:00
    BM25(Best Match25)是在信息检索系统中根据提出的query对document进行评分的算法。它主要由Stephen E. Robertson, Karen Spärck Jones等人在上世纪70到80年代提出。BM25算法首先由Okapi系统实现(Okapi是伦敦城市...
  • 遗传算法信息检索中的应用,硕士论文遗传算法信息检索中的应用,硕士论文
  • 人们在外出选择交通路径过程中,通常根据起点和终点找出可行...给出了一种基于关系数据的首尾协同分层结构快速检索算法,可以对多次中转信息进行查询和匹配,从而快速得到可行的出行方案,满足出行方案选择的实际需要。
  • 2020年陈竹敏老师教授的信息检索技术的课设解决方案,语言为python,在提供的baseline基础上进行了一定的修改,包括文档预处理(停用词去除,大小写转换)等处理,MMR可达0.5。
  • 分析了已有的基于傅里叶频谱分析的时间序列检索算法应用于CBR时遇到的问题,并根据时态CBR检索的需要,提出了一种新的基于循环卷积和傅里叶变换时间序列检索算法。理论分析和数值实验结果都证明,提出的算法在检索...
  • 全文信息检索介绍及算法分析作者:杨老师 一、摘要 本文主要介绍了全文信息检索的概念、应用领域、算法分类、技术难点和算法比较。及一款实现全文检索的数据结构和算法。 二、什么是全文数据库和全文信息检索 ...
  • 针对图像检索中多特征融合问题,提出了一种基于梯度基元聚合矢量的图像检索算法。该算法在改进的HSV颜色空间计算边缘梯度,通过定义的基元模板扫描梯度图像,生成梯度基元图像,将基元和非基元像素分别组合成聚合和...
  • 为了缩减图像低层特征和高层语义之间的语义鸿沟,提出一种基于模糊支持向量机的面向语义图像...实验结果表明,提出的SBIR-FSVM算法与基于SVM的图像检索算法及综合多特征的基于内容的图像检索算法相比均有了显著的改进。
  • 探讨了在相干照明情况下传统强度传输方程法和角谱迭代法相融合的相位检索算法,将该融合法进一步扩展,提出了适用于自然场景透镜模型的相位检索方法,即使用强度传输方程法计算像平面的相位,并将该相位值作为角谱...
  • PAGE 昆明理工大学信息工程与自动化学院学生实验报告 2014 2015 学年 第 1 学期 课程名称信息检索与搜索引擎技术 开课实验室信自楼445 2014 年12月 9日 年级专业班 计科111 学号 201110405138 姓名 成绩 实验项目...
  • 为解决RDF在语义检索中存在的问题,利用Jena工具,提出了一种提取和处理RDF层本体处理方法,给出了一种基于本体的语义检索算法。算法基于软件工程的思想,忽略不同的本体语言、本体的RDF层集合间的差异。算法分五...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 2,518
精华内容 1,007
关键字:

信息检索算法