增加了一定的自学习能力.
package test.word;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.HashMap;
import java.util.Iterator;
public class Word {
private HashMap words = new HashMap();
private HashMap result = new HashMap();
public void run(String content) {
//load
try {
words = this.load("d:/w/words.obj");
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
//init
this.save(words, "d:/w/words.obj");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
this.save(result, "d:/w/result.obj");
//split
scan(content);
this.save(result, "d:/w/result.obj");
//update
//rename
//view
this.list(result);
}
public void scan(String content) {
int l = content.length();
StringBuilder builder = new StringBuilder();
StringBuilder t = new StringBuilder();
char c = 0;
char o = 0;
for(int i=0;i<l;i++) {
//System.out.println(content.charAt(i));
c = content.charAt(i);
if(split(c)) {
if(o == 0) {
builder.delete(0, builder.length());
//o = 0;
c = 0;
} else {
this.insert(t.append(o).toString());
t.delete(0, t.length());
}
//System.out.println();
//System.out.println(builder.toString());
} else {
//builder.append(c);
if(o != 0) {
if( (isNum(o) && isNum(c)) || (!isNum(o) && !isNum(c)) ) {
t.append(o).append(c);
if(this.exist(t.toString())) {
o = 0;
this.insert(t.toString());
} else {
if(this.insert(t.toString())) {
o = 0;
} else {
o = c;
}
}
t.delete(0, t.length());
} else {
this.insert(t.append(o).toString());
t.delete(0, t.length());
o = c;
}
} else {
o = c;
}
}
}
}
public boolean isNum(char c) {
boolean result = false;
String chars = "0123456789";
for(int i=0;i<chars.length();i++) {
if(chars.charAt(i) == c) {
result = true;
break;
}
}
return result;
}
public boolean exist(String t) {
boolean flag = false;
Object obj;
int k = 0;
obj = words.get(t.toString());
if(obj != null) {
k = (Integer) obj;
if(k > 1)flag = true;
} else {
flag = false;
}
return flag;
}
public boolean insert(String t) {
boolean flag = false;
Object obj;
int k = 0;
obj = result.get(t.toString());
if(obj != null) {
k = (Integer) obj;
if(k > 2)flag = true;
k += 1;
result.put(t.toString(), k);
} else {
result.put(t.toString(), 1);
flag = false;
}
return flag;
}
public boolean split(char c) {
boolean result = false;
String chars = " 《》,。-{}(()[];\":!?“”…、,.;!?\n\r";
for(int i=0;i<chars.length();i++) {
if(chars.charAt(i) == c) {
result = true;
break;
}
}
return result;
}
public HashMap load(String file) throws FileNotFoundException, IOException, ClassNotFoundException {
HashMap map = null;
ObjectInputStream in;
in = new ObjectInputStream(new FileInputStream(file));
map = (HashMap) in.readObject();
in.close();
return map;
}
public void save(HashMap map, String file) {
ObjectOutputStream out;
try {
out = new ObjectOutputStream(new FileOutputStream(file));
out.writeObject(map);
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void list(HashMap map) {
Iterator it = map.keySet().iterator();
while(it.hasNext()) {
String t = (String) it.next();
int k = (Integer) map.get(t);
System.out.println(t + " " + k);
}
}
}
分享到:
相关推荐
根据所提供的文件内容,该文档主要介绍了基于Matlab的生产系统瓶颈单元智能发掘方法(BIDM)。本方法的目的是为了优化生产系统的效率和产能,通过动态计算生产单元的产能,智能地识别和改善瓶颈单元,从而缩短生产...
这样的资源包对拥有9288T的用户来说是一份宝贵的资料,尤其是对于那些寻求设备优化和扩展功能的爱好者来说,它提供了进一步发掘设备潜力的可能性。在操作过程中,用户需要注意数据安全,遵循正确的方法,避免对设备...
这是一个基于SSM的微信阅读小程序,旨在为用户提供更加便捷和个性化的阅读体验。该小程序提供了丰富的书籍资源,用户可以在小程序内轻松浏览并选择自己感兴趣的书籍进行阅读。除了常规的阅读功能外,该小程序还支持...
本文探讨了面向对象程序设计(Java)课程教学过程中采用以产出为导向教学理念的可行性,阐明了基于OBE理念的面向对象程序设计(Java)课程教学改革基本思路,并对课程基于OBE教学理念的教学方法进行了深入探讨。...
"一种基于Matlab的生产系统瓶颈单元智能发掘方法.pdf"可能包含了更详细的步骤、案例研究和实际操作指南,包括如何构建数学模型,选择适当的优化算法,以及如何解读和应用结果。读者可以详细阅读此PDF文档,以深入...
"工业物联网中基于机器学习方法的预测技术.pdf" 本文概述了工业物联网中基于机器学习方法的预测技术,讨论了机器学习在工业智能系统预测技术中的应用。随着工业物联网技术的发展,机器学习方法将发挥着越来越重要的...
基于JavaScript的公益人优势发掘器设计源码是一款专门针对公益人士开发的软件工具,其核心功能是通过一系列编程语言和技术手段,帮助用户发现和提升个人在公益领域的优势。该软件项目采用了多种类型的文件进行构建,...
通过用户行为采集和行为数据分析,该研究不仅发掘了产品的痛点,还提出了一系列改进方案,为智能家居产品的用户体验设计研究提供了宝贵的参考。 关键词“用户体验”、“用户行为”、“智能家居产品”、“扫地机器人...
本文将重点探讨《基于SQL技术的频繁模式发掘》这一主题,旨在通过SQL技术对FP-Growth算法进行优化,以期提高频繁模式挖掘的效率和性能。 频繁模式挖掘是寻找数据集中频繁出现的项集的过程,支持度和置信度是衡量项...
目前检测软件缓冲区溢出漏洞仅局限于手工分析、二进制补丁比较及fuzzing技术等,这些技术要么对人工分析依赖程度高,要么盲目性太大,致使漏洞发掘效率极为低下。结合fuzzing技术、数据流动态分析技术以及异常自动...
本学位毕业论文——“基于微信小程序的Web工程师模拟面试系统”,旨在探讨如何利用微信小程序的优势来优化教育过程。首先,论文深入剖析了微信小程序的功能和特点,如离线运行、快速启动、易于分享等,这些特性使得...
基于数据挖掘技术的经济统计研究 一、数据挖掘技术概述 数据挖掘是一种从大量数据中识别出有价值信息的过程。在数据库中,这些数据往往包含不完整性和未经筛选加工的特性,需要通过数据挖掘技术进行有效筛选和处理...
本文讨论了基于微信平台的校园订餐小程序的设计与实现,详细介绍了该系统如何通过智能化和信息化手段,改变传统的校园订餐管理方式。该小程序主要包含多个管理模块,分别是首页、个人中心、用户管理、商家管理、餐厅...
代码的分享有助于推动算法的进一步研究与应用,鼓励更多的创新思路和改进方法的提出。 值得注意的是,尽管SSA-Levy算法在某些问题上表现优异,但每种优化算法都有其适用的场景和局限性。研究者应当根据具体问题的...
这是一款拼图工具箱小程序源码 小程序支持多种拼图制作生成 ...这款小程序安装方法还是挺简单的! 使用微信开发者工具打开该小程序源码,然后上传审核就可以了 这款小程序无需设置任何的合法域名
这是一款拼图工具箱小程序源码 小程序支持多种拼图制作生成 ...这款小程序安装方法还是挺简单的! 使用微信开发者工具打开该小程序源码,然后上传审核就可以了 这款小程序无需设置任何的合法域名
微信小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜...开发者在应用这一套源码时,可以充分发掘微信小程序的潜力,结合校园实际情况,不断优化和完善功能,满足用户需求。