Thinkphp 3 2 中詞分詞 加權搜尋

2022-07-13 10:36:09 字數 809 閱讀 7205

在我的**中,中文分詞使用的是scws分詞系統,這個分詞系統提供php兩種使用方式:一種是你可以採用原始碼安裝,具體安裝步驟請參考這裡;

另外一種是使用其提供的api介面,具體方法參考這裡。

scws系統中其每個分好的詞包括以下屬性/鍵值:

word 詞的內容

off 該詞在未分詞文字中的偏移位置

idf 該詞的 idf 值

attr 詞性 (北大標註格式) 參見這裡。

在這裡我們重點介紹下分詞屬性中的idf,這個是我們在我們的分詞演算法中需要用到的。

idf全稱inverse document frequency(逆向文件頻率)是乙個詞普遍重要性的度量,某一特定詞的idf值,用總檔案數除以包含該詞的文章數量,再將得到的商取對數(log)。計算公式:idf = log(d/dt),d為文章總數,dt為該詞出現的文章數量。idf的主要思想是:如果包含詞條t的文件越少,也就是dt越小,idf越大,則說明詞條t具有很好的類別區分能力。

我們舉例說明下,如 搜尋內容 」復仇者的聯盟「,其scws的分詞結果如下:

當然,更複雜的分詞還要考慮詞的詞頻tf,不過即使簡單的這樣,我們也基本能達到比較好的效果了,具體效果,大家可以到體驗下。

ThinkPHP3 2 分頁實現

o 先看效果圖 一 分頁方法 todo 基礎分頁的相同 封裝,使前台的 更少 param m 模型,引用傳遞 param where 查詢條件 param int pagesize 每頁查詢條數 return think page function getpage m,where,pagesize ...

thinkphp3 2搭配scws做中文分詞案例

之前專案裡簡單的搜尋一般都是使用搜尋詞直接like查詢,今天客戶反饋搜尋結果有點不理想,就是有兩篇文章的標題分別是廣東省領軍人物balabala 東莞市領軍人物balabala,使用者搜尋省領軍的時候由於使用的是like去匹配,所以是搜尋不出來這兩篇文章的,而客戶想要的是這兩篇文章都要搜出來,前幾天...

ThinkPHP3 2 驗證隨記

自動完成 靜態方式 在模型類裡面通過 auto屬性定義處理規則。動態方式 使用模型類的auto方法動態建立自動處理規則。自動驗證 靜態方式 在模型類裡面通過 validate屬性定義驗證規則。動態方式 使用模型類的validate方法動態建立自動驗證規則。定義格式為 array array 驗證欄位...