pyltp的初始化报错:segmentor = Segmentor() # 初始化实例TypeError: __init__(): incompatible constructor argument

代码

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()
  • 19
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值