- 浏览: 615936 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
xianzi_2008:
xianzi_2008 写道楼主请教下,我缓存了一个List& ...
Ehcache -
xianzi_2008:
楼主请教下,我缓存了一个List<Bean>对象, ...
Ehcache -
jsdsh:
收藏好.五个字
hibernate之one-to-many详细 -
Tlife:
好!!!!
hibernate------HQL总结 -
yanqingluo:
例子很恰当。
观察者模式
1.提供自动学习数据,对这些数据进行索引
2。从索引里提取一个2维矩阵列表,写入一个文本文件里。关键性代码如下:
2。从索引里提取一个2维矩阵列表,写入一个文本文件里。关键性代码如下:
java 代码
- import java.io.File;
- import java.util.HashMap;
- import org.apache.log4j.Logger;
- import org.apache.lucene.document.Document;
- import org.apache.lucene.index.IndexReader;
- import org.apache.lucene.index.Term;
- import org.apache.lucene.index.TermEnum;
- import org.apache.lucene.search.BooleanQuery;
- import org.apache.lucene.search.Hits;
- import org.apache.lucene.search.IndexSearcher;
- import org.apache.lucene.search.Query;
- import org.apache.lucene.search.TermQuery;
- import org.apache.lucene.search.BooleanClause.Occur;
- import org.apache.lucene.store.Directory;
- import org.apache.lucene.store.FSDirectory;
- import com.feedsky.classify.util.FileUtil;
- public class MMClassify{
- private static String indexDir = "D:\\projectsvn\\trunk\\classify\\indexFile";//索引目录
- private static String resultFile = "D:\\projectsvn\\trunk\\classify\\resultFile.txt";
- private IndexSearcher searcher ;
- private IndexReader reader;
- private Logger logger = Logger.getLogger(MMClassify.class);
- private HashMap clazzMap = new HashMap();
- private String[] clazzArray = {"C000007","C000008","C000010","C000013","C000014","C000016","C000020","C000022","C000023","C000024"};
- public static void main(String[] args) {
- // Matrix matrix = new Matrix(10,2);
- // matrix.set(0, 1, 0.5);
- // matrix.set(1, 1, 0.5);
- // // System.out.println(matrix);
- MMClassify mm = new MMClassify();
- mm.init();
- mm.process();
- // System.out.println(mm.matrix);
- }
- public void init(){
- try{
- Directory directory = FSDirectory.getDirectory(indexDir);
- reader = IndexReader.open(directory);
- searcher = new IndexSearcher(reader);
- clazzMap.put("C000007", "汽车");
- clazzMap.put("C000008", "财经");
- clazzMap.put("C000010", "IT");
- clazzMap.put("C000013", "健康");
- clazzMap.put("C000014", "体育");
- clazzMap.put("C000016", "旅游");
- clazzMap.put("C000020", "教育");
- clazzMap.put("C000022", "招聘");
- clazzMap.put("C000023", "文化");
- clazzMap.put("C000024", "军事");
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- public void process(){
- try{
- //提取所有关键词的Term集合
- TermEnum terms = reader.terms();
- while (terms.next()) {
- //提取其中一个Term
- Term term = terms.term();
- String keyWord = term.text();
- //判断该关键词的所属域
- if(term.field().equals("itemContent")){
- BooleanQuery booleanQuery = new BooleanQuery();
- Query keywordQuery = new TermQuery(new Term("itemContent",keyWord));
- booleanQuery.add(keywordQuery,Occur.MUST);
- //到索引文件里做全部搜索
- Hits hits = searcher.search(keywordQuery);
- ResultList list = new ResultList(keyWord);
- for (int i = 0; i < hits.length(); i++) {
- Document doc = (Document)hits.doc(i);
- float score = hits.score(i);
- //doc.get("dirname");获得分类编号
- Result result = new Result(score,doc.get("dirname"));
- list.addResult(result);
- }
- HashMap map = list.resultMap;
- //提取二维矩阵表
- StringBuffer resultStr = new StringBuffer();
- for(int i=0;i
- String clazz = clazzArray[i];
- if(map.get(clazz) == null){
- resultStr.append(0 + " ");
- }else{
- // Float score = (Float)map.get(clazz);
- // resultStr.append(score.floatValue() + " ");
- resultStr.append(list.getValue(clazz) + " ");
- }
- }
- // System.out.println(resultStr.toString());
- Boolean isAppend = true;
- File file = new File(resultFile);
- if(!file.isFile()){
- isAppend = false;
- }
- String content = keyWord + " " + resultStr.toString();
- FileUtil.writeFileByLine(content , resultFile , "GBK" , isAppend);
- //提取该关键词在所有分类里的分值
- // Iterator it = map.keySet().iterator();
- // while (it.hasNext()) {
- // // Get key,分类编号
- // String key = (String)it.next();
- // Float score = (Float)map.get(key);
- //
- // //该关键词所在的分类以及分值
- // String outline = keyWord + " clazz:" + (String)clazzMap.get(key) + " score:" + score.floatValue();
- // System.out.println(outline);
- // logger.info(outline);
- //
- // }
- // matrix = new Matrix(hits.length(),2);
- }
- //FileUtil.writeFileByLine(out.toString(), "D:\\projectsvn\\trunk\\classify\\out.txt", "gbk", true);
- }
- }catch(Exception e){
- e.printStackTrace();
- }
- }
- }
- class Result {
- public Float score;
- public String clazz;
- public Result(float score, String clazz) {
- super();
- this.score = score;
- this.clazz = clazz;
- }
- }
- class ResultList{
- public HashMap resultMap = new HashMap();
- public String keyword ;
- public ResultList(String keyword) {
- super();
- this.keyword = keyword;
- }
- public void addResult(Result result){
- Object score = resultMap.get(result.clazz);
- if(score !=null ){
- float scorez =(Float)score;
- score = scorez + result.score;
- resultMap.put(result.clazz, score);
- }else{
- resultMap.put(result.clazz, result.score);
- }
- }
- public Float getValue(String clazz){
- Object score = resultMap.get(clazz);
- if(score!=null){
- float countScore = (float)0.000000001;
- Iterator it = resultMap.keySet().iterator();
- while (it.hasNext()) {
- // Get key
- Object key = it.next();
- Float sc = (Float)resultMap.get(key);
- countScore += sc;
- }
- float scoreAve=(Float)score/countScore;
- return scoreAve;
- }
- return (float)0;
- }
- public Float getHot(String clazz){
- Object score = resultMap.get(clazz);
- if(score!=null){
- return (Float)score;
- }
- return (float)0;
- }
- }
发表评论
-
通过updateDocument更新索引
2008-09-20 15:57 4830package com.lucene; import ... -
通过addIndexes将内存中的索引加入到磁盘索引
2008-09-20 15:33 1963package com.lucene; import ... -
lucene高亮demo
2007-07-31 17:19 5135java 代码 package com.feed ... -
提取关键词及相应的频率,Field.Store.NO的数据获取
2007-07-11 11:53 29941.提取关键词及相应的频率 java 代码 R ... -
提取关键词,并排序
2007-06-29 11:10 2471java 代码 //提取内容关键字! 对关键字 ... -
lucene索引参数优化
2007-06-28 15:52 18591。maxBufferedDocs 缓存在内存中的 ... -
lucene支持内存索引
2007-06-28 11:24 3052lucene支持内存索引:这 ... -
关于lucene2.0的创建、检索和删除功能的完整实现
2007-06-28 11:07 1440转载: http://blog.csdn.net/xia ... -
Lucene应用的一点体会
2007-06-11 11:15 4882Lucene应用(我用的是Lucene2.1.0,有些观点有可 ... -
lucene2.0
2007-05-21 14:27 1116Field.Text(java.lang.String, ja ...
相关推荐
数据挖掘分类问题的贪婪粗糙集约简算法.caj 数据仓库与数据挖掘技术在电力系统中的应用.caj 基于数据挖掘技术的抽油机泵参调整DSS决策支持系统.caj 数据挖掘与电力系统1.caj 数据仓库和数据挖掘技术在ERP中的应用....
一篇关于数据挖掘方面的论文,给大家分享。内容不多,简单的讲解了数据挖掘的原理和应用
数据挖掘在医学图像分类中的应用.pdf
本书作者根据自己20年数据挖掘方面的经验,总结了数据挖掘的理论知识和实践经验,提供了大量一线资料。本书首先介绍数据挖掘的概念和误区,然后介绍数据探索的方法,包括数据查探、数据描绘、数据变换、数据优化等,...
分类算法是数据挖掘中的最重要的技术之一。通过 对当前提出的最新的具有代表性的分类算法进行分析和比 较,总结每类算法的各方面特性,从而便于研究者对已有的 算法进行改进,提出具有更好性能的新的分类算法,同时方 便...
从人工智能、统计分析和数据库技术3个方面对数据挖掘技术进行了总结;从模式识别的角度讨论了数据挖掘技术的主要任务,包括分类、聚类、回归、关联、序列和偏差6种模式的识别.详细介绍了数据挖掘技术的常用方法,包括...
偶然看到比较好的数据挖掘方面的PPT 数据挖掘概述 数据预处理 数据挖掘算法-分类与预测 数据挖掘算法-聚类 数据挖掘算法-关联分析 序列模式挖掘 数据挖掘软件 数据挖掘应用
详细阐述了数据挖掘的各个方面的当前最新的技术,有些内容是深入讲解的,也有一些是带过讲了以下。
本书是一本全面介绍数据挖掘和知识发现技术的专业书籍,它系统地阐述了数据挖掘和知识发现技术的产生、发展、应用以及相关概念、原理和算法,对数据挖掘中的主要技术分支,包括关联规则、分类、聚类、序列、空间以及...
机器学习数据挖掘常用算法总结梳理完整版:是对于机器学习以及数据挖掘领域中使用到的算法、方法和模型等方面一个全面的总结和学习概括,欢迎同行互相交流学习,欢迎指点。
基于SPSS Modeler的数据挖掘_数据分析,主要结合了三个方面进行讲解,第一是软件操作层面,让使用者实际操作,尽快掌握软件的使用方法和处理步骤,第二是结果分析层面,让使用者通过案例演示,基本明白软件的输出...
数据挖掘Apriori算法参考论文几十篇,知网、万方下载打包共享 有以下几方面内容: Apriori算法并行处理、Apriori算法增量更新、Apriori算法最小支持度和最小置信度阈值设置调优。 基于Spark的并行频繁模式挖掘算法 ...
18大数据挖掘的经典算法以及代码实现,涉及到了决策分类,聚类,链接挖掘,关联挖掘,模式挖掘等等方面,后面都是相应算法的文章,希望能够帮助大家学。 目前追加了其他的一些经典的DM算法,在others的包中涉及聚类,...
数据挖掘分析面试题 数据挖掘分析面试题全文共16页,当前为第1页。数据挖掘分析面试题全文共16页,当前为第1页。2011Alibaba数据分析师(实习)试题解析 数据挖掘分析面试题全文共16页,当前为第1页。 数据挖掘分析...
对数据挖掘中的主要技术分支,包括关联规则、分类、聚类、序列、空间以及Web挖掘等进行了理论剖析和算法描述。本书的许多工作是作者们在攻读博士学位期间的工作总结,一方面,对于相关概念和技术的阐述尽量先从理论...
这种从数据中“淘金”,从大量数据(包括文本)中挖掘出隐含的、未知的、对决策有潜在价值的关系、模式和趋势,并用这些知识和规则建立用于决策支持的模型,提供预测性决策支持的方法、工具和过程,就是数据挖掘;...
分类数据挖掘算法在开发区经济决策方面的应用.pdf
三、数据挖掘分类 1.直接数据挖掘 目标是利用可用的数据建立一个模型,这个模型对剩余的数据,即一个特定的 变量进行描述。 2.间接数据挖掘 目标中没有选出某一具体的变量,而是在所有的变量中建立起某种关系。 四...
针对初学者描述关联规则的定义、分类、度量等内容,简单介绍了关联规则的算法,当今国内外上的应用和在数据挖掘方面的研究状况。
长期以来,很多相互独立的不同学科分别致力于数据挖掘的各个方面。本书把信息科学、计算科学和统计学在数据挖掘方面的应用融合在一起,是第一本真正和跨学科教材。 本书由三部分构成。第一部分是基础,介绍了数据...