当前位置:首页 » 操作系统 » wmd算法

wmd算法

发布时间: 2022-10-03 01:33:55

‘壹’ 全面归纳距离和相似度计算方法

距离(distance,差异程度)、相似度(similarity,相似程度)方法可以看作是以某种的距离函数计算元素间的距离,这些方法作为机器学习的基础概念,广泛应用于如:Kmeans聚类、协同过滤推荐算法、相似度算法、MSE损失函数等等。本文对常用的距离计算方法进行归纳以及解析,分为以下几类展开:

对于点x=(x1,x2...xn) 与点y=(y1,y2...yn) , 闵氏距离可以用下式表示:

闵氏距离是对多个距离度量公式的概括性的表述,p=1退化为曼哈顿距离;p=2退化为欧氏距离;切比雪夫距离是闵氏距离取极限的形式。

曼哈顿距离 公式:

欧几里得距离公式:

如下图蓝线的距离即是曼哈顿距离(想象你在曼哈顿要从一个十字路口开车到另外一个十字路口实际驾驶距离就是这个“曼哈顿距离”,此即曼哈顿距离名称的来源,也称为城市街区距离),红线为欧几里得距离:

切比雪夫距离起源于国际象棋中国王的走法,国际象棋中国王每次只能往周围的8格中走一步,那么如果要从棋盘中A格(x1,y1)走到B格(x2,y2)最少需要走几步?你会发现最少步数总是max(|x2-x1|,|y2-y1|)步。有一种类似的一种距离度量方法叫切比雪夫距离。

切比雪夫距离就是当p趋向于无穷大时的闵氏距离:

距离函数并不一定是距离度量,当距离函数要作为距离度量,需要满足:

由此可见,闵氏距离可以作为距离度量,而大部分的相似度并不能作为距离度量。

闵氏距离也是Lp范数(如p==2为常用L2范数正则化)的一般化定义。
下图给出了一个Lp球( ||X||p = 1 )的形状随着P的减少的可视化图:

距离度量随着空间的维度d的不断增加,计算量复杂也逐增,另外在高维空间下,在维度越高的情况下,任意样本之间的距离越趋于相等(样本间最大与最小欧氏距离之间的相对差距就趋近于0),也就是维度灾难的问题,如下式结论:

对于维度灾难的问题,常用的有PCA方法进行降维计算。

假设各样本有年龄,工资两个变量,计算欧氏距离(p=2)的时候,(年龄1-年龄2)² 的值要远小于(工资1-工资2)² ,这意味着在不使用特征缩放的情况下,距离会被工资变量(大的数值)主导, 特别当p越大,单一维度的差值对整体的影响就越大。因此,我们需要使用特征缩放来将全部的数值统一到一个量级上来解决此问题。基本的解决方法可以对数据进行“标准化”和“归一化”。

另外可以使用马氏距离(协方差距离),与欧式距离不同其考虑到各种特性之间的联系是(量纲)尺度无关 (Scale Invariant) 的,可以排除变量之间的相关性的干扰,缺点是夸大了变化微小的变量的作用。马氏距离定义为:

马氏距离原理是使用矩阵对两两向量进行投影后,再通过常规的欧几里得距离度量两对象间的距离。当协方差矩阵为单位矩阵,马氏距离就简化为欧氏距离;如果协方差矩阵为对角阵,其也可称为正规化的欧氏距离。

根据向量x,y的点积公式:

我们可以利用向量间夹角的cos值作为向量相似度[1]:

余弦相似度的取值范围为:-1~1,1 表示两者完全正相关,-1 表示两者完全负相关,0 表示两者之间独立。余弦相似度与向量的长度无关,只与向量的方向有关,但余弦相似度会受到向量平移的影响(上式如果将 x 平移到 x+1, 余弦值就会改变)。

另外,归一化后计算欧氏距离,等价于余弦值:两个向量x,y, 夹角为A,欧氏距离D=(x-y)^2 = x 2+y 2-2|x||y|cosA = 2-2cosA

协方差是衡量多维数据集中,变量之间相关性的统计量。如下公式X,Y的协方差即是,X减去其均值 乘以 Y减去其均值,所得每一组数值的期望(平均值)。

如果两个变量之间的协方差为正值,则这两个变量之间存在正相关,若为负值,则为负相关。

皮尔逊相关系数数值范围也是[-1,1]。皮尔逊相关系数可看作是在余弦相似度或协方差基础上做了优化(变量的协方差除以标准差)。它消除每个分量标准不同(分数膨胀)的影响,具有平移不变性和尺度不变性。

卡方检验X2,主要是比较两个分类变量的关联性、独立性分析。如下公式,A代表实际频数;E代表期望频数:

Levenshtein 距离是 编辑距离 (Editor Distance) 的一种,指两个字串之间,由一个转成另一个所需的最少编辑操作次数。允许的编辑操作包括将一个字符替换成另一个字符,插入一个字符,删除一个字符。
像hallo与hello两个字符串编辑距离就是1,我们通过替换”a“ 为 ”e“,就可以完成转换。

汉明距离为两个等长字符串对应位置的不同字符的个数,也就是将一个字符串变换成另外一个字符串所需要替换的字符个数。例如:1011101 与 1001001 之间的汉明距离是 2,“toned” 与 “roses” 之间的汉明距离是 3

另外的,对于字符串距离来说,不同字符所占的份量是不一样的。比如”我乐了“ 与【“我怒了”,”我乐了啊” 】的Levenshtein 距离都是1,但其实两者差异还是很大的,因为像“啊”这种语气词的重要性明显不如“乐”,考虑字符(特征)权重的相似度方法有:TF-IDF、BM25、WMD算法。

Jaccard 取值范围为0~1,0 表示两个集合没有重合,1 表示两个集合完全重合。

但Dice不满足距离函数的三角不等式,不是一个合适的距离度量。

基础地介绍下信息熵,用来衡量一个随机变量的不确定性程度。对于一个随机变量 X,其概率分布为:

互信息用于衡量两个变量之间的关联程度,衡量了知道这两个变量其中一个,对另一个不确定度减少的程度。公式为:

如下图,条件熵表示已知随机变量X的情况下,随机变量Y的信息熵,因此互信息实际上也代表了已知随机变量X的情况下,随机变量Y的(信息熵)不确定性的减少程度。

JS 散度解决了 KL 散度不对称的问题,定义为:

群体稳定性指标(Population Stability Index,PSI), 可以看做是解决KL散度非对称性的一个对称性度量指标,用于度量分布之间的差异(常用于风控领域的评估模型预测的稳定性)。

psi与JS散度的形式是非常类似的,如下公式:

PSI的含义等同P与Q,Q与P之间的KL散度之和。

DTW 距离用于衡量两个序列之间的相似性,适用于不同长度、不同节奏的时间序列。DTW采用了动态规划DP(dynamic programming)的方法来进行时间规整的计算,通过自动warping扭曲 时间序列(即在时间轴上进行局部的缩放),使得两个序列的形态尽可能的一致,得到最大可能的相似度。(具体可参考[5])

图结构间的相似度计算,有图同构、最大共同子图、图编辑距离、Graph Kernel 、图嵌入计算距离等方法(具体可参考[4][6])。

度量学习的对象通常是样本特征向量的距离,度量学习的关键在于如何有效的度量样本间的距离,目的是通过训练和学习,减小或限制同类样本之间的距离,同时增大不同类别样本之间的距离,简单归类如下[2]:

最后,附上常用的距离和相似度度量方法[3]:

‘贰’ base64_decode 解密

解密出来后,还是有点乱,不过人可读了,你可以自己处理一下。

php">$IIIIIIIlII11='sort';
$IIIIIIIIIlll='array_unique';
$IIIIIIIlIII1='fclose';
$IIIIIIIlIIIl='fread';
$IIIIIIII1111='fseek';
$IIIIIIII111l='filesize';
$IIIIIIII111I='sprintf';
$IIIIIIII11lI='fopen';
$IIIIIIII11II='trim';
$IIIIIIII1l1I='shuffle';
$IIIIIIII1llI='array_merge';
$IIIIIIIIIl11='count';
$IIIIIIIIII1l='file';
$IIIIIIII1II1='closedir';
$IIIIIIII1IIl='readdir';
$IIIIIIIIl111='opendir';
$IIIIIIIIll1l='strtoupper';
$IIIIIIIIll1I='base_convert';
$IIIIIIIIllII='curl_close';
$IIIIIIIIlI1l='curl_exec';
$IIIIIIIIlIl1='curl_setopt';
$IIIIIIIIlIll='curl_init';
$OO0OO00O0='strtr';
$OO0OO000O='fread';
$O000O0O00=3;
$OO0OO0000='fopen';
$OOO0000O0='base64_decode';
$O0O0000O0='base64_decode';
$OO00O0000=9636;
$OOO000000="th6sbehqla4co_sadfpnr";

functionIIIIIIIIlIIl($IIIIIIIIlII1)
{
$IIIIIIIIlIlI=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWxs')]($IIIIIIIIlII1);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWwx')]($IIIIIIIIlIlI,CURLOPT_RETURNTRANSFER,true);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWwx')]($IIIIIIIIlIlI,CURLOPT_TIMEOUT,60);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSWwx')]($IIIIIIIIlIlI,CURLOPT_FOLLOWLOCATION,true);
$IIIIIIIIlI1I=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSTFs')]($IIIIIIIIlIlI);
$IIIIIIIIlI11=0;
while($IIIIIIIIlI1I===false&&$IIIIIIIIlI11<3)
{
$IIIIIIIIlI1I=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsSTFs')]($IIIIIIIIlIlI);
$IIIIIIIIlI11++;
}
return$IIIIIIIIlI1I;
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsbElJ')]($IIIIIIIIllIl);
}
functionIIIIIIIIllI1($IIIIIIIIlllI,$IIIIIIIIllll=0){
$IIIIIIIIlll1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsbDFJ')](md5(microtime().$_SERVER[$GLOBALS['OOO0000O0']('RE9DVU1FTlRfUk9PVA==')]),16,$IIIIIIIIllll?10:35);
$IIIIIIIIlll1=$IIIIIIIIllll?(str_replace($GLOBALS['OOO0000O0']('MA=='),$GLOBALS['OOO0000O0'](''),$IIIIIIIIlll1).$GLOBALS['OOO0000O0']('MDEyMzQwNTY3ODkw')):($IIIIIIIIlll1.$GLOBALS['OOO0000O0']('MDk=').$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsbDFs')]($IIIIIIIIlll1));
$IIIIIIIIll11=$GLOBALS['OOO0000O0']('');
$IIIIIIIIl1II=strlen($IIIIIIIIlll1)-1;
for($IIIIIIIIIlII=0;$IIIIIIIIIlII<$IIIIIIIIlllI;$IIIIIIIIIlII++){
$IIIIIIIIll11.=$IIIIIIIIlll1{mt_rand(0,$IIIIIIIIl1II)};
}
return$IIIIIIIIll11;
}
functionIIIIIIIIl1Il($IIIIIIIIlllI=4){
$IIIIIIIIl1I1=$GLOBALS['OOO0000O0']('MDEyMzQ1Njc4OQ==');
$IIIIIIIIl1lI="";
for($IIIIIIIIIlII=0;$IIIIIIIIIlII<$IIIIIIIIlllI;$IIIIIIIIIlII++)
{
$IIIIIIIIl1lI.=$IIIIIIIIl1I1[mt_rand(0,strlen($IIIIIIIIl1I1)-1)];
}
return$IIIIIIIIl1lI;
}
functionIIIIIIIIl1ll()
{
$IIIIIIIIl1l1=array();
$IIIIIIIIl11I="links/";
$IIIIIIIIl11l=@$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsMTEx')]($IIIIIIIIl11I)ordie("Cannotopen".$IIIIIIIIl11I);
while($IIIIIIII1III=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUls')]($IIIIIIIIl11l))
{
if($IIIIIIII1III!="."&&$IIIIIIII1III!="..")
{
$IIIIIIIIl1l1[]=$IIIIIIIIl11I.$IIIIIIII1III;
}
}
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUkx')]($IIIIIIIIl11l);
return$IIIIIIIIl1l1;
}
functionIIIIIIII1IlI($IIIIIIII1Ill,$IIIIIIII1Il1)
{
$IIIIIIII1III=$IIIIIIII1Ill[mt_rand(0,$IIIIIIII1Il1-1)];
$IIIIIIII1I1I=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFs')]($IIIIIIII1III);
$IIIIIIII1I1l=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($IIIIIIII1I1I);
$IIIIIIIIIlIl=mt_rand(0,$IIIIIIII1I1l-1);
$IIIIIIII1I11=$IIIIIIII1I1I[$IIIIIIIIIlIl];
return$IIIIIIII1I11;
}
functionIIIIIIII1lII($IIIIIIIIl1l1)
{
$IIIIIIII1lIl=array();
foreach($IIIIIIIIl1l1as$IIIIIIII1III)
{
$IIIIIIII1lI1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFs')]($IIIIIIII1III,FILE_IGNORE_NEW_LINES);
$IIIIIIII1lIl=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxbGxJ')]($IIIIIIII1lIl,$IIIIIIII1lI1);
}
return$IIIIIIII1lIl;
}
functionIIIIIIII1lll()
{
$IIIIIIIIl1l1=array();
$IIIIIIIIl11I="data/";
$IIIIIIIIl11l=@$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsMTEx')]($IIIIIIIIl11I)ordie("Cannotopen".$IIIIIIIIl11I);
while($IIIIIIII1III=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUls')]($IIIIIIIIl11l))
{
if($IIIIIIII1III!="."&&$IIIIIIII1III!="..")
{
$IIIIIIIIl1l1[]=$IIIIIIIIl11I.$IIIIIIII1III;
}
}
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUkx')]($IIIIIIIIl11l);
return$IIIIIIIIl1l1;
}
functionIIIIIIII1ll1()
{
$IIIIIIII1Ill=IIIIIIII1lll();
$IIIIIIII1Il1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($IIIIIIII1Ill);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxbDFJ')]($IIIIIIII1Ill);
$IIIIIIII1III=$IIIIIIII1Ill[mt_rand(0,$IIIIIIII1Il1-1)];
$IIIIIIII1I1I=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFs')]($IIIIIIII1III);
$IIIIIIII1Il1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($IIIIIIII1I1I)-1;
$IIIIIIIIIlIl=mt_rand(0,$IIIIIIII1Il1);
$IIIIIIII1I11="";
$IIIIIIII1l1l=0;
while(strlen($IIIIIIII1I11)<100)
{
$IIIIIIII1l1l++;
$IIIIIIII1l11=$IIIIIIII1I1I[$IIIIIIIIIlIl+$IIIIIIII1l1l];
if($GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxMUlJ')]($IIIIIIII1l11)=="")
{
continue;
}
else
{
$IIIIIIII1I11.=$IIIIIIII1l11;
}
}
$IIIIIIII1I11=str_replace("(","",$IIIIIIII1I11);
$IIIIIIII1I11=str_replace(")","",$IIIIIIII1I11);
$IIIIIIII1I11=str_replace("'","",$IIIIIIII1I11);
$IIIIIIII1I11=str_replace(""","",$IIIIIIII1I11);
$IIIIIIII1I11=str_replace("","",$IIIIIIII1I11);
$IIIIIIII1I11=str_replace(array(" "," "),"",$IIIIIIII1I11);
return$IIIIIIII1I11;
}
functionIIIIIIII11Il()
{
$IIIIIIII1Ill=IIIIIIII1lll();
$IIIIIIII1Il1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbDEx')]($IIIIIIII1Ill);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxbDFJ')]($IIIIIIII1Ill);
$IIIIIIII1III=$IIIIIIII1Ill[mt_rand(0,$IIIIIIII1Il1-1)];
$IIIIIIII11I1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxMWxJ')]($IIIIIIII1III,"r");
$IIIIIIII11ll=100;
$IIIIIIII11l1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxMTFJ')]("%u",$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxMTFs')]($IIIIIIII1III));
$IIIIIIIIIlIl=mt_rand(0,$IIIIIIII11l1-$IIIIIIII11ll);
if($IIIIIIIIIlIl%2==1)
{$IIIIIIIIIlIl++;
}
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxMTEx')]($IIIIIIII11I1,$IIIIIIIIIlIl);
$IIIIIIIlIIII=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSWxJSUls')]($IIIIIIII11I1,$IIIIIIII11ll);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSWxJSUkx')]($IIIIIIII11I1);
error_reporting(0);
error_reporting(E_ALL);
return$IIIIIIIlIIII;
}
functionIIIIIIIlIIlI($IIIIIIIlIIll,$IIIIIIIlIIl1,$IIIIIIIlII1I)
{
$IIIIIIIlII1l=mb_strlen($IIIIIIIlII1I,"utf-8");
for($IIIIIIIIIlII=0;$IIIIIIIIIlII<$IIIIIIIlIIll;$IIIIIIIIIlII++)
{
$IIIIIIII1lI1[]=mt_rand(0,$IIIIIIIlII1l);
}
$IIIIIIII1lI1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJbGxs')]($IIIIIIII1lI1);
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSWxJSTEx')]($IIIIIIII1lI1);
$IIIIIIIIIlII=0;
$IIIIIIIlIlII="";
foreach($IIIIIIII1lI1as$IIIIIIIlIlIl)
{
$IIIIIIIlIlII.=mb_substr($IIIIIIIlII1I,$IIIIIIIIIlII,$IIIIIIIlIlIl-$IIIIIIIIIlII,"utf-8").$IIIIIIIlIIl1;
$IIIIIIIIIlII=$IIIIIIIlIlIl;
}
$IIIIIIIlIlII.=mb_substr($IIIIIIIlII1I,$IIIIIIIIIlII,$IIIIIIIlII1l-$IIIIIIIIIlII,"utf-8");
return$IIIIIIIlIlII;
}
functionIIIIIIIlIlI1()
{
$IIIIIIIII1Il=array();
$IIIIIIIIl1l1=IIIIIIIlIllI();
foreach($IIIIIIIIl1l1as$IIIIIIII1III)
{
$IIIIIIII1lI1=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlJSTFs')]($IIIIIIII1III);
$IIIIIIIII1Il=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxbGxJ')]($IIIIIIIII1Il,$IIIIIIII1lI1);
}
return$IIIIIIIII1Il;
}
functionIIIIIIIlIllI()
{
$IIIIIIIIl1l1=array();
$IIIIIIIIl11I="keywords/";
$IIIIIIIIl11l=@$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUlsMTEx')]($IIIIIIIIl11I)ordie("Cannotopen".$IIIIIIIIl11I);
while($IIIIIIII1III=$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUls')]($IIIIIIIIl11l))
{
if($IIIIIIII1III!="."&&$IIIIIIII1III!="..")
{
$IIIIIIIIl1l1[]=$IIIIIIIIl11I.$IIIIIIII1III;
}
}
$GLOBALS[$GLOBALS['OOO0000O0']('SUlJSUlJSUkxSUkx')]($IIIIIIIIl11l);
return$IIIIIIIIl1l1;
}

‘叁’ 询问一点关于视频识别技术方面的资料

简介
之软监控报警系统是一套先进的防盗报警系统,它利用摄像头等视频捕获设备,采用先进图像识别技术,对现场进行监测,当发现异常情况时,可以发出警报声吓跑入侵者,同时采用图片或视频的方式记录现场,并通过多种方式(Email、电话)通知主人, 而且可以通过网络或手机进行远程视频或图片查看。

软件特点:
1.基本支持所有的摄像头;同时支持WMD和VFW接口的视频捕获设备.
2.采用先进图像识别技术,能够灵敏发觉入室盗窃者;
3.报警时通过多种方式通知主人,如:Email,电话等;
4.支持设置允许报警的时间段,让程序只在一定时间段内进行报警检测;
5.支持设置运动检测区域,支持运动检测灵敏度调节;
6.多种录像方式: 全实时,预约录像,报警时录像;
7.支持循环录像,允许设置循环日期,并且在磁盘空间不够时,自动删除旧记录;
8.支持OSD,在录像资料上显示录像日期时间;
9.集中对历史录像和报警记录进行检索,管理;
10.附加手动录像,截图工具,方便拍照,录像;
11.支持网页浏览器,客户端程序远程查看现场和报警历史记录;
12.远程监控支持声音监听;
13.支持摄像头的热插拔;
14.支持监控端隐藏,让监控端在不知不觉中运行;
15.能够在系统启动后自动运行,并进入工作状态.支持自动拨号上网;
16.自动检测网络类型,支持各种网络类型和带宽;
17.支持手机(Wap)查看现场和报警历史记录;
18.界面美观,支持换肤;

系统需求:
Microsoft Windows 98, Me, NT 4。01, 2000, XP 或者以后的版本
Microsoft DirectX (并没有版本要求,不过我们建议您安装最新版本的DirectX)
500 MHz CPU
128 MB RAM
20 MB 硬盘空间用于安装软件

‘肆’ 如何在excel里计算土壤团聚体gmd

把已知数据输入按母个参数输入到一个单元格中,要求的结果按wmd和gmd的计算公式分别在不同的单元格中输入=后一个个输入各参数,系数按公式给定的输入,参数直接点已输入数据的对应单元格。×用*,÷用/,括号什么的和公式一样。

‘伍’ 关于单片机做电子钟的问题

做电子时钟比较简单,Proteus里面可以仿真,建议先到里面仿真,仿真成功后再买元件来自己焊接,仿真时可以下一份电路图看看,如果感觉比较难的话,最好下一个写好的程序和仿真图看看。

仿真成功后,就要开始购买元件,需要元件大概如下,单片机最小系统(包括51 单片机芯片和插座,晶振,此片电容等),还有LCD1602,和一些基本的实验东西,如万用板,连接线,电源,电阻,电容等

焊接电路板,调试电路,这一步比较重要哦,

希望你能成功。。。。。。。。。。。。

‘陆’ 《全唐诗》文本分析

对于现代汉语的分词,开源/免费的解决方案或工具很多,开源的解决方案如Jieba、HanLp、StanfordNLP和IKAnalyzer等,“傻瓜式”的免费操作工具的也有 新浪微舆情 的 文本挖掘 工具 ,如果直接采用这些现代汉语分词工具对古诗词进行分词,结果会是这样的:

然而,对于古汉语(文言文),尤其是诗词的分词处理可没有这么简单,因为单字词占古汉语词汇统计信息的80%以上,再加上古汉语微言大义,字字千钧,所以针对现代汉语的分词技术往往不适用于它。鉴于此种情况,笔者采取的是 逐字切分 的处理方式,同时去掉一些常见的 虚词 ,如“之”、“乎”、“者”、“也”。分词和去停用词处理如下所示:

经过文本预处理后,就可以进行文本挖掘中最常规的分析---字频统计,看看《全唐诗》中出现最多的字有哪些。

                                                                                                        全局高频字

首先,让我们来看看去掉这些虚词之后的全局高频字有哪些,笔者这里展示的是TOP148。“人”字排行第一,这体现了《说文解字》里所讲的“人,天地之性最贵者也”,说明唐诗很好的秉承了“以人为本”的中华文化。而后续的“山”、“风”、“月”、“日”、“天”、“云”、“春”等都是在写景的诗句里经常出现的 意象 。

                            典型意象分析

所谓“ 意象 ”,就是客观物象经过创作主体独特的情感活动而创造出来的一种艺术形象。简单地说,意象就是寓“意”之“象”,就是用来寄托主观情思的客观物象。在比较文学中,意象的名词解释是---所谓“意象”简单说来,可以说就是主观的“意”和客观的“象”的结合,也就是融入诗人思想感情的“ 物象 ”,是赋有某种特殊含义和文学意味的具体形象。简单地说就是借物抒情。

比如,“月”这个古诗词里常见的意象,就有如下内涵:

表达思乡、思亲念友之情,暗寓羁旅情怀,寂寞孤独之感;

历史的见证今昔沧桑感;

冷寂、凄清的感觉;

清新感。

笔者在这里挑选的意象是关于季节和颜色的。

    物转星移几度秋---《全唐诗》中的季节

统计“春”、“夏/暑”、“秋”、“冬”这4个字在《全唐诗》中出现的频次,“春”字排行榜首,“秋”字列第2位,“夏”和“冬”出现的频次则要少1个量级,在唐诗里,伤春、惜春是常见的春诗题材,代表性的作品有朱淑真《赏春》、杜甫《丽春》、韩愈《春雪》、张若虚《春江花月夜》等。也难怪,在商代和西周前期,一年只分为春秋二时,后世也常以春秋作为一年的代称,约定俗成,由来已久,这两个字的使用频率很高也就不足为奇了。

    万紫千红一片绿---《全唐诗》中的色彩

笔者在这里找了51个古语中常用的颜色的单字(注意是古汉语语境中的颜色称谓),其中以 红色系 (红、丹、朱、赤、绛等)、 黑色系 (暗、玄、乌、冥、墨等)、 绿色系 (绿、碧、翠、苍等)及 白色系 (白、素、皎、皓等)为主,这些颜色及其对应的字频如下表所示:

这里面“白”字的字频最高,本意是“日出与日落之间的天色”,笔者常见的有“白发”、“白云”、“白雪”,常渲染出一种韶华易逝、悲凉的气氛,名句如“白头搔更短,浑欲不胜簪”、“白雪却嫌春色晚,故穿庭树作飞花”、“君不见,高堂明镜悲白发,朝如青丝暮成雪”、 “白云一片去悠悠,青枫浦上不胜愁”。

将上述主要的色系综合统计一下,得到下面的环形占比图:

其中,绿色系的占比居多,“绿”“碧”“苍”“翠”等大都用于写景,“绿树”、“碧水”、“苍松”、“翠柳”等,这些高频字从侧面反映出全唐诗中描写景物、寄情山水的诗句占比很大,透露出平静、清新和闲适之感。

刚才笔者分析的是单字,而汉语的语素大都是由单音节(字)表示,即所谓的“一音一义”。当这些单音节语素,能够独立应用的话,就是词。古汉语中存在着许多单音节词,这也就是文言文翻译中要经常把一个字翻译成现代汉语中的双音节词的原因。

然而,有些单音节语素,不能够独立使用,就不是词,只能够是语素,如“第-“、”踌-“、”- 们“。

鉴于此,笔者想发现一些唐诗中的常用双字词,看看其中的 成词规律 是怎样的。笔者在这里选取共现次数超过10次的词汇,并列出TOP200的共现双字词。关键操作步骤如下所示:

以下是TOP200的共现双字词:

从上面的双词探测结果中,笔者可以发现如下6类成词规律:

(1) 复合式 (A+B等于C):由两个字组成,这两个字分别代表意义,组成双音节的词,这类词出现的频次最多。比如,弟兄、砧杵、纪纲、捐躯、巡狩、犬吠。

(2) 重叠式 (AA等于A): 琅琅、肃肃、忻忻、灼灼。

(3) 叠音 (AA不等于A):琅琅(单独拆开不能组其他词)、的的(拆开后的单字的词义不同)等。

(4) 双声 (声母相同): 踌躇(声母都是c,分开各自无法组词)、参差(声母都是c)、缅邈(声母都是m)。

(5) 叠韵 (韵母相同):噫嘻(韵母是i)、缭绕(韵母是ao)、妖娆(韵母是ao)等。

(6) 双音节拟声词 :歔欷、咿哑等。

在这一部分,笔者抽取的是上述高频字TOP148中的字的共现关系

可以看到,上述的语义网络可以分为3个簇群,即橙系、紫系和绿系,TOP148高频字中,字体清晰可见字的近40个。圆圈的大小表示该字在语义网络中的影响力大小,也就是“ Betweenness Centrality (中介核心性),”学术的说法是“两个非邻接的成员间的相互作用依赖于网络中的其他成员,特别是位于两成员之间路径上的那些成员,他们对这两个非邻接成员的相互作用具有某种控制和制约作用”。在诗句中,这些字常以“字眼”的形式呈现,也就是诗文中精要的字。3类中:

橙系 :北、流、马、草、闲、孤、逢、云等;

紫系 :游、树、雨、回、笑、言、幽、清、白、野、行等

绿系 :知、金、柳、难、愁、旧、仙、望、客。

其中,根据字的构成来看,绿系簇群中的字大多跟送别(好友)有关。

因为之前的文本预处理是按字来切分的,所以这里进行的是基于 Word2vec 的字向量分析。

基于Word2vec的字向量能从大量 未标注 的普通文本数据中 无监督 地学习到字向量,而且这些字向量包含了字与字之间的 语义关系 ,正如现实世界中的“物以类聚,类以群分”一样,字可以由它们身边的字来定义。

从原理上讲,基于字嵌入的Word2vec是指把一个维数为所有字的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单字被映射为实数域上的向量。把每个单字变成一个向量,目的还是为了方便计算,比如“求单字A的同义字”,就可以通过“求与单字A在cos距离下最相似的向量”来做到。下面是基于Word2vec的字向量模型原理示意图。

下面,笔者选取一些单字进行字向量关联分析,展示如下:

与“梅”相关的字,大致分为两类:同属植物,如醾、杏、梨、桃、榴、杨、柳、楝等;和“梅”相关的意象,如春(梅)、酴(酒)、(梅)花、(梅)枝、残(梅)、(梅)梢等。最相关的是“春”,吟咏春梅,在唐诗中极为常见,贤相宋璟在东川官舍见梅花怒放于榛莽中,归而有感,作《梅花赋》,其中,"独步早春,自全其天",赞赏梅花在早春中一枝独秀,自己安于凌寒而开的天命。

“静”字则跟它的同音字“净(连带繁体,一共出现三次,即“净”、“净”和“净”)”的相关度最大,结合“坐”、“院”“梵”等字,可联想到“净院”(佛寺,亦称“净宇”)、净觉(谓心无妄念,对境不迷),这也说明,在唐诗里最能体现静的,还是在寺庙里参禅,感悟佛法。

笔者还想看看唐诗里经常出现的情绪,即“悲”、“忧”、“愁”、“怒”、“惧”,看看它们的相关字有哪些。这里就请读者自行分析,笔者不做赘述。

注意,在这里得到的情绪相关字,笔者将收集整理它们,制成情绪词典,用于后面的诗词情绪分类。

王国维在《人间词话》里曾提到:“ 境非独谓景物也,喜怒哀乐,亦人心中之一境界。故能写真景物、真感情者,谓之有境界 … ”,讲的是"境"与"境界"通用---写景亦可成境界,言情亦可成境界,因为景物是外在的世界,情感是内在的世界。所以,在这里,笔者想分析一下全唐诗中诗词所表达出来的内在境界,也就是内在情感,为了丰富分析维度,不采用简单的二元分析,即“积极”和“消极”2种情绪,而是7种细颗粒的情绪分类,即悲、惧、乐、怒、思、喜、忧。

根据上面获取到的字向量,经过人工遴选后,得到可以用于训练的“情绪字典”,根据诗歌中常见的主题类别,情绪类别分为:

悲: 愁、恸、痛、寡、哀、伤、嗟…

惧: 谗、谤、患、罪、诈、惧、诬…

乐: 悦、欣、乐、怡、洽、畅、愉…

怒: 怒、雷、吼、霆、霹、猛、轰…

思: 思、忆、怀、恨、吟、逢、期…

喜: 喜、健、倩、贺、好、良、善…

忧: 恤、忧、疴、虑、艰、遑、厄…

笔者在这里采用的是基于 LSTM (LongShort-Term Memory,长短期记忆网络)的情绪分析模型。

在这里,我们会将文本传递给 嵌入层 (Embedding Layer),因为有数以万计的字词,所以我们需要比 单编码向量 (One-Hot Encoded Vectors)更有效的表示来输入数据。这里,笔者将使用上面训练得到的Word2vec字向量模型,用预先训练的 词嵌入 (Word Embedding)来引入的外部语义信息,做 迁移学习 (Transfer Learning)。

以下是简要原理展示图:

为了取得更好的效果,笔者采用最新的 NestedLSTM+Conv1D 的深度学习模型来做情绪判断,它能较好的提炼文本里的特征和语序信息,记住更长的语义依赖关系,做出较为精确的情绪判断。其网络结构如下所示:

接着,来试试实际的效果:

笔者随机测试了100句,判断准确的有86条,粗略的准确率估计是86%。当然,这只是一次不太严谨的小尝试,在真实的业务场景里,这得花很多时间来做优化,提高模型的准确率。

下面是对《全唐诗》近5万首诗的情绪分析结果,展示如下:

可能出乎很多人的意料,代表大唐气象的唐诗应该以积极昂扬的情绪为主,怎么会是“悲”、“思”、“忧”这样的情绪占据主流呢?而 “喜”、“乐”这样的情绪却占据末流呢?

接下来,笔者着重来分析下“悲”这个情绪占据主流的原因。

从常见的唐诗写作题材上说,带有“悲”字基调的唐诗较多,也多出名诗佳句,比如唐诗中常见的几种情结,如 ”悲秋情结“ 、 ”别离情结“ 、 ”薄暮情结“ 和 ”悲怨情结“ ,都体现出浓重的“悲情”色彩。

古人云:“悲愤出诗人”,它点破了人的成就与所处的环境、心境有某种关系。就像司马迁所说:“夫《诗》、《书》隐约者,欲遂其志之思也。昔西伯拘羑里,演《周易》;孔子厄陈、蔡,作《春秋》…大抵贤圣发愤之所为作也。此人皆意有所郁结,不得通其道也…” 回顾古今中外的着名的诗人和作家,几乎无一不是曾有一段被排挤,诽谤,不得志和身处逆境之经历,有些甚至还很悲惨。正是在这种悲难,恶劣环境中,才使得其奋发图强。

重要的是,唐诗中的“悲”不仅仅是做“儿女态”的悲,更是具有超越时空、怜悯苍生以及同情至美爱情的大慈大悲。如下:

陈子昂的《登幽州台歌》,“ 前不见古人,后不见来者。念天地之悠悠,独怆然而涕下。 ”从时间与空间两个角度把悲凉拉长了。

李白的《将进酒》中“ 君不见明镜高堂悲白发,朝如青丝暮成雪 ”,以及《梦游天姥吟留别》中“ 世间行乐亦如此,古来万事东流水 ”让人唏嘘!还有《长相思》第一首中“ 天长路远魂飞苦,梦魂不到关山难。长相思,摧心肝。 ”

杜甫的《登高》中“ 无边落木萧萧下,不尽长江滚滚来。万里悲秋常作客,百年多病独登台。 ”老病残躯,孤苦无依独登台,心中悲凉陡然而生。《石壕吏》中“ 老妪力虽衰,请从吏夜归。急应河阳役,犹得备晨炊 ”等句语言朴实,但极具张力!

白居易的《长恨歌》末尾“ 七月七日长生殿,夜半无人私语时。在天愿作比翼鸟,在地愿为连理枝。天长地久有时尽,此恨绵绵无绝期。 ”相爱而不能相聚,生死遗恨,没有尽头!

与上面情绪分析模型采用的内部原理一致,这里采用的还是LSTM,2层网络。

上图是文本生成的简要原理图,是基于 字符 (字母和标点符号等单个字符串,以下统称为 字符 )进行模型构建,也就是说我们的输入和输出都是字符。举个栗子,假如我们有一个一句诗“胸中稳处即吾乡”,我们想要基于这句诗来构建LSTM,那么希望的到的结果是,输入“胸”,预测下一个字符为“中”;输入“中”时,预测下一个字符为“稳”…输入“吾”,预测下一个字符为“乡”,等等。

由于其中的原理过于繁复,涉及大量的code和数学公式,故笔者仅展示生成的结果,训练的语料即经过预处理的《全唐诗》。

以“春雨”打头,生成500字的诗词,结果如下:

可以看见,其中的诗词大都围绕着“春”来展开,也就是打头的两个字引导了后续结果的生成,这多亏了LSTM超强的“记忆能力”---记住了诗歌文本序列中的时空依赖关系。

在生成的诗句中,某些诗句还是蛮有意思的,上下联间的意象有很强的相关性。

下面是多次生成中产生的较优秀的诗句(当然,这是笔者认为的),其中有些学习到了高阶的对仗技巧,如下:

白鹭惊孤岛,朱旗出晚流。

笔者最喜欢的是这两句,它们对仗工整:“白鹭”-“朱旗”,“孤岛”-“晚流”,“惊”-“出”。这里体现出《人间词话》中的“无我之境”: “无我之境,以物观物,故不知何者为我,何者为物”,也就是意境交融、物我一体的优美境界,其中的 “惊”、“出”堪称字眼,极具动感,炼字绝妙!

最后,我们来看看诗歌的信息检索问题,也就是笔者随意输入一句诗词,然后机器会按照语义相似度在《 全唐诗 》中检索出若干句符合要求的诗词。

谈到这里,笔者不由得想起一个词---“射覆”,射覆游戏早期的耍法主要是制谜猜谜和用盆盂碗等把某物件事先隐藏遮盖起来,让人猜度。这两种耍法都是比较直接的。后来,在此基础上又产生了一种间接曲折的语言文字形式的射覆游戏,其法是用相连字句隐寓事物,令人猜度,若射者猜不出或猜错以及覆者误判射者的猜度时,都要罚酒。唐浩明的长篇小说《 张之洞 》中有对射覆游戏的精彩描写:

宝竹坡突然对大家说,我有一覆,诸位谁可射中。不带大家做声,他立刻说,《 左传 》曰: 伯姬归于宋。 射唐人诗一句。大家都低头想。

张之洞不慌不忙地念着,白居易诗曰: 老大嫁作商人妇。

如果对古文生疏,大家可能很难将这两句联想起来,但《 张之洞 》里接下来就有关于解谜的描述:

杨锐道: “ 伯、仲、叔、季,这是中国兄弟姊妹得排行序列。伯姬是鲁国的长公主,排行老大。周公平定武庚叛乱后,把商旧都周围地区封给商纣王的庶子启,定国名为宋,故宋国为商人后裔聚族之地。伯姬嫁到宋国,不正是'老大嫁作商人妇'吗? ”

大家可能会想,如果是自己来思索的话,不仅需要自己具备渊博的学识,更要有疾如闪电的反应能力,这个非极顶聪明之人不可!

试想,机器来做,可以做好吗?能的话,又会是如何操作?

这里,笔者介绍基于 WMD (Earth Mover’s Distance)的语义相似度算法,与上面的情绪分析类似,还有用到之前训练得到的字向量模型,借助外部语义信息来应对同义不同字的情形。

WMD (EarthMover’s Distance)是一种能使机器以有意义的方式(结合文本的语义特征)评估两个文本之间的“ 距离 (也就是文本间的相似度)”的方法,即使二者没有包含共同的词汇。它使用基于word2vec的词向量,已被证明超越了k-近邻分类中的许多现有技术方法。以下是基于WMD的“射覆”的机器解:

上面两个句子没有共同的词汇,但通过匹配相关单字,WMD能够准确地测量两个句子之间的(非)相似性。该方法还使用了基于词袋模型的文本表示方法(简单地说,就是词汇在文本中的频率),如下图所示。该方法的直觉是最小化2段文本间的“ 旅行距离 (traveling distance)”,换句话说,该方法是将文档A的分布“移动”到文档B分布的最有效方式。

简要的解释了相关原理后,笔者紧接着展现最后的分析效果。由于对《 妖猫传 》中的那首线索式的《 清平乐 》印象深刻,笔者让机器在《 全唐诗 》+《 全宋词 》中查找与它相关性最大的TOP9诗词。结果如下:

查找的结果排行第一的是原句,但有一个字不同(其实古语中“花”、“华”互通,华字的繁体是会意字,本意是“花”),略微差异导致相似度不为1.0。第二相似的是一首宋词,林正大的《 括酹江月(七) 》,其实这整首词可以作为李白《 清平乐 》的注解,因为全篇都是对它的化用:即将《 清平乐 》中的句、段化解开来,增加了新的联想,重新组合,灵活运用,对原诗的表达进行了情感上的升华。随后的两句诗词也是类似的情况,只是相似度上略有差异罢了。

紧接着,是刚才机器生成的诗句,看看与它内涵相近的诗句有哪些:

再看看笔者较为欣赏的2句名句,机器很好的捕捉到了它们之间的相似语义关系,即使词汇不尽相同,但仍能从语义上检索相似诗句。

写到这里,关于《全唐诗》单独的文本挖掘已经完成,但笔者又想到一个有趣的分析维度---从文本挖掘的角度来比较《 全唐诗 》、《 全宋词 》和《 全元曲 》之间用字的差异,借助字这种基本符号来分析各自的 文学艺术特征 。

因为分析的对象涉及3个,常规的二元对比分析方法难以得出有效的结论。因此,笔者在这里跨界采用来自符号学领域的研究成果--- Semiotic Squares 。

“ Semiotic Squares (笔者译作‘符号方块’)”,是由知名符号学大师Greimas和Rastier发明,是一种提炼式的对比分析(Oppositional Analyses)方法,通过将给定的两个相反的概念/事例(如 “生命(Life)”和“死亡(Death)”)的分析类型(通过‘或’、‘与’、‘非’的逻辑)拓展到4类(如“生命(Life)”、“死亡(Death)”、“生死相间(也就是活死人,The Living Dead)”、“非生非死(天使,Angels)”,有时还可以拓展到8个或10个分析维度。以下是符号方块的结构示意图:

说明:“+”符号将2个词项组合成一个“ 元词项 (Metaterm)”( 复合词 ,Compound Term),例如,5是1和2的复合结果。

Semiotic Squares的构成要素

Semiotic Squares主要包含以下2种元素(我们正在避开方块的组成关系:对立,矛盾、互补或包含):

(1)词项(Terms):

Semiotic Square 由4个词项组成::

位置1 (Term 1): 词项A(Term A)

位置 2(Term 2): 词项B(Term B)

位置 3 (Term Not-2): 非B 词项(Term Not-B)

位置 4 (Term Not-1): 非A词项(Term Not-A)

Term A和TermB是相反的两个概念,二者是对立关系,这是“符号方块”的基础,另外两项是通过对Term A和Term B取反而获得。

(2)元词项 (Metaterms)

Semiotic Square囊括6个元词项。这些元词项由上面的4个基础词项组合而成,其中的绝大部分元词项已被命名。

位置5 (Term 1 + Term 2): 复合词项(Complex Term)

位置6 (Term 3 + Term 4): 中立词项(Neutral Term)

位置7 (Term 1 + Term 3): 正向系(Positive Deixis)

位置8 (Term 2 + Term 4): 负向系(Negative Deixis)

位置9(Term 1 + Term 4): 未命名(Unnamed)

位置10(Term 2 + Term 3): 未命名(Unnamed)

下面以“男性”和“女性”这两个相对的概念来举个例子,注意其中错综复杂的逻辑关系/类型。

说完了分析的大致原理,笔者这里就来实战一番,与上述原始模型不同的是,笔者在这里除了基本的二元对立分析外,还新增了一个分析维度,总体是关于《 全唐诗 》、《 全宋词 》和《 全元曲 》的三元文本对比分析。

预处理前的文本是这样的:

预处理后是这样的形式:

用Semiotic Squares进行分析的结果如下图所示:

从上面呈现的TOP10高频字和象限区块(左上角“唐诗”、右上角“宋词”和正下方“元曲”)来看,唐诗、宋词、元曲中出现的 独有高频字 依次是:

唐诗 :唯、馀、始、鸟、含、尔、昔、兹、忽、栖、川、旌、戎、秦…

宋词 :阑、沈、匆、帘、浓、约、淡、觞、蕊、屏、凝、笙、瑶、柔…

元曲 :哥、俺、咱、孩、姐、吃、哩、科、厮、拿、你、叫、呀、呵…

从上面的关键字来看,唐诗、宋词和元曲各自的特征很鲜明:

唐诗 :用字清澹高华、含蓄,诗味较浓,寄情山水和金戈铁马的特征明显,可以联想到唐诗流派中典型的 山水田园派 和 盛唐边塞诗 ,它们大都反映大唐诗人志趣高远、投效报国的情怀。

宋词 :所用的字体现出婉约、宛转柔美,表现的多是儿女情长,生活点滴,这也难怪,由于长期以来词多趋于宛转柔美,人们便形成了以婉约为正宗的观念。

元曲 :所用的字生活气息浓重,通俗易懂、接地气、诙谐、洒脱和率真,充分反映了其民间戏曲的特征,这与蒙元治下的汉族知识分子被打压,很多文人郁郁不得志、转入到民间戏曲的创作中来有关。

此外,正上方的“复合”中,表征的是三者皆常用的字,即共性特征,主要涉及 写景 (如 “晴”、“幽”、“溪”、“洲”、“霜”、“浦”、“露”、 “碧”、“帆”、“峰”等)和 抒情 (等“怅”、“忆”、“寂”、“悠”等)。

下方的两个象限,“Not 唐诗”和“Not 宋词”分别代表的“宋词+元曲”、“唐诗+元曲”,三者之二的共性高频字,中的两项也以此类推。

‘柒’ 常见的文件类型有哪几种

常见的文件类型有5类,具体如下:

1、文本文件类型。

文本文件类型:包括ASCII、MIME、.txt等格式。

(1)ASCII标准使得只含有ASCII字符的文本文件可以在Unix、Macintosh、Microsoft Windows、DOS和其它操作系统之间自由交互。

(2)文本文件在MIME标准中的类型为“text/plain”,此外,它通常还附加编码的信息。在Mac OS X出现前,当Resource fork指定某一个文件的类型为“TEXT”时,Mac OS就认为这个文件是文本文件。

(3).txt是包含极少格式信息的文字文件的扩展名。.txt格式并没有明确的定义,它通常是指那些能够被系统终端或者简单的文本编辑器接受的格式。

2、视频文件格式类型。

视频文件格式有不同的分类,如:

(1)微软视频 :wmv、asf、asx。

(2)Real Player :rm、rmvb。

(3)MPEG视频 :mp4。

(4)手机视频 :3gp。

(5)Apple视频 :mov、m4v。

(6)其他常见视频:avi、dat、mkv、flv、vob等。

3、音频文件格式类型。

音频文件格式类型:包括Wave、AIFF、Audio、MPEG、RealAudio、MIDI等格式。

(1)Wave格式是微软公司开发的一种声音文件格式,它符合PIFF(Resource Interchange File Format) 文件规范,用于保存WINDOWS平台的音频信息资源,被WINDOWS平台及其应用程序所支持。

(2)AIFF是音频交换文件格式的英文缩写,是苹果计算机公司开发的一种音频文件格式。

(3)Audio文件是Sun Microsystems公司推出的一种经过压缩的数字音频格式,是Internet中常用的声音文件格式。

(4)MPEG(Moving Picture Experts Group,动态图像专家组)代表运动图像压缩标准,这里的音频文件格式指的是MPGE标准中的音频部分。

(5)RealAudio文件是RealNetworks公司开发的一种新型流式音频(Streaming Audio)文件格式,它包含在RealNetworks公司所制定的音频、视频压缩规范RealMedia中,主要用于在低速率的广域网上实时传输音频信息。

(6)MIDI(Musical Instrument Digital Interface,乐器数字接口)是数字音乐/合成乐器的统一国际标准,它定义了计算机音乐程序、合成器以及其他电子设备交换音乐信号的方式。

4、图片文件格式类型。

图像格式即图像文件存放的格式,通常有JPEG、TIFF、RAW、BMP、GIF、PNG等。由于数码相机拍下的图像文件很大,储存容量却有限,因此图像通常都会经过压缩再储存。

5、可执行文件格式类型。

可执行文件 (executable file) 指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行程序的呈现方式不一样。在windows操作系统下,可执行程序可以是 .exe文件 .sys文件 .com等类型文件。

‘捌’ php解密,麻烦帮忙解下密

这段代码估计是为了降低源代码被抄袭的的几率,将代码给加密

php这玩意目前没有什么有效的官方代码加密手段(例如c的.dll文件就是可以一种有效的代码加密)

php如果将代码过分的加密话,那么,在服务器运行的时候,还需要将代码解密再进行解释,这样大大加大了服务器的负担以及反应时间,对用户的体感也不很好。所以,只能将代码部分加密话,关键字部分放着不动,

例如

$a=100;$b=1000;echo$a;echo$b;

可以加密化的写为

$xx0000x=100;$xx000x0=100;
echo$xx0000x;echo$xx000x0;

简单来说就是,将变量名或方法名,以某种规律改写,但是逻辑性保证与源代码一致,这样机器运行起来,没有任何障碍,但是对人为的代码阅读,就有了不小的难度

我上面的变量名加密方式是将变量名二进制化然后将1替换成x


说回楼主的代码,变量的加密方式一般都是代码作者或团队从新定义的加密方式,想要解密,很难。几乎不可能,如果楼主有兴趣,可以试着按照我的那个加密方式去解密,但是估计9成是错的。

这里,数值和字符串没有被加密,那么可以多少看一下


整理之后发现,JE9PME..........................wME8wKTs=这段(中间略掉)是可以解密的,采用的是base64加密算法,解密后

$OO0OO0000=$OOO000000{17}.$OOO000000{12}.$OOO000000{18}.$OOO000000{5}.$OOO000000{19};if(!0)$O000O0O00=$OO0OO0000($OOO0O0O00,'rb');$OO0OO000O=$OOO000000{17}.$OOO000000{20}.$OOO000000{5}.$OOO000000{9}.$OOO000000{16};$OO0OO00O0=$OOO000000{14}.$OOO000000{0}.$OOO000000{20}.$OOO000000{0}.$OOO000000{20};$OO0OO000O($O000O0O00,1173);$OO00O00O0=($OOO0000O0($OO0OO00O0($OO0OO000O($O000O0O00,380),'+/=','+/')));eval($OO00O00O0);

这段加密代码似乎本身就是一个加密算法

至于算法,楼主自己整理一下吧,应该可以整理出来的


这里附上一个js版的base64加密解密算法。楼主自己去试试吧

热点内容
数据加密技术的实现 发布:2025-05-16 20:12:49 浏览:157
华为p9扩存储 发布:2025-05-16 20:03:22 浏览:414
如何用苹果ipad登录安卓微信 发布:2025-05-16 19:58:51 浏览:138
预编译error技巧 发布:2025-05-16 19:57:42 浏览:779
php地址正则表达式 发布:2025-05-16 19:44:01 浏览:467
oracle存储过程优点 发布:2025-05-16 19:41:36 浏览:613
无法访问g盘拒绝访问 发布:2025-05-16 19:32:57 浏览:118
阿里云服务器如何把c盘变成d盘 发布:2025-05-16 19:12:36 浏览:497
unix环境高级编程学习 发布:2025-05-16 19:11:49 浏览:422
如何将20的硝酸配置成5的 发布:2025-05-16 19:04:42 浏览:971