|
|
@@ -60,9 +60,32 @@ class UpgradeWbwWeight extends Command
|
|
|
$start = -1;
|
|
|
$bold = 0;
|
|
|
$katama = false;
|
|
|
+ $katamaDis = 0;
|
|
|
+ $katamaWeight = 1;
|
|
|
+ $arrKatama = array();//katama 权重结果
|
|
|
+ //先计算katama权重
|
|
|
for ($iWord=0; $iWord < count($words); $iWord++) {
|
|
|
- WbwTemplate::where('id',$words[$iWord]->id)->update(['weight'=>1]);
|
|
|
- if($words[$iWord]->style === 'bld'){
|
|
|
+ //计算katama加分
|
|
|
+ if(empty($words[$iWord]->real)){
|
|
|
+ $katama = false;
|
|
|
+ $katamaWeight = 0;
|
|
|
+ }
|
|
|
+ if($katama){
|
|
|
+ $katamaDis++;
|
|
|
+ $katamaWeight = 463 * (pow(0.2, ($katamaDis-1))+1);
|
|
|
+ }
|
|
|
+ $arrKatama[] = $katamaWeight;
|
|
|
+ if(mb_substr($words[$iWord]->real,0,5,"UTF-8") === 'katam'){
|
|
|
+ $katama = true;
|
|
|
+ $katamaDis = 0;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for ($iWord=0; $iWord < count($words); $iWord++) {
|
|
|
+ $wid = $words[$iWord]->wid;
|
|
|
+ $weight = 1.01;
|
|
|
+ WbwTemplate::where('id',$words[$iWord]->id)->update(['weight'=>$weight*1000]);
|
|
|
+
|
|
|
+ if($words[$iWord]->style === 'bld' && !empty($words[$iWord]->real)){
|
|
|
if($start === -1){
|
|
|
$start = $iWord;
|
|
|
$bold = 1;
|
|
|
@@ -71,13 +94,20 @@ class UpgradeWbwWeight extends Command
|
|
|
}
|
|
|
}else{
|
|
|
if($start>=0){
|
|
|
- $weight = 1 + 100 / pow($bold,2);
|
|
|
+ //前面的词是黑体字
|
|
|
+ $result = WbwTemplate::where('id',$words[$iWord]->id)
|
|
|
+ ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
|
|
|
+ $weight = 1.01+23*pow(10,(2-$bold));
|
|
|
for ($i=$start; $i < $iWord ; $i++) {
|
|
|
$result = WbwTemplate::where('id',$words[$i]->id)
|
|
|
- ->update(['weight'=>(int)$weight]);
|
|
|
+ ->update(['weight'=>floor(($weight+$arrKatama[$i])*1000)]);
|
|
|
}
|
|
|
+
|
|
|
$start = -1;
|
|
|
$bold = 0;
|
|
|
+ }else{
|
|
|
+ $result = WbwTemplate::where('id',$words[$iWord]->id)
|
|
|
+ ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
|
|
|
}
|
|
|
}
|
|
|
}
|