论坛首页 Java企业应用论坛

告诉你什么是优雅的代码(3)------山寨拼音分词

浏览 8331 次
该帖已经被评为隐藏帖
作者 正文
   发表时间:2010-09-06   最后修改:2010-09-19
早上看见一帖《拼音语法检查》,感觉比较啰嗦,也比较低效。于是自己也写了一个,在此拿出来让大家笑一下。鉴于此帖可能很快被隐藏,要研究代码的就尽快了。不要跟我说没有处理不存在的词会报异常,这些细节就留给懒惰的你了。

//你来迟了。
	
	public static void main(String[] args) {
		PinyingTree tree = new PinyingTree();
		tree.init();
		tree.study("zhong");
		tree.study("guo");
		tree.study("ren");
		tree.study("dou");
		tree.study("shi");
		tree.study("huo");
		tree.study("lei");
		tree.study("feng");
		tree.study("chen");
		tree.study("gong");
		tree.study("hen");
		tree.study("niu");
		tree.study("bi");
		tree.study("mei");
		tree.study("you");
		tree.study("shen");
		tree.study("me");
		tree.study("bu");
		tree.study("ke");
		tree.study("neng");
		tree.study("zhi");
		tree.study("yao");
		tree.study("ni");
		tree.study("qu");
		tree.study("zuo");
		tree.study("de");
		
		List<String> result = tree.parse("zhongguorenhenniubizhiyaoniquzuomeiyoushenmeshibukenengde");
		for (String match : result) {
			System.out.print(match + " ");
		}
	}
	
}







运行结果:
zhong guo ren hen niu bi zhi yao ni qu zuo mei you shen me shi bu ke neng de 
   发表时间:2010-09-06  
自恋。。。
1 请登录后投票
   发表时间:2010-09-06  
啥意思,没看明白呢。下来看看。
0 请登录后投票
   发表时间:2010-09-06  
分词~~!
0 请登录后投票
   发表时间:2010-09-07  
拼音分词的话,一个正则就可以了,以前写过,太晚了,明天找找看
0 请登录后投票
   发表时间:2010-09-07   最后修改:2010-09-07
正则表达式,不就是
(zhong|guo|ren|min|hen|li|hai)*

把所有可能的组合都作为一个候选,组织成为一个正则表达式,然后进行匹配即可。

可以肯定的说,这样写的代码如果论优雅,那么作者的代码只能算是”老爷破车“了,估计代码量还不到作者的1/5。
0 请登录后投票
   发表时间:2010-09-07   最后修改:2010-09-07
哪里体现出代码优雅?
希望看出的朋友指点下。
0 请登录后投票
   发表时间:2010-09-07  
优雅的没有注释,不错
0 请登录后投票
   发表时间:2010-09-07   最后修改:2010-09-07
假设字典中加入xian,xi,an
xian,你是分成xi'an 还是xian呢。根本没考虑这种情况吧
0 请登录后投票
   发表时间:2010-09-07  
leon_a 写道
假设字典中加入xian,xi,an
xian,你是分成xi'an 还是xian呢。根本没考虑这种情况吧


目前的算法是分成 xian.  节点还有个end属性未用,可用来扩展 。
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics