瀏覽代碼

:memo: add note

visuddhinanda 2 年之前
父節點
當前提交
45c00e5529
共有 1 個文件被更改,包括 22 次插入8 次删除
  1. 22 8
      app/Console/Commands/UpgradeWbwWeight.php

+ 22 - 8
app/Console/Commands/UpgradeWbwWeight.php

@@ -48,6 +48,7 @@ class UpgradeWbwWeight extends Command
             $this->info('running book='.$iBook);
             $maxPara = WbwTemplate::where("book",$iBook)->max('paragraph');
 		    $bar = $this->output->createProgressBar($maxPara);
+            //以段落为单元计算权重
             for ($iPara=1; $iPara <= $maxPara ; $iPara++) {
                 if($para && $para != $iPara ){
                     continue;
@@ -57,13 +58,16 @@ class UpgradeWbwWeight extends Command
                                     ->where("paragraph",$iPara)
                                     ->orderBy('wid','asc')
                                     ->get();
-                $start = -1;
-                $bold = 0;
-                $katama = false;
-                $katamaDis = 0;
-                $katamaWeight = 1;
+
+                $katama = false; //单词前面是否有katama
+                $katamaDis = 0; //单词与katama的距离
+                $katamaWeight = 1; //katama 权重
                 $arrKatama = array();//katama 权重结果
-                //先计算katama权重
+                //
+                /**
+                 * 先计算katama权重
+                 * 将每个单词的katama权重放在arrKatama数组里面
+                 */
                 for ($iWord=0; $iWord < count($words); $iWord++) {
                     //计算katama加分
                     if(empty($words[$iWord]->real)){
@@ -80,13 +84,17 @@ class UpgradeWbwWeight extends Command
                         $katamaDis = 0;
                     }
                 }
+                $start = -1; //黑体字开始
+                $bold = 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;
                         }else{
@@ -94,10 +102,15 @@ class UpgradeWbwWeight extends Command
                         }
                     }else{
                         if($start>=0){
-                            //前面的词是黑体字
+                            /**
+                             * 某词自己不是黑体,但是前面的词是黑体字
+                             * 先保存这个词
+                             * 然后,修改前面的黑体字单词的权重
+                             *
+                            */
                             $result = WbwTemplate::where('id',$words[$iWord]->id)
                                                     ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
-                            $weight = 1.01+23*pow(10,(2-$bold));
+                            $weight = 1.01 + 23 * pow(10,(2-$bold));
                             for ($i=$start; $i < $iWord ; $i++) {
                                 $result = WbwTemplate::where('id',$words[$i]->id)
                                                     ->update(['weight'=>floor(($weight+$arrKatama[$i])*1000)]);
@@ -106,6 +119,7 @@ class UpgradeWbwWeight extends Command
                             $start = -1;
                             $bold = 0;
                         }else{
+                            //前词不是黑体
                             $result = WbwTemplate::where('id',$words[$iWord]->id)
                                         ->update(['weight'=>floor(($weight+$arrKatama[$iWord])*1000)]);
                         }