[C#] 盤古分詞,動態增加字典分詞+詞性
2017-04-11
很久很久以前,寫過透過外部程式去編修字典檔,但是如果要靠程式自己學習,就要自己能夠用程式去新增分詞字典庫,所以這篇是要做這件事情。
我輸入一句話"Hello ,您好,今天主要是來解析的是當麻的杜拜塔!" 字典一定不認識 "當麻"跟 "杜拜",用預設的分詞看看
果不其然,不太一樣,對了如果你不知道我在說啥的可以先參考這篇文章,這篇文章是基於 [C#] 盤古分詞,尋找句子中的分詞+詞性, 接下來就是加入新的分詞的部分,因為我要對當麻 這本身是一個人名所以用的是 POS.POS_A_NR ,杜拜是地名 POS.POS_A_NS ,這時候我們必須要先把字典檔Load 出來。
C# Code:
PanGu.Dict.WordDictionary w = new PanGu.Dict.WordDictionary(); w.Load(AppDomain.CurrentDomain.BaseDirectory + "bin" + Path.DirectorySeparatorChar + "Dict" + Path.DirectorySeparatorChar + "Dict.dct");
在來就是加入分詞的部分 :
//人名 w.InsertWord("當麻", 500, POS.POS_A_NR); //地名 w.InsertWord("杜拜", 500, POS.POS_A_NS);
之後記得再把字典檔再存回去:
w.Save(AppDomain.CurrentDomain.BaseDirectory + "bin" + Path.DirectorySeparatorChar + "Dict" + Path.DirectorySeparatorChar + "Dict.dct");
這樣就按照你要的分詞出來了。
sample source code: https://github.com/donma/PenguSegmentPartOfSpeech
標籤:
ASP.net
,
C#
,
Lucene.net
-- Yesterday I wrote down the code. I bet I could be your hero. I am a mighty little programmer. 如果這篇文章有幫助到您,簡單留個言,或是幫我按個讚,讓我有寫下去的動力...