数码资讯
PHP权重计算方法代码共享
复制代码代码如下所示: < PHP Vim:集expandtab TabStop = 4 shiftwidth = 4 * / / * / / + ------------------------------------------------------------------------ 名称:
选购提示
关注价格、性能、续航、售后和真实使用场景,理性比较后再下单。
复制代码代码如下所示:
< PHP
Vim:集expandtab TabStop = 4 shiftwidth = 4 * / / *
/ / + ------------------------------------------------------------------------
名称:权重计算
说明:稍加修改,可用于分词、词频统计、文本检索和垃圾检测。
2013 / 12 / 16: / /日期我
类权重{
保护$进位=阵列(阵列());
保护aitems美元=阵();
保护slastrule美元;
保护amatchs美元=阵();
如何保护美元=阵();
私有函数init(){
空记录匹配表和输出结果
unset(美元->设置);
}
公共职能的一个新条目($ mitems){
导入新项目
美元-> aitems =(is_array(mitems美元)美元(美元)mitems:阵列mitems);
此$ init();
}
新的公共函数(数组表){
新表导入,并生成字典
foreach(合一美元itablekey = > $ stableline){
atableline美元=爆炸('',str_replace(' | ',' ',stableline美元));
$ =函数($,k,$参数){
$ K1 = $参数{ 0 };oweight美元= $参数{ 1 };
oweight -> gendict美元($ V,为K1);
};
array_walk(atableline美元美元,二传,阵列(itablekey美元,美元));
}
此$ init();
}
公共功能getshow($初值= 'max){
要获得最终结果,请显示
如果(空(美元-> aitems)| |空(美元->进位))
返回数组();
如果(空(美元->设置)| |初值美元!=美元-> slastrule)
返回这个-> genshow($初值);
返回这个->设置;
}
公共功能genshow($初值){
至于如何=阵列(美元);
amatchs美元=阵();
$吸气=功能($ V,K oweight使用美元,美元(美元)的演出,amatchs美元美元,初值){
T = array_count_values美元(美元oweight -> matchword($ V));
amatchs美元{ } = $ T;
开关($初值){
case'max:
至于如何{ } = K美元美元array_keys($ T,max(T));
打破;
}
};
array_walk(美元-> aitems美元美元,吸气剂,);
美元->设置= $如何;
美元-> amatchs = $ amatchs;
返回设置;
}
私有函数gendict($ Mword,艾奇美元=){
iinsertponit美元=计数(美元->进位);
长= 0美元; / /当前节点数
foreach(str_split($ Mword)达ichar){
如果(isset(美元->进位{ } { }长美元美元ichar)){
长=美元美元->进位{ } { }长ichar美元美元;
继续;
}
美元->进位{ $ iinsertponit } =阵();
美元->进位{ } { }长美元美元美元iinsertponit ichar =;
长iinsertponit美元美元=;
iinsertponit美元+ +;
}
美元->进位{ } { }长美元'acc{ } = $艾奇;
}
功能matchword($ S){
美元美元美元长= = = 0 iposition IOFFSET;
$ S = 0 ;
艾朗美元= strlen($ S);
回归美元=阵();
而($ IOFFSET < $艾朗){
Schar美元美元美元} = { IOFFSET泥;
如果(isset(美元->进位{ } { }长美元美元Schar)){
长=美元美元->进位{ } { }长Schar美元美元;
如果(isset(美元->进位{ } { }长美元'acc)){
回归array_merge美元=(美元回归,美元->进位{ } { }长美元'acc);
iposition = IOFFSET美元+ 1美元;
长= 0美元;
}
{人}
长= 0美元;
iposition IOFFSET美元=美元;
iposition = IOFFSET美元+ 1美元;
}
+ + IOFFSET美元;
}
返回返回;
}
}
>
外部调用的例子
复制代码代码如下所示:
aitems美元=阵列(
chinaisbig,
whichisnot,
totalyrightforme,
);
一美元=阵列(
中国,是|小,
中国,我的大|,
中国,是|大,这|不,我,
完全正确,我|,
);
oweight美元=新ttrie;
oweight美元-一个新条目($ aitems);
由于美元美元= oweight -> NewTable(合一);
< PHP
Vim:集expandtab TabStop = 4 shiftwidth = 4 * / / *
/ / + ------------------------------------------------------------------------
名称:权重计算
说明:稍加修改,可用于分词、词频统计、文本检索和垃圾检测。
2013 / 12 / 16: / /日期我
类权重{
保护$进位=阵列(阵列());
保护aitems美元=阵();
保护slastrule美元;
保护amatchs美元=阵();
如何保护美元=阵();
私有函数init(){
空记录匹配表和输出结果
unset(美元->设置);
}
公共职能的一个新条目($ mitems){
导入新项目
美元-> aitems =(is_array(mitems美元)美元(美元)mitems:阵列mitems);
此$ init();
}
新的公共函数(数组表){
新表导入,并生成字典
foreach(合一美元itablekey = > $ stableline){
atableline美元=爆炸('',str_replace(' | ',' ',stableline美元));
$ =函数($,k,$参数){
$ K1 = $参数{ 0 };oweight美元= $参数{ 1 };
oweight -> gendict美元($ V,为K1);
};
array_walk(atableline美元美元,二传,阵列(itablekey美元,美元));
}
此$ init();
}
公共功能getshow($初值= 'max){
要获得最终结果,请显示
如果(空(美元-> aitems)| |空(美元->进位))
返回数组();
如果(空(美元->设置)| |初值美元!=美元-> slastrule)
返回这个-> genshow($初值);
返回这个->设置;
}
公共功能genshow($初值){
至于如何=阵列(美元);
amatchs美元=阵();
$吸气=功能($ V,K oweight使用美元,美元(美元)的演出,amatchs美元美元,初值){
T = array_count_values美元(美元oweight -> matchword($ V));
amatchs美元{ } = $ T;
开关($初值){
case'max:
至于如何{ } = K美元美元array_keys($ T,max(T));
打破;
}
};
array_walk(美元-> aitems美元美元,吸气剂,);
美元->设置= $如何;
美元-> amatchs = $ amatchs;
返回设置;
}
私有函数gendict($ Mword,艾奇美元=){
iinsertponit美元=计数(美元->进位);
长= 0美元; / /当前节点数
foreach(str_split($ Mword)达ichar){
如果(isset(美元->进位{ } { }长美元美元ichar)){
长=美元美元->进位{ } { }长ichar美元美元;
继续;
}
美元->进位{ $ iinsertponit } =阵();
美元->进位{ } { }长美元美元美元iinsertponit ichar =;
长iinsertponit美元美元=;
iinsertponit美元+ +;
}
美元->进位{ } { }长美元'acc{ } = $艾奇;
}
功能matchword($ S){
美元美元美元长= = = 0 iposition IOFFSET;
$ S = 0 ;
艾朗美元= strlen($ S);
回归美元=阵();
而($ IOFFSET < $艾朗){
Schar美元美元美元} = { IOFFSET泥;
如果(isset(美元->进位{ } { }长美元美元Schar)){
长=美元美元->进位{ } { }长Schar美元美元;
如果(isset(美元->进位{ } { }长美元'acc)){
回归array_merge美元=(美元回归,美元->进位{ } { }长美元'acc);
iposition = IOFFSET美元+ 1美元;
长= 0美元;
}
{人}
长= 0美元;
iposition IOFFSET美元=美元;
iposition = IOFFSET美元+ 1美元;
}
+ + IOFFSET美元;
}
返回返回;
}
}
>
外部调用的例子
复制代码代码如下所示:
aitems美元=阵列(
chinaisbig,
whichisnot,
totalyrightforme,
);
一美元=阵列(
中国,是|小,
中国,我的大|,
中国,是|大,这|不,我,
完全正确,我|,
);
oweight美元=新ttrie;
oweight美元-一个新条目($ aitems);
由于美元美元= oweight -> NewTable(合一);
声明:本文内容用于数码产品信息整理与选购参考,具体价格、库存、售后政策以官方渠道和电商页面实时信息为准。