- 浏览: 1485415 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (691)
- linux (207)
- shell (33)
- java (42)
- 其他 (22)
- javascript (33)
- cloud (16)
- python (33)
- c (48)
- sql (12)
- 工具 (6)
- 缓存 (16)
- ubuntu (7)
- perl (3)
- lua (2)
- 超级有用 (2)
- 服务器 (2)
- mac (22)
- nginx (34)
- php (2)
- 内核 (2)
- gdb (13)
- ICTCLAS (2)
- mac android (0)
- unix (1)
- android (1)
- vim (1)
- epoll (1)
- ios (21)
- mysql (3)
- systemtap (1)
- 算法 (2)
- 汇编 (2)
- arm (3)
- 我的数据结构 (8)
- websocket (12)
- hadoop (5)
- thrift (2)
- hbase (1)
- graphviz (1)
- redis (1)
- raspberry (2)
- qemu (31)
- opencv (4)
- socket (1)
- opengl (1)
- ibeacons (1)
- emacs (6)
- openstack (24)
- docker (1)
- webrtc (11)
- angularjs (2)
- neutron (23)
- jslinux (18)
- 网络 (13)
- tap (9)
- tensorflow (8)
- nlu (4)
- asm.js (5)
- sip (3)
- xl2tp (5)
- conda (1)
- emscripten (6)
- ffmpeg (10)
- srt (1)
- wasm (5)
- bert (3)
- kaldi (4)
- 知识图谱 (1)
最新评论
-
wahahachuang8:
我喜欢代码简洁易读,服务稳定的推送服务,前段时间研究了一下go ...
websocket的helloworld -
q114687576:
http://www.blue-zero.com/WebSoc ...
websocket的helloworld -
zhaoyanzimm:
感谢您的分享,给我提供了很大的帮助,在使用过程中发现了一个问题 ...
nginx的helloworld模块的helloworld -
haoningabc:
leebyte 写道太NB了,期待早日用上Killinux!么 ...
qemu+emacs+gdb调试内核 -
leebyte:
太NB了,期待早日用上Killinux!
qemu+emacs+gdb调试内核
参考http://blog.csdn.net/zzpchina/archive/2006/01/15/579875.aspx
IR(Information Retrieval)来描述像Lucene这样的搜索工具。
lucene in action第二版,亚马逊没抢购到
直接看源码http://www.manning.com/hatcher3/LIAsourcecode.zip
使用的是lucene-core-3.0.2.jar
-------------------------------------------------------
Evaluating search quality:
评价搜索质量:
-----------------------------------------------------
helloword在
LIAsourcecode\lia2e\src\lia\meetlucene\Indexer.java
简化一下:
----------------------------------
不用lucene,直接用流统计一个文件夹中字符出现的个数
IR(Information Retrieval)来描述像Lucene这样的搜索工具。
lucene in action第二版,亚马逊没抢购到
直接看源码http://www.manning.com/hatcher3/LIAsourcecode.zip
使用的是lucene-core-3.0.2.jar
-------------------------------------------------------
Evaluating search quality:
评价搜索质量:
D.5.1 Precision and recall Precision and recall are standard metrics in the information retrieval community for objectively measuring relevance of search results. Precision measures what subset of the documents returned for each query were relevant. For example, if a query has 20 hits and only 1 is relevant, precision is 0.05. If only 1 hit was returned and it was relevant, precision is 1.0. Recall measures what percentage of the relevant documents for that query was actually returned. So if the query listed 8 documents as being relevant, but 6 were in the result set, that’s a recall of 0.75. In a properly configured search application, these two measures are naturally at odds with one another. Let’s say, on one extreme, you only show the user the very best (top 1) document matching their query. With such an approach, your precision will typically be high, because the first result has a good chance of being relevant, while your recall would be very low, because if there are many relevant documents for a given query you have only returned one of them. If we increase top 1 to top 10, then suddenly we will be returning many documents for each query. The precision will necessarily drop because most likely you are now allowing some non-relevant documents into the result set. But recall should increase because each query should return a larger subset of its relevant documents. Still, you’d like the relevant documents to be higher up in the ranking. To measure this, average precision is computed. This measure computes precision at each of the N cutoffs, where N ranges from 1 to a maximum value, and then takes the average. So this measure is higher if your search application generally returns relevant documents earlier in the result set. Mean average precision, or MAP, then measures the mean of average precision across a set of queries. A related measure, mean reciprocal rank or MRR, measures 1/M where M is the first rank that had a relevant document. You want both of these numbers to be as high as possible!
import java.io.File; import java.io.PrintWriter; import java.io.BufferedReader; import java.io.FileReader; import org.apache.lucene.search.*; import org.apache.lucene.store.*; import org.apache.lucene.benchmark.quality.*; import org.apache.lucene.benchmark.quality.utils.*; import org.apache.lucene.benchmark.quality.trec.*; public class PrecisionRecall { public static void main(String[] args) throws Throwable { File topicsFile = new File("D:/Workspaces/suanfa/sohu3/src/lia/benchmark/topics.txt"); File qrelsFile = new File("D:/Workspaces/suanfa/sohu3/src/lia/benchmark/qrels.txt"); Directory dir = FSDirectory.open(new File("indexes/MeetLucene")); org.apache.lucene.search.Searcher searcher = new IndexSearcher(dir, true); String docNameField = "filename"; PrintWriter logger = new PrintWriter(System.out, true); TrecTopicsReader qReader = new TrecTopicsReader(); //#1 QualityQuery qqs[] = qReader.readQueries( new BufferedReader(new FileReader(topicsFile))); //#1 Judge judge = new TrecJudge(new BufferedReader(new FileReader(qrelsFile))); //#2 judge.validateData(qqs, logger); //#3 QualityQueryParser qqParser = new SimpleQQParser("title", "contents"); //#4 QualityBenchmark qrun = new QualityBenchmark(qqs, qqParser, searcher, docNameField); SubmissionReport submitLog = null; QualityStats stats[] = qrun.execute(judge,submitLog, logger); QualityStats avg = QualityStats.average(stats); //#6 avg.log("SUMMARY",2,logger, " "); dir.close(); } }
-----------------------------------------------------
helloword在
LIAsourcecode\lia2e\src\lia\meetlucene\Indexer.java
简化一下:
import java.io.File; import java.io.FileFilter; import java.io.FileReader; import java.io.IOException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.document.Document; import org.apache.lucene.document.Field; import org.apache.lucene.index.IndexWriter; import org.apache.lucene.store.Directory; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.util.Version; public class Indexer { public static void main(String[] args) throws IOException { String indexDir = "D:\\Workspaces\\suanfa\\sohu3\\src\\lia\\meetlucene\\index";// args[0]; String dataDir = "D:\\Workspaces\\suanfa\\sohu3\\src\\lia\\meetlucene\\data";// args[1]; long start = System.currentTimeMillis(); Directory dir = FSDirectory.open(new File(indexDir)); IndexWriter writer = new IndexWriter(dir, new StandardAnalyzer(Version.LUCENE_30), true, IndexWriter.MaxFieldLength.UNLIMITED); // 3 int numIndexed = 0; try { TextFilesFilter filter = new TextFilesFilter(); File[] files = new File(dataDir).listFiles(); for (File f : files) { if (!f.isDirectory() && !f.isHidden() && f.exists()&& f.canRead() && (filter == null || filter.accept(f))) { // indexFile(f); System.out.println("Indexing " + f.getCanonicalPath()); Document doc = new Document(); doc.add(new Field("contents", new FileReader(f))); // 7 doc.add(new Field("filename", f.getName(),Field.Store.YES, Field.Index.NOT_ANALYZED));// 8 doc.add(new Field("fullpath", f.getCanonicalPath(), Field.Store.YES, Field.Index.NOT_ANALYZED));// 9 writer.addDocument(doc); numIndexed = writer.numDocs(); } } } finally { writer.close(); } long end = System.currentTimeMillis(); System.out.println("Indexing " + numIndexed + " files took "+ (end - start) + " milliseconds"); } private static class TextFilesFilter implements FileFilter { public boolean accept(File path) { return path.getName().toLowerCase().endsWith(".txt"); // 6 } } }
import org.apache.lucene.document.Document; import org.apache.lucene.search.IndexSearcher; import org.apache.lucene.search.Query; import org.apache.lucene.search.ScoreDoc; import org.apache.lucene.search.TopDocs; import org.apache.lucene.store.FSDirectory; import org.apache.lucene.store.Directory; import org.apache.lucene.queryParser.QueryParser; import org.apache.lucene.queryParser.ParseException; import org.apache.lucene.analysis.standard.StandardAnalyzer; import org.apache.lucene.util.Version; import java.io.File; import java.io.IOException; public class Searcher { public static void main(String[] args) throws IllegalArgumentException,IOException, ParseException { String indexDir = "D:\\Workspaces\\suanfa\\sohu3\\src\\lia\\meetlucene\\index";//args[0]; //1 String q = "Redistri*";//args[1]; //2 Directory dir = FSDirectory.open(new File(indexDir)); //3 IndexSearcher is = new IndexSearcher(dir); //3 QueryParser parser = new QueryParser(Version.LUCENE_30,"contents",new StandardAnalyzer(Version.LUCENE_30)); //4 Query query = parser.parse(q); //4 long start = System.currentTimeMillis(); TopDocs hits = is.search(query, 10); //5 long end = System.currentTimeMillis(); System.err.println("Found " + hits.totalHits + " document(s) (in " + (end - start) +" milliseconds) that matched query '" +q + "':"); // 6 for(ScoreDoc scoreDoc : hits.scoreDocs) { Document doc = is.doc(scoreDoc.doc); //7 System.out.println(doc.get("fullpath")); //8 } is.close(); } }
----------------------------------
不用lucene,直接用流统计一个文件夹中字符出现的个数
package com.hao; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.util.Iterator; import java.util.Map; import java.util.TreeMap; import java.util.regex.Matcher; import java.util.regex.Pattern; public class UserTreeMap { /** * @param args * @throws Exception */ public static void main(String[] args) throws Exception { //test(); Map map=getMapFromFile("D:\\Workspaces\\suanfa\\sohu3\\src\\english.txt"); Iterator it = map.entrySet().iterator(); while (it.hasNext()) { Map.Entry entry = (Map.Entry) it.next(); Object key = entry.getKey(); Object value = entry.getValue(); System.out.println(key+"--"+value); } } public static Map getMapFromFile(String filepath) throws Exception{ BufferedReader buf = new BufferedReader(new FileReader(filepath)); StringBuffer sbuf = new StringBuffer();// 缓冲字符串 String line = null; while ((line = buf.readLine()) != null) { sbuf.append(line);// 追加到缓冲字符串中 } buf.close();// 读取结束 Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词 String string1 = sbuf.toString();//.toLowerCase();// 转换成小写 Matcher matcher = expression.matcher(string1);// 定义string1的匹配器 TreeMap myTreeMap = new TreeMap();// 创建树映射 存放键/值对 int n = 0;// 文章中单词总数 Object word = null;// 文章中的单词 Object num = null;// 出现的次数 while (matcher.find()) {// 是否匹配单词 word = matcher.group();// 得到一个单词-树映射的键 n++;// 单词数加1 if (myTreeMap.containsKey(word)) {// 如果包含该键,单词出现过 num = myTreeMap.get(word);// 得到单词出现的次数 Integer count = (Integer) num;// 强制转化 myTreeMap.put(word, new Integer(count.intValue() + 1)); } else { myTreeMap.put(word,new Integer(1));//否则单词第一次出现,添加到映射中 } } return myTreeMap; } public static void test() throws Exception{ BufferedReader buf = new BufferedReader(new FileReader("D:\\sohu3\\english.txt")); System.out.println("Read under this dir English.txt"); StringBuffer sbuf = new StringBuffer();// 缓冲字符串 String line = null; while ((line = buf.readLine()) != null) { sbuf.append(line);// 追加到缓冲字符串中 } buf.close();// 读取结束 Pattern expression = Pattern.compile("[a-zA-Z]+");// 定义正则表达式匹配单词 String string1 = sbuf.toString().toLowerCase();// 转换成小写 Matcher matcher = expression.matcher(string1);// 定义string1的匹配器 TreeMap myTreeMap = new TreeMap();// 创建树映射 存放键/值对 int n = 0;// 文章中单词总数 Object word = null;// 文章中的单词 Object num = null;// 出现的次数 while (matcher.find()) {// 是否匹配单词 word = matcher.group();// 得到一个单词-树映射的键 n++;// 单词数加1 if (myTreeMap.containsKey(word)) {// 如果包含该键,单词出现过 num = myTreeMap.get(word);// 得到单词出现的次数 Integer count = (Integer) num;// 强制转化 myTreeMap.put(word, new Integer(count.intValue() + 1)); } else {// src="http://images.csdn.net/syntaxhighlighting/OutliningIndicators/InBlock.gif" // alt="" /> myTreeMap.put(word,new Integer(1));//否则单词第一次出现,添加到映射中 } } System.out.println("统计分析如下:"); System.out.println(" 文章中单词总数" + n + "个"); System.out.println("具体的信息在当前目录的result.txt文件中"); BufferedWriter bufw = new BufferedWriter(new FileWriter("result.txt")); Iterator iter = myTreeMap.keySet().iterator();// 得到树映射键集合的迭代器 Object key = null; while (iter.hasNext()) {// 使用迭代器遍历树映射的键 key = iter.next(); bufw.write((String) key + ":" + myTreeMap.get(key));// 键/值写到文件中 bufw.newLine(); } bufw.write("english.txt中的单词总数" + n + "个"); bufw.newLine(); bufw.write("english.txt中不同单词" + myTreeMap.size() + "个"); bufw.close(); } }
发表评论
-
tomcat的https的例子
2016-09-22 17:50 465参考http://jingyan.baidu.com/arti ... -
jpa
2014-11-25 20:14 582可以使用jpa生成数据库表 import javax.pe ... -
hadoop复习 1搭建
2014-07-23 17:38 785参考http://hadoop.apache.org/docs ... -
jspwebshell
2014-06-20 12:35 6731<%@ page contentType=" ... -
jvm总结
2013-03-04 19:02 1745分代 年轻代: 所有新生 ... -
java的upload
2013-01-24 19:31 1971好久没写java的东西了 遇到个服务器,不是标准的httpSe ... -
spring lucene rmi例子
2012-09-18 16:24 1908http://www.blogjava.net/freeman ... -
jna的使用
2012-04-22 21:06 2921遇到java调用共享内存的 ... -
hessian
2012-04-10 10:40 929http://hessian.caucho.com/ 这个好 ... -
jvm调优应该知道的一点东西
2012-02-27 18:13 1269概念 概念 Java 工具 jsta ... -
java socket备份
2012-02-22 10:01 1068package org.hao; import java ... -
java操作内存
2011-12-29 00:57 5200How To Write Directly to a Memo ... -
单例模式7中
2011-12-28 09:56 926package com.sohu.zookeeper; // ... -
jprofiler6远程resin
2011-07-07 23:17 2706网上找的破解码:L-Larry_Lau@163.com#784 ... -
eclipse不装插件配置resin,可以debug
2011-06-27 23:41 1839新建java工程 1.目录如下 G:. ├─.settings ... -
session所有信息
2011-06-07 11:32 792转载http://www.99inf.net/Software ... -
看端口号用netstat -abn
2011-05-14 00:27 1315张孝祥讲过个fport,到哪都依赖他看端口被什么占用, 原来n ... -
hessian的helloworld
2011-05-12 11:02 1206参考http://hessian.caucho.com/#Ex ... -
resin日志
2011-05-03 14:40 1474resin-pro-3.1.9\conf\resin.conf ... -
maven-resin
2011-05-02 22:39 2348关于resin http://2hei.net/mt/2008 ...
相关推荐
51单片机
双级式储能模型,可做充放电转以及低电压故障穿越,含有负序抑制模块,可做对称故障与不对称故障
郑州升达大学2024-2025第一学期计算机视觉课程期末试卷,原版。配套教材为《OpenCV计算机视觉基础教程》夏帮贵主编。
线切割课后试题
目录 摘 要 1 一、设计任务概述 3 1.1 设计目的 3 1.2 项目任务和要求 3 1.3 参考资料 3 二、项目开发环境 4 三、项目需求分析 5 四、 项目设计和实现 5 4.1 总体设计 5 4.2 功能设计 6 4.3 系统实现 7 五、系统运行和测试 12 六、设计总结 15 七、附录 16 7.1 程序清单 16 7.2 其他需要说明的内容 23。内容来源于网络分享,如有侵权请联系我删除。另外如果没有积分的同学需要下载,请私信我。
智慧物联网系统发展战略研究
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
电机与拖动技术三级项目报告,直流电动机是电机的主要类型之一,具有调速范围广、调速特性平滑、过载能力强等优点,在生产生活中具有广泛的应用。此次课程项目阐述了直流电动机的结构、应用、并着重对电枢回路串电阻分级启动进行深入研究,MATLAB仿真软件对直流电动机分级启动进行仿真。
详细说明:https://blog.csdn.net/a342874650/article/details/144989766 在 Web 应用中,恶意用户可能会通过频繁刷新接口或进行暴力请求来攻击系统,导致服务器负载过高或服务不可用。为了应对这一问题,本文将详细介绍如何使用 Spring Boot 结合拦截器(Interceptor)和 Redis 来实现基于 URL 和 IP 的访问频率限制。具体实现包括拦截器拦截请求、Redis 存储访问记录、检测访问频率并在达到限制时禁用 IP 的完整过程。通过本文的详细实现过程和完整源代码,读者可以快速掌握如何在自己的项目中应用这一机制来增强系统的安全性和稳定性。
内容概要:本文详细介绍了JavaEE核心技术,涵盖多个重要的Web框架和持久层技术,以及其应用场景和实施方案。具体内容包括:①Struts框架的特点和功能,特别是其对MVC架构的支持,以及如何应用于薪资管理系统;②MVC架构的基本概念和如何通过JSP、JavaBean及Servlet实现成绩管理系统;③Spring IoC容器的工作原理,强调其控制反转和依赖注入功能,展示了整合Struts和JPA的具体案例,如通讯管理系统Web层设计方案;④Spring MVC结构及其XML配置方法,并提出一种针对图书管理系统的Spring MVC实现思路;⑤深入探讨Spring AOP原理,介绍如何使用XML配置进行统一事务处理的应用方案;⑥分析Hibernate核心接口及设备管理系统持久层设计方案;⑦整合Hibernate和Spring IoC实现的成绩管理系统持久层设计方案。 适合人群:具备一定Java基础的初、中级JavaEE开发者,对JavaWeb开发有兴趣的学习者。 使用场景及目标:①帮助开发者理解JavaEE关键技术和框架的实际运用,提高项目开发技能;②指导实际项目的架构设计和技术选型;③促进团队协作,提高代码复用性和维护效率。 阅读建议:建议读者根据自身经验和兴趣选择重点章节仔细研读,并结合实际情况尝试实践,逐步掌握各知识点。此外,还应该结合最新的API文档和技术论坛资料不断跟进更新。
easy-interceptor修改请求头和响应头.zip
Prime_Series_Level-1.z10 别下,这个是分卷压缩,笔者用来备份的
该项目包含完整的前后端代码、数据库脚本和相关工具,简单部署即可运行。功能完善、界面美观、操作简单,具有很高的实际应用价值,非常适合作为Java毕业设计或Java课程设计使用。 所有项目均经过严格调试,确保可运行!下载后即可快速部署和使用。 1 适用场景: 毕业设计 期末大作业 课程设计 2 项目特点: 代码完整:详细代码注释,适合新手学习和使用 功能强大:涵盖常见的核心功能,满足大部分课程设计需求 部署简单:有基础的人,只需按照教程操作,轻松完成本地或服务器部署 高质量代码:经过严格测试,确保无错误,稳定运行 3 技术栈和工具 前端:HTML + Vue.js 后端框架:Spring Boot 开发环境:IntelliJ IDEA 数据库:MySQL(建议使用 5.7 版本,更稳定) 数据库可视化工具:Navicat 部署环境:Tomcat(推荐 7.x 或 8.x 版本),Maven
CST0402B+跟岗实习提交资料.zip
基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目),个人大三大设计项目、经导师指导并认可通过的高分设计项目,评审分99分,代码完整确保可以运行,小白也可以亲自搞定,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为毕业设计、课程设计、期末大作业。 基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文档说明(高分项目)基于yolov5的医学影像肺结节检测项目源码+文
本金1W利息0.0325,几年能double?
matlab机械臂关节空间轨迹规划,3-5-3分段多项式插值法,六自由度机械臂,该算法可运用到仿真建模机械臂上实时运动,可视化轨迹,有角度,速度,加速度仿真曲线。 也可以有单独角度,速度,加速度仿真曲线。 可自行更程序中机械臂与点的参数。 谢谢大家 (程序中均为弧度制参数)353混合多项式插值
2011-2023年各省金融监管水平数据(含原始数据+计算过程+计算结果) 1、时间:2011-2023年 2、来源:国家统计J、统计NJ 3、指标:金融业增加值、金融监管支出、金融监管水平 4、计算方法:金融监管水平=金融监管支出/金融业增加值
本表名称为简易手写识字表,收录了21000多个汉字,每个汉字后面附上了简易手写笔画和输入编码。独体字是一个主笔画和一个字母编码,双码字是两个主笔画组合和两个字母编码,多码字是两个主笔画组合和三个字母编码。可用于识字、简易手写和大键盘汉字输入等参考。