存档

‘算法’ 分类的存档

PHP 二进制小端转大端

2012年5月13日 2 条评论
	function LbinToGbin($binarydata) {
		$hex = bin2hex($binarydata);

		$strlen = strlen($hex);
		$hex_arr = array();
		$j = 0;
		for($i=0; $i<$strlen; $i++){
			if($i%2 == 0){
				$hex_array[$j] = $hex[$i];
			}else{
				$hex_array[$j] .= $hex[$i];
				$j++;
			}
		}
		$hex_array = array_reverse($hex_array);
		foreach($hex_array as $v){
			$newhex .= $v;
		}

		$bin = "";
		$i = 0;
		do {
			$bin .= chr(hexdec($newhex{$i}.$newhex{($i + 1)}));
			$i += 2;
		} while ($i < strlen($newhex));
		return $bin;
	}
分类: 算法 标签:

各家SVM工具 无排名

2011年12月14日 没有评论

只试过SvmLight 与 LibSvm,好像也是主流,其它性能不知如何。

史称 作者 机构 语言 环境 多类 回归 说明
BSVM Chih-Wei Hsu and Chih-Jen Lin National Taiwan University C++ Win Yes Yes
Equbits Foresight Equbits LLC Equbits LLC SDK Win ??? Yes Commercial. Contact Equibits LLC for details
Gini-SVM Shantanu Chakrabartty Johns Hopkins University C++ No Yes Yes Handles non positive definite kernels
HeroSvm Jianxiong Dong Concordia University C++ Win Yes No Optimized for Pentium 4
LEARNSC Vojislav Kecman Matlab p-files N/A Yes Yes Must pay for source!
LIBSVM Chih-Chung Chang, Chih-Jen Lin National Taiwan University C++, Java, Python, R, MATLAB, Perl, Ruby Win/*nix Yes Yes Graphic interface available
LS-SVMlab Kristiaan Pelckmans, Johan Suykens Katholieke Universiteit Leuven Matlab Win/*nix Yes Yes Comes with platform-specific MEX files
Matlab SVM Toolbox S. R. Gunn University of Southampton Matlab N/A No Yes Includes a simple GUI
mySVM Stefan Ruping Universitat Dortmund C++ Win/*nix No Yes
OSU Junshui Ma, Yi Zhao, and Stanley Ahalt Ohio State University Matlab N/A Yes Yes Matlab interface to LIBSVM
Parallel GPDT T. Serafini, G. Zanghirati, L. Zanni Universita di Ferrara C++ No No No Designed for parallel systems
pcSVM Procoders.net C No No
RVMs Mike Tipping MSR Cambridge Matlab Yes Yes
SpiderSVM Jason Weston, Andre Elisseeff , Gokhan BakIr , Fabian Sinz Max Planck Institute for Biological Cybernetics Matlab N/A Yes Yes Part of the Spider machine learning library
Statistical Pattern Recognition Toolbox for MATLAB Vojtech Franc and Vaclav Hlavac Czech Technical University Prague Matlab/C No Yes No Good online documentation. Everything I′ve tried has worked 字串9well. Lots of stuff besides SVMs.
SVMdark Martin Sewell University College London C Win No Yes
SvmFu Ryan Rifkin MIT C++ No No Must be compiled with g++
SVMLight Thorsten Joachims Cornell University C Win/*nix No Yes
SVMsequel Hal Daume III University of Southern California OCaml No Yes No “Very fast and handles enormous datasets nicely”
SVMtorch Ronan Collobert and Samy Bengio IDIAP C++ No ? Yes
SVM Toolbox Gavin Cawley University of East Anglia Norwich Matlab/C++ No Yes No Beta version
WinSVM Martin Sewell University College London C++ Win No Yes
分类: 算法 标签: , ,

哈工大语言技术相关

2011年11月22日 没有评论

哈工大社会计算与信息检索研究中心的研究方向包括文本检索、文本挖掘、语言分析、跨语言检索五个方面,研究中心以认知心理学和机器学习为理论,以语言分析为基础研究,以信息抽取、文本检索、跨语言/媒体检索为应用研究,以精准搜索与挖掘系统为应用系统平台。下面是一些它们非常不错的产品。

系统演示

语言技术平台(LTP, Language Technology Platform)

文本挖掘系统(TMS, Text Mining System)

分类: 算法 标签:

改进的同义词替换算法

2011年11月20日 没有评论

一种改进的基于同义词替换的中文文本信息隐藏方法

作者:甘灿,孙星明,刘玉玲,向凌云

(湖南大学 计算机与通信学院,湖南 长沙410082)

1 基于同义词替换的隐藏算法

基于同义词替换的方法是目前中文自然语言信息隐藏方法中使用最为广泛的方法。在同义词替换中,通过选择载体文本中在某一同义词库中出现的词,并根据一定的编码方式对这些词进行同义词替换,以此来嵌入隐藏信息。这里所谓的同义词,一般定义为“同一种语言中,在一些或全部的义项中具有相同或基本相同的意思的两个或多个词”。若设载体文本为C,隐秘信息为M,隐藏信息后的文本为S,同义词库为D,则有嵌入函数e()和提取函数d(),使得:

e(C,M,D)=S, d(S,D)=M,并且C和S在语义上保持不变。

阅读全文…

分类: 算法 标签: ,

分词系统汇总

2011年11月20日 没有评论

分词的原理

1、 英文分词的原理

基本的处理流程是:输入文本、词汇分割、词汇过滤(去除停留词)、词干提取(形态还原)、大写转为小写、结果输出。

2、 中文分词原理

中文分词比较复杂,并没有英文分词那么简单。这主要是因为中文的词与词之间并不像英文中那样用空格来隔开。

主要的方法有三种:基于词典匹配的分词方法、基于语义理解的分词、基于词频统计的分词。

阅读全文…

分类: 算法 标签: ,

字符串相似/差异度算法(Levenshtein Distance)

2011年9月9日 1 条评论

Levenshtein Distance算法(中文翻译:编辑距离算法) 由俄国科学家Levenshtein在1965年提出。

编辑距离,又称Levenshtein距离(也叫做Edit Distance),是指两个字串之间,由一个转成另一个所需的最少编辑操作次数。许可的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。

例如将kitten一字转成sitting:
sitten (k→s)
sittin (e→i)
sitting (→g)

阅读全文…

分类: 算法 标签:

提取html闭合标签

2011年9月1日 没有评论

思路:在html代码符合规范前提下,分别设置要提取的起始标签和结束标签两个游标,从起始标签s位置顺序查找,直到起始游标大于结束游标,此时闭合标签范围在s到结束游标内。

实现:

$s_tag = “<{$tag}”;
$e_tag = “</{$tag}>”;
$s_next_pos = $e_next_pos = $s_pos = $e_pos = 0;
$loop = 50;
while(1){
$s_pos = strpos($str, $s_tag, $s_next_pos);
$e_pos = strpos($str, $e_tag, $e_next_pos);
$s_next_pos = $s_pos + 1;
$e_next_pos = $e_pos + 1;

if($s_pos > $e_pos)
break;

if($loop– == 0) break;
}
$result = substr($str, 0, $e_pos);

分类: 算法 标签: