最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

PHP實現的最大正向匹配算法示例

 更新時間:2017年12月19日 10:42:32   作者:流火星空  
這篇文章主要介紹了PHP實現的最大正向匹配算法,簡單描述了最大正向匹配算法的概念、原理并結合實例形式分析了php實現與使用最大正向匹配算法的相關操作技巧,需要的朋友可以參考下

本文實例講述了PHP實現的最大正向匹配算法。分享給大家供大家參考,具體如下:

正向最大匹配算法:從左到右將待分詞文本中的幾個連續(xù)字符與詞表匹配,如果匹配上,則切分出一個詞。但這里有一個問題:要做到最大匹配,并不是第一次匹配到就可以切分的 。

函數中包含三個參數:

$query   查詢詞
$dict    詞典
$max_len 最大長度(這里默認值設置為15)

詞典示例:

$dict = array(
  '腳本之家'=>'腳本之家',
  '腳本下載'=>'腳本下載',
  'JS編程'=>'JS編程'
);

函數定義:

/*
 * $query 查詢詞
 * $dict 詞典
 * $max_len 最大長度
 */
function extractWords($query,$dict,$max_len=15){
    $feature = "";
    $slen=mb_strlen($query,'UTF8');
    $c_bg = 0;
    while($c_bg<$slen){
      $matched = false;
      $c_len =(($slen-$c_bg)>$max_len)?$max_len:($slen-$c_bg);
      $t_str = mb_substr($query, $c_bg,$c_len,'UTF8');
      for($i=$c_len;$i>1;$i--){
        $ttts = mb_substr($t_str, 0,$i,'UTF8');
          if(!empty($dict[$ttts])){
//          echo 'matched = '.$ttts.PHP_EOL;
            $matched = true;
            $c_bg += $i;
            if(!empty($feature)){
              $feature.=",";
            }
            $feature.=$ttts;
            break;
          }
      }
      if(!$matched){
        $c_bg++;
      }
    }
    echo $feature.PHP_EOL;
}

使用方法:

$query='歡迎訪問腳本之家!腳本之家是國內專業(yè)的網站,提供各種腳本下載及JS、Python、php等編程資料';
extractWords($query,$dict);

運行結果:

腳本之家,腳本之家,腳本下載 

更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數據結構與算法教程》、《php程序設計算法總結》、《php字符串(string)用法總結》、《PHP數組(Array)操作技巧大全》、《PHP常用遍歷算法與技巧總結》及《PHP數學運算技巧總結

希望本文所述對大家PHP程序設計有所幫助。

相關文章

  • 詳解Laravel制作API接口

    詳解Laravel制作API接口

    API(Application Programming Interface,應用程序編程接口)是一些預先定義的函數,目的是提供應用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內部工作機制的細節(jié)。本文將詳細介紹Laravel制作API接口。
    2021-05-05
  • php+mysqli事務控制實現銀行轉賬實例

    php+mysqli事務控制實現銀行轉賬實例

    這篇文章主要介紹了php+mysqli事務控制實現銀行轉賬,實例分析了事物控制的原理與事物回滾的使用技巧,需要的朋友可以參考下
    2015-01-01
  • 一文詳解php中.env實現原理

    一文詳解php中.env實現原理

    在PHP中,.env文件是一種常見的配置文件格式,用于存儲應用程序的環(huán)境變量,本文將給大家大家詳細的介紹一下php中.env實現原理,文中給出了簡單的示例代碼,需要的朋友可以參考下
    2024-01-01
  • php微信開發(fā)自定義菜單

    php微信開發(fā)自定義菜單

    這篇文章主要為大家詳細介紹了php微信開發(fā)自定義菜單,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-08-08
  • php保存二進制原始數據為圖片的程序代碼

    php保存二進制原始數據為圖片的程序代碼

    得到post過來的二進制原始數據,選擇一個生成路徑及圖片的名字,之后寫入,思路很顯而易見,需要的朋友可以收藏下
    2014-10-10
  • php中html緩存的實現詳解

    php中html緩存的實現詳解

    PHP與HTML中實現緩存可以幫助提高網頁加載速度和減輕服務器負載,本文主要為大家詳細介紹了一些常見的PHP與HTML緩存實現方法,需要的小伙伴可以參考下
    2023-12-12
  • php中unlink()、mkdir()、rmdir()等方法的使用介紹

    php中unlink()、mkdir()、rmdir()等方法的使用介紹

    unlink()函數刪除文件 、mkdir()函數創(chuàng)建目錄、rmdir()函數刪除目錄這些方法在文件相關的處理方法會經常使用到,本文整理了一些,需要的朋友可以了解下
    2012-12-12
  • CodeIgniter圖像處理類的深入解析

    CodeIgniter圖像處理類的深入解析

    本篇文章是對CodeIgniter的圖像處理類進行了詳細的分析介紹,需要的朋友參考下
    2013-06-06
  • PHP函數篇詳解十進制、二進制、八進制和十六進制轉換函數說明

    PHP函數篇詳解十進制、二進制、八進制和十六進制轉換函數說明

    中文字符編碼研究系列第一期,PHP函數篇詳解十進制、二進制、八進制和十六進制互相轉換函數說明,主要掌握各進制轉換的方法,以應用于實際開發(fā)
    2011-12-12
  • php去掉數組的第一個值的兩個函數:array_shift、array_splice

    php去掉數組的第一個值的兩個函數:array_shift、array_splice

    php去掉數組的第一個值的兩種刪除方法:1、使用array_shift()函數刪除數組的第一個值,語法“array_shift($arr)”,會返回被刪除的元素。2、使用array_splice()函數刪除第一個值,語法“array_splice($arr,0,1);”;該函數的第二個和第三個參數可以為負數。
    2022-12-12

最新評論

白沙| 定日县| 兰溪市| 丽水市| 石渠县| 萍乡市| 普兰店市| 双流县| 繁昌县| 宁明县| 乌海市| 神农架林区| 缙云县| 宁城县| 成都市| 德兴市| 定襄县| 大田县| 潞城市| 托克逊县| 军事| 无棣县| 沙湾县| 湖南省| 和林格尔县| 子长县| 兴安盟| 甘孜县| 浠水县| 黑水县| 克什克腾旗| 宁河县| 博客| 三都| 双流县| 安图县| 开鲁县| 阳信县| 三河市| 华容县| 曲阜市|