[C#] 盤古分詞,動態增加字典分詞+詞性

2017-04-11

很久很久以前,寫過透過外部程式去編修字典檔,但是如果要靠程式自己學習,就要自己能夠用程式去新增分詞字典庫,所以這篇是要做這件事情。

我輸入一句話"Hello ,您好,今天主要是來解析的是當麻的杜拜塔!" 字典一定不認識 "當麻"跟 "杜拜",用預設的分詞看看
Image 228

果不其然,不太一樣,對了如果你不知道我在說啥的可以先參考這篇文章,這篇文章是基於 [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");

結果:
Image 229

這樣就按照你要的分詞出來了。

sample source code: https://github.com/donma/PenguSegmentPartOfSpeech


當麻許的超技八 2014 | Donma Hsu Design.