代码
LTP_DATA_DIR = './ltp_data_v3.4.0' # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model`
segmentor = Segmentor() # 初始化实例
segmentor.load(cws_model_path) # 加载模型
words = segmentor.segment(word) # 分词
words_list = list(words) #words_list列表保存着分词的结果
segmentor.release()
pyltp的初始化报错
:
Traceback (most recent call last):
File “test.py”, line 11, in
segmentor = Segmentor() # 初始化实例
TypeError: init(): incompatible constructor arguments. The following argument types are supported:
1. pyltp.Segmentor(model_path: str, lexicon_path: str = None, force_lexicon_path: str = None)
解决1
:这是因为pyltp版本的写法不同,这种segmentor = Segmentor()
写法可以安装pyltp==0.2.1
解决2
pyltp==0.4.0
的写法:不用segmentor = Segmentor()
来进行初始化之后segmentor.load
,而是直接加载模型,如以下代码:
from pyltp import Segmentor
LTP_DATA_DIR = './ltp_data_v3.4.0' # ltp模型目录的路径
cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型
segmentor = Segmentor(cws_model_path)
words = segmentor.segment("元芳你怎么看")
print("|".join(words))
segmentor.release()