自定義 SCWS 詞庫(kù)

2019-08-14 14:05 更新

如之前所說(shuō),我們所有的索引分詞器默認(rèn)為 scws,這也是我們開(kāi)發(fā)的開(kāi)源分詞系統(tǒng), 內(nèi)置的詞庫(kù)基本上能滿足絕大多數(shù)應(yīng)用。但總有例外,這也就是即將說(shuō)的如何自定義詞庫(kù)。

1. 全局自定義詞庫(kù)

這是針對(duì)同一個(gè) xunsearch 安裝實(shí)例來(lái)講,該服務(wù)端下的所有項(xiàng)目都將共用這個(gè)自定義詞庫(kù)。 嚴(yán)格來(lái)講,這是 SCWS 本身就提供的功能,xunsearch 只是做了整合和規(guī)范。涉及的相關(guān)文件如下 (假設(shè) $prefix 是您的安裝目錄)

$prefix/etc/dict_user.txt

打開(kāi)上述文件,文件開(kāi)頭已經(jīng)有了相關(guān)注釋和說(shuō)明。這個(gè)文件就是自定義詞庫(kù)文件, 如果您同一臺(tái)機(jī)器上裝有多個(gè) xunsearch 服務(wù)端,那么每個(gè)服務(wù)端獨(dú)自使用自己的自定義詞典文件。

添加刪除修改自定義詞庫(kù)只要編輯該文件即可,以下為相關(guān)規(guī)范:

  • 文件為純文本文件,編碼必須是 UTF-8,可用任何編輯器修改

  • 每行一條記錄表示一個(gè)詞,每行包含 1~4 個(gè)字段,字段之間用空格或制表符(\t)分隔

  • 字段含義依次表示 “詞語(yǔ)”,“詞頻(TF)”,“逆詞頻率(IDF)”,“詞性(ATTR)”

  • 后面三個(gè)字段如果省略依次使用 scws 的默認(rèn)值

  • 特殊詞性 ! 可用于表示刪除該詞

  • 自定義詞典優(yōu)先于內(nèi)置詞典加載和使用,以 # 開(kāi)頭的行為注釋

Note: 該功能自 1.2.0 版本起方可使用,源自網(wǎng)友建議。

2. 項(xiàng)目自定義詞庫(kù)

某些情況下,不同的項(xiàng)目需要不同的特殊詞庫(kù)。每個(gè)搜索項(xiàng)目的自定義詞庫(kù)文件如下:

$prefix/data/項(xiàng)目名稱/dict_user.txt

文件內(nèi)容及格式與全局自定義詞庫(kù)是一致的,在此不再贅述。此外,這個(gè)文件還可以通過(guò)相關(guān)的 SDK API 讀取和修改。

  • XSIndex::getCustomDict 讀取當(dāng)前項(xiàng)目的自定義詞庫(kù)內(nèi)容,若不存在則返回空字符串

  • XSIndex::setCustomDict 設(shè)置當(dāng)前項(xiàng)目的自定義詞庫(kù)內(nèi)容,格式參見(jiàn)上面文檔

Note: 該功能自 1.3.4 版本起方可使用。


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)