首页 > 其他分享 >ltp模型报错 model no loded

ltp模型报错 model no loded

时间:2024-06-04 15:33:01浏览次数:18  
标签:ltp no pos 报错 words print path model array

 打印了一下路径。莫名奇妙的路径,在网上找了很久的答案,丢是说这个路径的符号有问题改一下试试吧

 

后面有查到说的是不能中文路径,我觉得很奇怪,因为我新建了一个test文件来测试,那个文件中的模型路径采用的是当前的文件路径:并且运行成功了

但是我在想,他会不会因为我这个项目里面有中文,所以不成功,但是我的测试文件也在项目里面,两个路径用的是一模一样,然后我想着算了吧弄个心得没有中文的路径试试看

 然后我又重新把模型解压到心得文件里面,这下算是成功了,虽然成功了但是我还是没想明白,不过还是奉劝大家,在另一个文件里面调用的时候最好给每个函数里面都加上模型路径,因为其他文件调用的是函数,不过上面定义的是全局变量啊哭,搞不明白了我真的好乱,家人们有明白的能给我讲讲吗哭:

我把代码放下面:

这个是被调用的,使用绝对路径的:

# -*- 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)

测试文件怎么着都能调用成功:

上面的全路径文件是在另一个文件中调用函数:

 

标签:ltp,no,pos,报错,words,print,path,model,array
From: https://www.cnblogs.com/222wan/p/18230861

相关文章

  • AttributeError: module 'numpy' has no attribute 'sqrt';
    我已经将numpy和python安装到了最新版本。Iamworkingontermuxandroid12......
  • .netCore System.Drawing.Common 发布,在CentOS 运行报错,生成图片流时。会因为不支持在
    报错:System.PlatformNotSupportedException:System.Drawing.Commonisnotsupportedonnon-Windowsplatforms.Seehttps://aka.ms/systemdrawingnonwindowsformoreinformation. >System.PlatformNotSupportedException:System.Drawing.Commonisnotsupported......
  • Dated Data: Tracing Knowledge Cutoffs in Large Language Models
    本文是LLM系列文章,针对《DatedData:TracingKnowledgeCutoffsinLargeLanguageModels》的翻译。日期数据:追踪大型语言模型中的知识截断摘要1引言2相关工作3方法4结果5为什么模型与截止日期不一致?6结论摘要已发布的大型语言模型(LLM)通常与声称的......
  • 使用NVM实现不同nodejs版本切换
    在工作中,我们可能需要同时进行多个不同NodeJS版本的项目开发,这种情况下,对于维护多个版本的node将会是一件非常麻烦的事情,NVM就是为解决这个问题而产生的,本文给出了下载、安装及使用方法,需要的朋友可以参考下第一:NVM下载安装包地址:https://github.com/coreybutler/nvm-wind......
  • can not find lambda cache for this property [] of entity
    这个错误通常出现在使用Hibernate或者类似ORM框架时,当框架尝试缓存一个实体的属性,但是找不到对应的缓存时。这个错误表明框架无法为实体中名为adnm的属性找到合适的缓存机制。解决这个问题的方法通常包括以下几个步骤:确认该属性是否确实存在于实体中,并且已经正确地注解了。如果......
  • 如何解决 Python 中的 AttributeError: module 'serial' has no attribute 'Serial'
    解决Python中的AttributeError:module'serial'hasnoattribute'Serial'错误最近在使用Python进行串口通信时,我遇到了一个常见的错误:AttributeError:module'serial'hasnoattribute'Serial'。这个错误让我很困惑,但通过一番搜索和尝试,我终于解决了这个问题。问题......
  • 使用ansible自动化安装MySQL8的mysql-router+mysql-shell+mysql架构InnoDB ReplicaSet
    【说明】当前数据库MySQLCommunityServer8.4.0LTS版本已经发行,使用InnoDBReplicaSet架构自动化搭建 【自动化安装】使用ansible安装mysql-router+mysql-shell+mysqltreemysql8/mysql8/├──mysql_ms.yaml└──roles└──mysql_ms├──tasks......
  • 关于linux 系统inode快耗尽问题处理!
    一、inode是什么?要想理解inode,要从文件储存说起。文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"......
  • MySql 使用 NOT IN 返回值包含null值,返回数据不全
      mysqlnotin()找不到nullstatusnin('100','200','300','500')换成statusin('400')isnottrue      来源:https://blog.csdn.net/qq_35387940/article/details/127959272?spm=1001.2101.3001.6650.17&......
  • Node.js技术详解与前端工程化应用
    目录Node.js技术详解与前端工程化应用一、什么是Node.jsNode.js的作用什么是前端工程化Node.js为什么能执行JS二、Node.js的安装及使用步骤Node.js安装步骤使用Node.js2.1介绍fs模块2.2介绍path模块2.3介绍URL中的端口号2.4介绍http模块-创建Web服务三、Node.js模......