哈工大分詞器中自定義詞典的使用


首先在/usr/local/ltp下放置一個詞典,我為了測試就叫userdict.txt ,里面有三個詞:
解空間
深度優先
根節點

先測試加入自定義詞典時的效果:

py@ubuntu:/usr/local/ltp$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import os
>>> from pyltp import Segmentor
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf-8')
>>> model_path = "/usr/local/ltp/cws.model"
>>> user_dict = "/usr/local/ltp/userdict.txt"
>>> segmentor = Segmentor()
>>> segmentor.load_with_lexicon(model_path, user_dict)
[INFO] 2017-09-04 23:23:24 loaded 3 lexicon entries
>>> sent = "在包含問題的所有解的解空間樹中,按照深度優先搜索的策略,從根節點出發深度探索 解空間樹。"
>>> words = segmentor.segment(sent)
>>> print '\t'.join(words)
在    包含    問題    的    所有    解    的    解空間    樹    中    ,    按照    深度優先    搜索    的    策略    ,    從    根節點    出發    深度    探索    解空間    樹    。


沒加自定義詞典時的效果:
py@ubuntu:/usr/local/ltp$ python
Python 2.7.12 (default, Nov 19 2016, 06:48:10)
[GCC 5.4.0 20160609] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> import os
>>> reload(sys)
<module 'sys' (built-in)>
>>> sys.setdefaultencoding('utf-8')
>>> model_path = "/usr/local/ltp/cws.model"
>>> segmentor = Segmentor()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'Segmentor' is not defined
>>> from pyltp import Segmentor
>>> segmentor = Segmentor()
>>> segmentor.load(model_path)
>>> words = segmentor.segment("在包含問題的所有解的解空間樹中,按照深度優先搜索的策略,從根節點出發深度探索 解空間樹。")
>>> print '\t'.join(words)
在    包含    問題    的    所有    解    的    解    空間    樹    中    ,    按照    深度    優先    搜索    的    策略    ,    從    根節點    出發    深度    探索    解    空間    樹    。


從結果看加與不加自定義詞典是顯而易見的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM