文档相似性匹配

2019-03-27 01:09|来源: 网路

1.TF-IDF简介

中文分词(Chinese Word Segmentation)指的是将一个汉字序列切分成一个一个单独的词。中文分词是文本挖掘的基础,对于输入的一段中文,成功的进行中文分词,可以达到电脑自动识别语句含义的效果。

  TF-IDF(term frequency–inverse document frequency)是一种用于信息搜索和信息挖掘的常用加权技术。在搜索、文献分类和其他相关领域有广泛的应用。

  TF-IDF的主要思想是,如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF词频(Term Frequency)指的是某一个给定的词语在该文件中出现的次数。IDF反文档频率(Inverse Document Frequency)的主要思想是:如果包含词条的文档越少,IDF越大,则说明词条具有很好的类别区分能力。

  使用TF*IDF可以计算某个关键字在某篇文章里面的重要性,因而识别这篇文章的主要含义,实现计算机读懂文章的功能。

 

 

2、Lucene评分

System.out.println(searcher.explain(q, hits.id(i))); //打印评分细节

 

3.Solr字段配置

fields节点内定义具体的字段(类似数据库的字段),含有以下属性:

  • name:字段名
  • type:之前定义过的各种FieldType
  • indexed:是否被索引
  • stored:是否被存储(如果不需要存储相应字段值,尽量设为false)
  • multiValued:是否有多个值(对可能存在多值的字段尽量设置为true,避免建索引时抛出错误)

 

4.Solr设置优化中文分词器

 


转自:http://www.cnblogs.com/jintianfan/p/3509438

相关问答

更多
  • 你想在图像中找到两个看起来相同(纹理相同)的独特区域,或者将图像中的纹理与另一个图像进行匹配? 第二个因不同的辐射测量而变得更难。 以下是如何衡量区域相似度的基本方案。 您可以编写一个函数,将其作为输入获取图像中的一个区域并计算标量值。 像平均亮度。 这个标量被称为特征 你写更多这样的函数来获得大约8-30个特征。 它们一起形成一个矢量,用于编码图像中区域的信息 计算这种矢量到你想要比较的两个区域 定义需要两个向量并输出它们相似程度的相似度函数。 你需要关注步骤2和步骤4。 步骤2:使用以下特征:亮度std ...
  • 在main()定义一个名为test的列表: test=[] 此列表隐藏了您在main()外部定义的名为test()的函数,因此当您尝试: test(tf_idf_matrix,count,nltkutil.cosine_distance) Python尝试使用提供的参数调用列表 。 不可避免地,你得到一个TypeError 。 要解决此问题,请将列表,函数或(理想情况下)重命名为更清楚地描述其用途的名称。 In main() you define a list named test: test=[] ...
  • Carrot2不使用文档 - 文档相似性的传统概念,因此您不会在那里找到它。 您确实可以使用术语 - 文档矩阵来计算各种文档 - 文档相似性。 假设term-document矩阵的列与输入列表中的文档的顺序相同,则是正确的。 您可以检查源代码以清除任何其他疑问。 Carrot2 does not use the conventional notion of document-document similarity, so you won't find it there. You can indeed use ...
  • 我会发表评论,但我没有足够的声誉! 在NLP中,很容易陷入这些方法并忘记预处理。 1)删除停用词/最常用词 2)合并单词对 - 查看SpaCy的文档 即“纽约市”成为其自己的独特标志,而不是“新”,“约克”,“城市” https://spacy.io/usage/linguistic-features 3)使用Doc2Vec而不是Word2Vec(因为你已经在使用gensim了,这不应该太难弄明白,他们有自己的实现) 然后,一旦你完成了所有这些事情,你将拥有文档向量,这可能会给你一个更好的分数。 另外,请记 ...
  • 聚类是机器学习的最大领域之一(按比例你可以比较,比如数学中的“集成”,或者编程中的“排序”),并且有数百种不同的算法,专注于不同的问题设置和要求。 其中一些需要指定簇的数量,有些则不需要。 有些可以只使用成对相似性,有些需要对被聚类的项目进行一些明确的表示,等等。 我建议你从两个经典的聚类算法开始: http://en.wikipedia.org/wiki/K-means_clustering - 在这里,您预先指定了簇数(“k”),但是被聚类的对象必须是向量空间中的点(有方法可以将文档聚类问题减少到向量空 ...
  • 这几乎取决于你如何制定你的查询。 如果您制定了一个布尔查询,您可以指定查询的哪些条款必须位于返回的文档中。 这是通过使用BoolenClause.Occur.MUST完成的。 您可以通过扩展TFIDFSimilarity来编写自己的相似度,但您可能会注意到Lucene实际评分基于余弦相似度。 在该公式中,queryNorm(q)和norm(t,d)形成余弦相似度的分母,求和是查询向量和文档向量的点积。 提示:您可以形成示例查询并使用explain()来查看评分的详细信息。 It pretty much de ...
  • OntoSim被证明是一个非常强大的java库,它基于两个出版物: JérômeDavid,JérômeEuzenat,本体距离比较(初步结果),见:Proc。 第7届国际语义网络会议(ISWC),卡尔斯鲁厄(德国),(Amit Sheth,Steffen Staab,Mike Dean,Massimo Paolucci,Diana Maynard,Timothy Finin,Krishnaprasad Thirunarayan(编辑),语义网,计算机科学讲义5318, 2008),pp245-260,20 ...
  • 如果需要在about字段上计算文本相似度,实现此目的的一种方法是使用文本索引 。 例如(在mongo shell中),如果在about字段上创建文本索引: db.collection.createIndex({about: 'text'}) 你可以执行一个查询(例如摘自https://docs.mongodb.com/manual/reference/operator/query/text/#sort-by-text-search-score ): db.collection.find({$text: { ...