文档相似性匹配

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
2019-03-27 01:09

知识点

相关教程

更多

php匹配问题

文章内容:我是中国人,我喜欢上javaeye  填写的标签:中国  显示的效果是:我是 <a href="china.com">中国 </a>人,我喜欢上javaeye  在显示的时候,我用正则表达式进行匹配是可以实现,但是如果文章中有图片的话,如 <img src="photo.jpg" alt="这是一张中国风景图

solr返回部分匹配结果

这里的“部分匹配”,是指返回的结果没有完全匹配所有搜索的关键词。 DisMaxQParserPluign里有一个参数mm(Minimum 'should' match),设置整个搜索关键词中最小需要匹配的数量。这里给出例子   "2" : 无论关键词一共有多少,doc最少需要匹配2个 "75%" : doc最少需要匹配75%的关键词,关键词个数向下取整。 &

solr使用方法 完全匹配

最近一直被solr的搜索困扰,搜索汉字时不能搜索出自己想要的内容,经过研究和查询发现,问题出在没有完全匹配上,主要还是对solr使用不太熟练。 解决方法:以前UserRealname:某某家长,这样搜索出使用问题的,改为UserRealname:"某某家长" 外面加上双引号,必须是双引号。就OK了。 转自:http://www.cnblogs.com/zhja/p/372992

solr 实现拼音匹配

最近实现了一个拼音检索 向大家介绍一下 1.用solr suggest自动匹配 在 solrconfig.xml添加这样配置 <searchComponent name="suggest" class="solr.SpellCheckComponent"> <str name="queryAnalyzerFieldType&quo

MapReduce任务独立性和任务的推测性执行

MR中一个InputSplit对应着一个map任务,而一个InputSplit可能包含一个或者多个block,block是HDFS对数据的物理划分而InputSplit是MR对文件的逻辑划分,通常来说InputSplit的大小和block的大小相同最适宜。其中单个 block 的操作是本地操作,将更多的时间用于计算,而不是数据传输。也就是说这个map任务在运行的过程中只从本节点上读取所需要的数据,

Hadoop 套件匹配问题

因为Hadoop相关组件很多,有hadoop,hbase,hive,pig等,但没有发行套件。而每个组件的开发进度不一,一些组件还没有稳定,版本号很低,经常遇到组件之间不配套引发的莫名其妙的问题。 由于hadoop是这套系统的核心,可能需要找一个大家都兼容的版本。 目前hadoop已经出了一个1.03和2.0 alpha的版本,这是所有组件中版本最高的。但其他组件都没有跟上,为了兼容可能得花很大精

谁有sap的相关文档

谁有sap的相关文档

如何用正则表达示匹配一个div标签

如何用正则表达示匹配一个div标签

剖析solr实用性

我的使用经历 使用solr3.6版本,配合自己用lucene3.6建立的索引,搭建了一个搜索服务,前台通过http访问solr服务,获取由solr排序后的结果集。环境是linux ubuntu,servlet容器是tomcat。这个搜索服务是提供给php开发人员使用的。根据我现在对solr的理解和使用感受,我想说说solr这玩意儿的实用性。 我对solr的理解 solr包装了lucene之后,将整

深入理解搜索-精确匹配搜索

查出在某个域中,含有某个词的指定文档数,要用到的方法是TermQuery,Query query = new TermQuery(new Term(field,name));

SVG 放射性渐变radialGradient


                            

在线文档显示打印

哪位见过这种类型的在线文档显示打印,是用什么插件做的     问题补充:j2ee中有没有类似的插件

Solr添加文档到索引

solr添加文档非常方便,不用像Lucene那样一个一个添加Field,省去了很多的麻烦下面看操作 方法一:     1     private static String URI = "http://localhost:8080/solr/"; 2  3     private CommonsHttpSolrServer httpSolrServer = null; 4  5

微信前景与范围文档

微信 前景与范围文档 1.业务需求 1.1应用背景 由于现在的独生子女较多和社会的多元化发展,维持社会关系变得格外重要。同学毕业后大多各奔东西,平时如何保持联系成了问题,虽然市面上有各种各样的聊天软件但都有一些不方便或者大家接受的少,难以大家都统一。 1.2业务机遇 微信正在和一批合作伙伴测试公众平台的自定义接口功能,这个接口可以让第三方公司的CRM系统自主接入。公众账号背后的商家将能通过这个接口

Java 文档注释

Java 文档注释     Java只是三种注释方式。前两种分别是// 和/* */,第三种被称作说明注释,它以/** 开始,以 */结束。 说明注释允许你在程序中嵌入关于程序的信息。你可以使用javadoc工具软件来生成信息,并输出到HTML文件中。 说明注释,是你更加方面的记录你的程序的信息。     javadoc 标签    ja

最新教程

更多

java线程状态详解(6种)

java线程类为:java.lang.Thread,其实现java.lang.Runnable接口。 线程在运行过程中有6种状态,分别如下: NEW:初始状态,线程被构建,但是还没有调用start()方法 RUNNABLE:运行状态,Java线程将操作系统中的就绪和运行两种状态统称为“运行状态” BLOCK:阻塞状态,表示线程阻塞

redis从库只读设置-redis集群管理

默认情况下redis数据库充当slave角色时是只读的不能进行写操作,如果写入,会提示以下错误:READONLY You can't write against a read only slave.  127.0.0.1:6382> set k3 111  (error) READONLY You can't write against a read only slave. 如果你要开启从库

Netty环境配置

netty是一个java事件驱动的网络通信框架,也就是一个jar包,只要在项目里引用即可。

Netty基于流的传输处理

​在TCP/IP的基于流的传输中,接收的数据被存储到套接字接收缓冲器中。不幸的是,基于流的传输的缓冲器不是分组的队列,而是字节的队列。 这意味着,即使将两个消息作为两个独立的数据包发送,操作系统也不会将它们视为两个消息,而只是一组字节(有点悲剧)。 因此,不能保证读的是您在远程定入的行数据

Netty入门实例-使用POJO代替ByteBuf

使用TIME协议的客户端和服务器示例,让它们使用POJO来代替原来的ByteBuf。

Netty入门实例-时间服务器

Netty中服务器和客户端之间最大的和唯一的区别是使用了不同的Bootstrap和Channel实现

Netty入门实例-编写服务器端程序

channelRead()处理程序方法实现如下

Netty开发环境配置

最新版本的Netty 4.x和JDK 1.6及更高版本

电商平台数据库设计

电商平台数据库表设计:商品分类表、商品信息表、品牌表、商品属性表、商品属性扩展表、规格表、规格扩展表

HttpClient 上传文件

我们使用MultipartEntityBuilder创建一个HttpEntity。 当创建构建器时,添加一个二进制体 - 包含将要上传的文件以及一个文本正文。 接下来,使用RequestBuilder创建一个HTTP请求,并分配先前创建的HttpEntity。

MongoDB常用命令

查看当前使用的数据库    > db    test  切换数据库   > use foobar    switched to db foobar  插入文档    > post={"title":"领悟书生","content":"这是一个分享教程的网站","date":new

快速了解MongoDB【基本概念与体系结构】

什么是MongoDB MongoDB is a general purpose, document-based, distributed database built for modern application developers and for the cloud era. MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。

windows系统安装MongoDB

安装 下载MongoDB的安装包:mongodb-win32-x86_64-2008plus-ssl-3.2.10-signed.msi,按照提示步骤安装即可。 安装完成后,软件会安装在C:\Program Files\MongoDB 目录中 我们要启动的服务程序就是C:\Program Files\MongoDB\Server\3.2\bin目录下的mongod.exe,为了方便我们每次启动,我

Spring boot整合MyBatis-Plus 之二:增删改查

基于上一篇springboot整合MyBatis-Plus之后,实现简单的增删改查 创建实体类 添加表注解TableName和主键注解TableId import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.baom

分布式ID生成器【snowflake雪花算法】

基于snowflake雪花算法分布式ID生成器 snowflake雪花算法分布式ID生成器几大特点: 41bit的时间戳可以支持该算法使用到2082年 10bit的工作机器id可以支持1024台机器 序列号支持1毫秒产生4096个自增序列id 整体上按照时间自增排序 整个分布式系统内不会产生ID碰撞 每秒能够产生26万ID左右 Twitter的 Snowflake分布式ID生成器的JAVA实现方案