增加了一定的自学习能力.
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);
}
}
}
分享到:
相关推荐
该项目是一款基于JavaScript的公益人优势发掘器设计源码,总计包含51个文件,涵盖18个JavaScript脚本文件、9个CSS样式文件、9个XML配置文件、2个Markdown文档、2个JSON数据文件、1个EditorConfig配置文件、1个环境...
根据所提供的文件内容,该文档主要介绍了基于Matlab的生产系统瓶颈单元智能发掘方法(BIDM)。本方法的目的是为了优化生产系统的效率和产能,通过动态计算生产单元的产能,智能地识别和改善瓶颈单元,从而缩短生产...
这是一个基于SSM的微信阅读小程序,旨在为用户提供更加便捷和个性化的阅读体验。该小程序提供了丰富的书籍资源,用户可以在小程序内轻松浏览并选择自己感兴趣的书籍进行阅读。除了常规的阅读功能外,该小程序还支持...
本文探讨了面向对象程序设计(Java)课程教学过程中采用以产出为导向教学理念的可行性,阐明了基于OBE理念的面向对象程序设计(Java)课程教学改革基本思路,并对课程基于OBE教学理念的教学方法进行了深入探讨。...
"一种基于Matlab的生产系统瓶颈单元智能发掘方法.pdf"可能包含了更详细的步骤、案例研究和实际操作指南,包括如何构建数学模型,选择适当的优化算法,以及如何解读和应用结果。读者可以详细阅读此PDF文档,以深入...
这样的资源包对拥有9288T的用户来说是一份宝贵的资料,尤其是对于那些寻求设备优化和扩展功能的爱好者来说,它提供了进一步发掘设备潜力的可能性。在操作过程中,用户需要注意数据安全,遵循正确的方法,避免对设备...
使用FileFuzz发掘文字处理软件漏洞3.6 文字处理型软件漏洞的危害与利用3.6.1 ShellCode与木马植入3.6.2 本地权限与系统命令3.6.3 邮件附件中的隐蔽杀手3.7 实战课之二:编写属于自己的发掘漏洞程序3.8 媒体播放软件...
"工业物联网中基于机器学习方法的预测技术.pdf" 本文概述了工业物联网中基于机器学习方法的预测技术,讨论了机器学习在工业智能系统预测技术中的应用。随着工业物联网技术的发展,机器学习方法将发挥着越来越重要的...
《基于SQL技术的频繁模式发掘》一文主要探讨了如何利用SQL技术改进频繁模式挖掘算法,特别是FP-Growth算法,以提高数据挖掘的效率和性能。频繁模式挖掘是关联规则学习的重要步骤,它旨在发现数据库中频繁出现的项集...
通过用户行为采集和行为数据分析,该研究不仅发掘了产品的痛点,还提出了一系列改进方案,为智能家居产品的用户体验设计研究提供了宝贵的参考。 关键词“用户体验”、“用户行为”、“智能家居产品”、“扫地机器人...
目前检测软件缓冲区溢出漏洞仅局限于手工分析、二进制补丁比较及fuzzing技术等,这些技术要么对人工分析依赖程度高,要么盲目性太大,致使漏洞发掘效率极为低下。结合fuzzing技术、数据流动态分析技术以及异常自动...
本学位毕业论文——“基于微信小程序的Web工程师模拟面试系统”,旨在探讨如何利用微信小程序的优势来优化教育过程。首先,论文深入剖析了微信小程序的功能和特点,如离线运行、快速启动、易于分享等,这些特性使得...
基于数据挖掘技术的经济统计研究 一、数据挖掘技术概述 数据挖掘是一种从大量数据中识别出有价值信息的过程。在数据库中,这些数据往往包含不完整性和未经筛选加工的特性,需要通过数据挖掘技术进行有效筛选和处理...
这是一款拼图工具箱小程序源码 小程序支持多种拼图制作生成 ...这款小程序安装方法还是挺简单的! 使用微信开发者工具打开该小程序源码,然后上传审核就可以了 这款小程序无需设置任何的合法域名
这是一款拼图工具箱小程序源码 小程序支持多种拼图制作生成 ...这款小程序安装方法还是挺简单的! 使用微信开发者工具打开该小程序源码,然后上传审核就可以了 这款小程序无需设置任何的合法域名