TrieTree服務(wù)-組件構(gòu)成及其作用介紹
上一篇中我們對TrieTree服務(wù)有了一個整體的了解,不知道大家下載完之后有沒有真正玩過這個TrieTree服務(wù),如果你還沒有玩過,沒關(guān)系,本文將一步步教你配置和使用TrieTree服務(wù)。
TrieTree服務(wù)由幾大組件組成,如下圖
Dictionary組件是核心庫,主要提供基本數(shù)據(jù)定義、配置信息定義,數(shù)據(jù)結(jié)構(gòu)表示,同時也提供了POSType(參考Pangu的Part of Speech定義)。由于TrieTree是利用內(nèi)存來加載數(shù)據(jù)的,所以這個組件的設(shè)計直接決定了內(nèi)存的占用大小和數(shù)據(jù)查詢性能。Dictionary.Providers組件主要負責(zé)提供各種自定義數(shù)據(jù)提供者(DataProvider),你可以把它理解為字典數(shù)據(jù)的加載器,例如自帶的PanguDictProviders就是負責(zé)加載盤古自己的dict格式的字典。TrieTree服務(wù)的加載器是高度可配置的,你可以通過配置文件來選擇你需要使用的加載器,如下所示:
<dictionaryService>
<provider name="pangu_dict" uri="F:\Dropbox\research\NLP\TrieTreeService\DictionaryService.UnitTest\Data\panguDict.dct" type="BluePrint.Dictionary.Providers.PanguDictProvider, BluePrint.Dictionary.Providers" />
<provider name="IKdict" uri="F:\Dropbox\research\NLP\TrieTreeService\DictionaryService.UnitTest\Data\IKdict.dic" type="BluePrint.Dictionary.Providers.TxtFileProvider, BluePrint.Dictionary.Providers"/>
</dictionaryService>
上面這個配置選擇了2個加載器,分別是PanguDictProvider、TxtFileProvider(純文本格式加載器,你可以理解為.csv字典加載器),這里的TxtFileProvider是用來加載IKAnalyzer中的IKdict.dic文件的。在服務(wù)啟動后(調(diào)試模式)你會看到類似的提示:
TrieTree中由于使用了log4net的ColoredConsoleAppender,所以能夠顯示不同顏色的提示信息。你會看到日志中有pangu_dict和IKdict的加載時間,這里的名字是由app.config中的provider的name屬性設(shè)置的。其實TrieTree也是支持加載基于MongoDB的字典的,只是由于牽扯到相對復(fù)雜的MongoDB的配置和一些概念,就不在本文中講解了,我會考慮在之后的教程中提供。
DictionaryService組件是TrieTree服務(wù)的容器組件,主要包含了Windows服務(wù)的實現(xiàn),還有Windows服務(wù)的安裝器。這個組件是一個控制臺程序,它為用戶提供了兩種運行模式——調(diào)試模式和Service模式。調(diào)試模式就是直接運行控制臺,提供基于log4net的日志信息,方便調(diào)試和斷點;而Service模式是直接運行為一個Windows服務(wù),主要用于測試與生產(chǎn)環(huán)境。由于是控制臺程序,切換模式是通過參數(shù)完成的,例如-i 表示安裝windows服務(wù),-u表示卸載windows服務(wù), -c表示啟動控制臺模式。
以上便是TrieTree服務(wù)的三大核心組件,但我還打算介紹一個非常實用的附加組件DictionaryQuery。
雖然名字也叫查詢分析器,但其實和SQL的查詢分析器不是一個級別的,你不用去比較,沒啥意思。這東西主要是兩個作用,第一,測試TrieTree服務(wù)的運行情況;第二,檢查加載字典后字典中的詞的狀態(tài)。你也可以用右側(cè)的POS過濾器進行篩選,多選表示或的關(guān)系,比如你選擇了地名和人名,你搜索“上海”,結(jié)果是“上海, 頻率:251, 類型:地名(A_NS)”,如果找不到的話會顯示紅色的“未找到合適詞”,如下所示。
你還可以選擇匹配的方式,即最大正向匹配、最大反向匹配和完全匹配,這個就不用我多解釋了吧。對了,運行這玩意之前字典服務(wù)必須打開,且你要指向你配置的TrieTree服務(wù)的端口,默認是7010,圖中配置的是dict://127.0.0.1:7010,注意字典服務(wù)的URI是以dict://開頭的。
相關(guān)文章
WEB在模態(tài)窗體里導(dǎo)出或下載文件功能代碼
實現(xiàn)在模態(tài)窗體里導(dǎo)出或下載文件,具體功能代碼如下,感興趣的朋友可以參考下哈2013-06-06Ajax Throws Sys.WebForms.PageRequestManagerErrorException wi
注冊腳本: ScriptManager.RegisterStartupScript(this, typeof(string), "Message", "alert('error message');", true); 即可解決,困惑了我一下午。2008-11-11ASP.NET 計劃任務(wù)實現(xiàn)方法(不使用外接程序,.net內(nèi)部機制實現(xiàn))
在asp.net中要不使用其他插件的情況下只能使用定時器來檢查, 并執(zhí)行任務(wù).2011-09-09ASP.Net中英文復(fù)合檢索文本框?qū)崿F(xiàn)思路及代碼
前段時間,寫一個用戶部門的管理頁面,需要對后臺獲取的用戶數(shù)據(jù)實現(xiàn)英漢檢索功能于是就有了下文,編輯的很詳細圖文并茂呢?感興趣的你可不要錯過了哈,或許本文對你有所幫助呢2013-02-02使用VS2022在ASP.NET?Core中構(gòu)建輕量級服務(wù)
本文詳細講解了使用VS2022在ASP.NET?Core中構(gòu)建輕量級服務(wù)的方法,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-12-12ASP.NET連接數(shù)據(jù)庫并獲取數(shù)據(jù)方法總結(jié)
這篇文章主要介紹了ASP.NET連接數(shù)據(jù)庫并獲取數(shù)據(jù)方法,結(jié)合實例分析總結(jié)了ASP.NET連接數(shù)據(jù)庫及獲取數(shù)據(jù)的相關(guān)實現(xiàn)技巧,并附帶了web.config配置文件的使用方法與相關(guān)注意事項,需要的朋友可以參考下2015-11-11