ltp模型报错 model no loded
打印了一下路径。莫名奇妙的路径,在网上找了很久的答案,丢是说这个路径的符号有问题改一下试试吧
后面有查到说的是不能中文路径,我觉得很奇怪,因为我新建了一个test文件来测试,那个文件中的模型路径采用的是当前的文件路径:并且运行成功了
但是我在想,他会不会因为我这个项目里面有中文,所以不成功,但是我的测试文件也在项目里面,两个路径用的是一模一样,然后我想着算了吧弄个心得没有中文的路径试试看
然后我又重新把模型解压到心得文件里面,这下算是成功了,虽然成功了但是我还是没想明白,不过还是奉劝大家,在另一个文件里面调用的时候最好给每个函数里面都加上模型路径,因为其他文件调用的是函数,不过上面定义的是全局变量啊哭,搞不明白了我真的好乱,家人们有明白的能给我讲讲吗哭:
我把代码放下面:
这个是被调用的,使用绝对路径的:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 | # -*- coding: utf-8 -*- import pyltp import os def cut_words(words): from pyltp import Segmentor import os LTP_DATA_DIR = '..\itp\ltp_data_v3.4.0' # ltp模型目录的路径 # cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model` cws_model_path = 'D:/python/ltp_data_v3.4.0/cws.model' print (cws_model_path) # segmentor = Segmentor(seg_model_path) # words = segmentor.segment(words) # segmentor.release() # print("words:", words) segmentor = Segmentor(cws_model_path) # 初始化实例 # segmentor.load(cws_model_path) # 加载模型 words = segmentor.segment(words) # 分词 # print(list(words)) # print(words) return words def words_mark(array): import os from pyltp import Postagger LTP_DATA_DIR = '..\itp\ltp_data_v3.4.0' # ltp模型目录的路径 # pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model') # 词性标注模型路径,模型名称为`pos.model` pos_model_path = 'D:/python/ltp_data_v3.4.0/pos.model' print (pos_model_path) postagger = Postagger(pos_model_path) # 初始化实例 # postagger.load(pos_model_path) # 加载模型 postags = postagger.postag(array) # 词性标注 pos_str = ' ' .join(postags) pos_array = pos_str.split( " " ) postagger.release() # 释放模型 print ( "pos_array:" , pos_array) return pos_array def get_target_array(words): import os target_pos = [ 'nh' , 'n' ] target_array = [] seg_array = cut_words(words) print ( "seg_array:" , seg_array) pos_array = words_mark(seg_array) for i in range ( len (pos_array)): if pos_array[i] in target_pos: target_array.append(seg_array[i]) return target_array |
这个是我用来测试的文件:
1 # -*- coding: utf-8 -*- 2 import os 3 4 5 6 # print(os.getcwd()) 7 LTP_DATA_DIR = 'D:\python\ltp_data_v3.4.0' # ltp模型目录的路径 8 cws_model_path = os.path.join(LTP_DATA_DIR, 'cws.model') # 分词模型路径,模型名称为`cws.model` 9 pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model') 10 print(cws_model_path) 11 print(pos_model_path) 12 13 from pyltp import Segmentor, Postagger 14 15 def test1(): 16 segmentor = Segmentor(cws_model_path) # 初始化实例 17 words = segmentor.segment('王熙凤的爸爸是谁') # 分词 18 19 print(words) 20 print('\t'.join(words)) 21 22 segmentor.release() # 释放模型 23 postagger = Postagger(pos_model_path) # 初始化实例 24 postags = postagger.postag(words) # 词性标注 25 pos_str = ' '.join(postags) 26 pos_array = pos_str.split(" ") 27 postagger.release() # 释放模型 28 print(pos_array)
测试文件怎么着都能调用成功:
上面的全路径文件是在另一个文件中调用函数:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了