【会话文本nlp】对话文本解析库pyconverse使用教程版本报错、模型下载等问题解决超参数调试

news2024/11/17 20:21:23

前言:
此篇博客用于记录调用pyconverse库解析对话文本时遇到的问题与解决思路,以供大家参考。

文章目录

  • pycoverse介绍
  • 代码github链接
  • 问题解决
    • 1 [cannot import name ‘cached_download‘ from ‘huggingface_hub‘ 问题解决](https://blog.csdn.net/weixin_41492426/article/details/143215577)
    • 2 [ModuleNotFoundError: No module named ‘huggingface_hub.snapshot_download‘](https://blog.csdn.net/weixin_48030475/article/details/134940914)
    • 3 [Python 解决报错:OSError: [E050] Can‘t find model ‘en_core_web_md‘. It doesn‘t seem to b](https://blog.csdn.net/qq_45956730/article/details/129109559)
    • 4 模型下载失败问题
      • 4.1 先到官网下载模型
      • 4.2 替换成模型下载后位置
    • 5 [nltk 报错](https://blog.csdn.net/zhq426/article/details/102838084)
  • 运行结果截图展示
    • 常见文本解析基本功能
    • 文本分段参数调试
  • 心得

pycoverse介绍

对话分析在塑造金融/联络中心等各个行业的卓越客户体验方面发挥着越来越重要的作用,主要是为了更深入地了解客户,更好地满足他们的需求。这个名为PyConverse的库试图提供工具和方法,可以使用各种NLP技术从多个角度理解对话。

在哪里可以使用pycoverse?

主要用例面向呼叫中心呼叫分析,但Converse提供的大多数工具也可以在其他地方使用。
每一次通话中都隐藏着许多见解,Converse使您能够提取这些见解,并从运营效率、代理效率和监控客户体验等角度计算各种关键绩效指标。
如果你想回答这样的问题:
	1.发言者在对话中表现出的总体情绪是什么?
	2.代理商和客户之间是否有过死气沉沉的时期(沉默期)?如果是,多少钱?
	3.客服对客户有同理心吗?
	4.平均代理响应时间/平均保持时间是多少?
	5.通话中说了什么?

pycoverse可以做什么?

 1. 情绪识别
 2. 移情陈述识别
 3. 对通话文本分段
 4. 从通话片段中识别话题
 5. 计算各种类型的发言人属性:
	1. 语言属性,如:字数/每句话的字数/否定词等。
	2. 识别沉默和打断的时段
	3. 问题识别(识别疑问句)
	4. 识别无意义的语气词、助词等
 6. 通过语言属性评估说话者的整体性质,并判断说话者是否:
	1.健谈,口语流利
	2.非正式/个人/社交
	3.目标导向或前瞻/着眼未来/关注过去
	4.识别抑制因素
 7.文本摘要(抽象摘要)

代码github链接

converse代码库

【converse代码云盘下载链接】
下载链接: https://caiyun.139.com/m/i?2i3pdpZud0agc 提取码:okvg 复制内容打开中国移动云盘手机APP,操作更方便哦

问题解决

1 cannot import name ‘cached_download‘ from ‘huggingface_hub‘ 问题解决

如下,安装huggingface_hub==0.25.2即可解决

pip install huggingface_hub==0.25.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

2 ModuleNotFoundError: No module named ‘huggingface_hub.snapshot_download‘

报这个错需要升级setence-transformers版本,setence-transformers=2.6不会报错。
但由于pyconverse中需要setence-transformers=2.1,因此我的解决方法是:

在源码site-packages/sentence-transformers/utils.py中,注释掉:
from huggingface_hub.snapshot_download import REPO_ID_SEPARATOR

(不使用远程下载模型,而是自己去官网的镜像地址下载模型,参考4)
在这里插入图片描述

3 Python 解决报错:OSError: [E050] Can‘t find model ‘en_core_web_md‘. It doesn‘t seem to b

报这个错是因为没有安装en_core_web_sm,直接安装en_core_web_sm包即可,由于pyconverse要求Spacy=2.3.5,需要对应en_core_web_sm版本为2.3.0,这里直接给出下载地址:

【en_core_web_sm 2.3.0.tar.gz云盘下载链接】
链接: https://caiyun.139.com/m/i?2i3pdmZfU3Mou 提取码:koss 复制内容打开中国移动云盘手机APP,操作更方便哦
【en_core_web_sm 3.3.0.tar.gz云盘下载链接】
链接: https://caiyun.139.com/m/i?2i3pdJ0QDDfbh 提取码:fgr3 复制内容打开中国移动云盘手机APP,操作更方便哦

下载后,直接pip install en_core_web_sm 2.3.0.tar.gz即可!

4 模型下载失败问题

解决报错“OSError: We couldn‘t connect to ‘https://huggingface.co‘ to load this file”
我的解决方法是:

4.1 先到官网下载模型

https://hf-mirror.com/

在这里插入图片描述

  • all-MiniLM-L6-v2下载:
    在这里插入图片描述
  • valhalla/distilbart-mnli-12-6下载:

在这里插入图片描述

4.2 替换成模型下载后位置

在源码site-packages/pyconverse/utils.py中,将模型位置替换成自己下载后的模型位置,如:
/mnt/d/model_repository/all-MiniLM-L6-v2
/mnt/d/model_repository/valhalla/distilbart-mnli-12-6

注:我是将下载后的模型路径直接写死(虽然不太优雅) ,不通过传参的形式,否则会报错
model = SentenceTransformer(model_name_or_path='/mnt/d/model_repository/all-MiniLM-L6-v2')

在这里插入图片描述

5 nltk 报错

  • 原因是需要下载stopwords.zip,存放到具体位置:
\\wsl.localhost\Ubuntu-22.04\home\yhy\nltk_data\corpora\stopwords.zip
  • 关于存放位置的查看:
打开交互式命令行,输入:
>>> import nltk
>>> nltk.download()

在这里插入图片描述

注意:
将下载器里的serverIndex 
https://raw.githubusercontent.com/nltk/nltk_data/gh-pages/index.xml
改为: 
http://www.nltk.org/nltk_data/

在这里插入图片描述

如上,Download Directory中的位置即为我们的存放位置!

【stopwords.tip云盘下载链接】
链接: https://caiyun.139.com/m/i?2i3pd9YmUq98u 提取码:jn4g 复制内容打开中国移动云盘手机APP,操作更方便哦

运行结果截图展示

常见文本解析基本功能

  • 找寻电话文本中被打断和沉默的片段
    在这里插入图片描述

  • 找寻电话文本中的语气词/助词
    在这里插入图片描述

  • 找出疑问句式
    在这里插入图片描述

  • 获取语句的情绪
    在这里插入图片描述

  • 获取/分析每个说话人的心理相关性
    在这里插入图片描述

  • 将电话内容分割成更大的文本块(通过语句语义相似性和文本挖掘算法)
    注:此处超参数为默认设置,即w=15,k=10(超参数设置在文章下一部分会提到)
    在这里插入图片描述

文本分段参数调试

可以理解为一个聚类算法,聚类中心数量需要人为指定。此处文本分段需要调试的超参数为w和k【其中w为初始“伪句子块”的固定大小,k为块比较方法中使用的块的大小(以句子为单位)】

在这里插入图片描述
如下,为m=100,k=90时,模型输出的文本分段结果:(可以发现分段数量明显减少,因为初始分块颗粒度增大了,可以理解为聚类中心数量减少了)
在这里插入图片描述

关于m和k的选择需要根据需求、实际情况和实验验证来决定!(我目前也在探索中)

心得

  1. 调用别人写好开源的python包,受到各种版本制约,必要时可以调整源码;
  2. 由于debug时可能无法进入到库函数源码,调试时可以在源库中添加print语句(现在有很多开源包,比如:专门用于文本分析、情感分析的包,版本也不一定稳定)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2242381.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

单元测试时报错找不到@SpringBootConfiguration

找到问题出现原因: 错误表示 Spring Boot 在运行测试时无法找到 SpringBootConfiguration 注解。 通常,SpringBootTest注解用于加载 Spring Boot 应用上下文,但它需要找到一个带有SpringBootConfiguration(或者Configuration&am…

【数据结构】11.哈夫曼树哈夫曼编码

一、哈夫曼树的基本概念 哈夫曼(Huffman)树又称最优树,是一类带权路径长度最短的树,在实际中有广泛的用途。 路径: 从树中一个节点到另一个节点之间的分支构成这两个节点之间的路径。路径长度: 路径上的分…

AntD表单自定义组件

前言 表单可以说是前端最常见的一种组件,特别是在进行搜索的时候使用的最频繁,自定义表单组件,丰富了搜索框的类型,使数据展现的更灵活 内容讲解 1、官方介绍 AntD-Formhttps://ant.design/components/form-cn#form-demo-cust…

day-83 最少翻转次数使二进制矩阵回文 II

思路 关键在于1的个数要为4的倍数,首先镜像的四个位置肯定一定为4的倍数,如果行和列为奇数则需要单独考虑,如果行和列皆为奇数,那么中心的那个数一定为0 解题过程 再单独考虑如果行和列为奇数,具体参考灵神。如果diff…

Gitcode文件历史记录查看和还原

文件历史记录 文件历史记录用于记录代码文件的更改历史,它允许用户查看文件的不同版本,了解每个版本的修改内容、作者和提交消息。这对于跟踪文件演进、恢复错误更改、审查代码以及了解项目进展都非常有用。 文件历史记录功能提供了以下核心功能&#…

WebSocket协议在Java中的整合

1. 常见的消息推送方式 2.WebSocket API 3.基于WebSocket的实战(实时聊天室) 这里以解析后端代码为主,前端不作为重点,若想复现项目,请从作者的仓库中拉取代码 WebSocket-chatRoom: 基于WebSocket协议实现一个简单的…

http自动发送请求工具(自动化测试http请求)

点击下载《http自动发送请求工具(自动化测试http请求)》 前言 在现代软件开发过程中,HTTP 请求的自动化测试是确保应用程序稳定性和可靠性的关键环节。为了满足这一需求,我开发了一款功能强大且易于使用的自动化 HTTP 请求发送工具。该工具基于 C# 开发…

【小白可懂】微信小程序---课表渲染

结果展示:(代码在最后) WeChat_20241116174431 项目简介 在数字化校园建设的大背景下,为了更好地服务于在校师生,我们开发了一款基于微信小程序的课表管理系统。该系统采用了现代化的前端技术和优雅的设计风格&#x…

WinDefender Weaker

PPL Windows Vista / Server 2008引入 了受保护进程的概念,其目的不是保护您的数据或凭据。其最初目标是保护媒体内容并符合DRM (数字版权管理)要求。Microsoft开发了此机制,以便您的媒体播放器可以读取例如蓝光,同时…

LabVIEW前面板最大化显示与像素偏差分析 有源程序附件

LabVIEW前面板最大化显示与像素偏差分析 有源程序附件 LabVIEW前面板最大化显示与像素偏差分析 有源程序附件 - 北京瀚文网星科技有限公司 这个VI用于将LabVIEW程序的前面板最大化地显示在指定显示器上,实现步骤如下: 1. 获取所有显示器的信息 首先&…

【C++】深入理解 C++ 优先级队列、容器适配器与 deque:实现与应用解析

个人主页: 起名字真南的CSDN博客 个人专栏: 【数据结构初阶】 📘 基础数据结构【C语言】 💻 C语言编程技巧【C】 🚀 进阶C【OJ题解】 📝 题解精讲 目录 前言📌 1. 优先级队列、容器适配器和 deque 概述✨1.1 什么是优…

LogViewer NLog, Log4Net, Log4j 文本日志可视化

LogViewer 下载 示例&#xff1a;NLog文本日志可视化软件&#xff0c;并且能够实时监听输出最新的日志 nlog.config 通过udp方式传输给LogViewer (udp://ip:port) <?xml version"1.0" encoding"utf-8" ?> <nlog xmlns"http://www.nlog-…

安卓开发作业

整体效果: 安卓小作业 [TOC](页面配置) 整体框架有4个fragment页面,聊天,朋友,发现,设置. 配置如下: bash <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android" xm…

【QML】QML多线程应用(WorkerScript)

1. 实现功能 QML项目中&#xff0c;点击一个按键后&#xff0c;运行一段比较耗时的程序&#xff0c;此时ui线程会卡住。如何避免ui线程卡住。 2. 单线程&#xff08;会卡住&#xff09; 2.1 界面 2.2 现象 点击delay btn后&#xff0c;执行耗时函数&#xff08;TestJs.func…

深度学习中的Pixel Shuffle和Pixel Unshuffle:图像超分辨率的秘密武器

在深度学习的计算机视觉任务中&#xff0c;提升图像分辨率和压缩特征图是重要需求。Pixel Shuffle和Pixel Unshuffle是在超分辨率、图像生成等任务中常用的操作&#xff0c;能够通过转换空间维度和通道维度来优化图像特征表示。本篇文章将深入介绍这两种操作的原理&#xff0c;…

pom中无法下载下来的类外部引用只给一个jar的时候

比如jar在桌面上放着,操作步骤如下&#xff1a; 选择桌面&#xff0c;输入cmd ,执行mvn install:install-file -DgroupIdcom -DartifactIdaspose-words -Dversion15.8.0 -Dpackagingjar -Dclassifierjdk11 -Dfilejar包名称 即可把jar包引入成功。

群控系统服务端开发模式-应用开发-前端图片格式功能开发

一、添加视图 在根目录下src文件夹下views文件夹下param文件夹下grade文件夹下&#xff0c;新建index.vue&#xff0c;代码如下 <template><div class"app-container"><div class"filter-container" style"float:left;"><…

【Web前端】Promise的使用

Promise是异步编程的核心概念之一。代表一个可能尚未完成的操作&#xff0c;并提供了一种机制来处理该操作最终的成功或失败。具体来说&#xff0c;Promise是由异步函数返回的对象&#xff0c;能够指示该操作当前所处的状态。 当Promise被创建时&#xff0c;它会处于“待定”&a…

EEG+EMG学习系列 (2) :实时 EEG-EMG 人机界面的下肢外骨骼控制系统

[TOC]( EEGEMG学习系列(2):实时 EEG-EMG 人机界面的下肢外骨骼控制系统) 论文地址&#xff1a;https://ieeexplore.ieee.org/abstract/document/9084126 论文题目&#xff1a;Real-Time EEG–EMG Human–Machine Interface-Based Control System for a Lower-Limb Exoskeleton …

Spring Authorization Server OAuth2.1

Spring Authorization Server介绍 Spring Authorization Server 是一个框架&#xff0c;它提供了 OAuth 2.1 和 OpenID Connect 1.0 规范以及其他相关规范的实现。 它建立在 Spring Security 之上&#xff0c;为构建 OpenID Connect 1.0 身份提供者和 OAuth2 授权服务器产品提供…