英文文本标点恢复

文章目录

      • 一、安装 rpunct
      • 二、使用
      • 三、下载模型时报错
        • 1、报错详情
        • 2、报错原因
        • 3、解决方案
      • 四、程序运行时报错
        • 1、报错详情
        • 2、报错原因
        • 3、解决方案
      • 五、修改默认缓存路径

一、安装 rpunct

pip install rpunct

相关依赖包信息:

langdetect==1.0.9
pandas==1.2.4
simpletransformers==0.61.4
six==1.16.0
torch==1.8.1

github链接:https://github.com/Felflare/rpunct

二、使用

字符串方式测试:

from rpunct import RestorePunctsdef main():rpunct = RestorePuncts()text = rpunct.punctuate("""in 2018 cornell researchers built a high-powered detector that in combination with an algorithm-driven process called ptychography set a world recordby tripling the resolution of a state-of-the-art electron microscope as successful as it was that approach had a weakness it only worked with ultrathin samples that werea few atoms thick anything thicker would cause the electrons to scatter in ways that could not be disentangled now a team again led by david muller the samuel b eckertprofessor of engineering has bested its own record by a factor of two with an electron microscope pixel array detector empad that incorporates even more sophisticated3d reconstruction algorithms the resolution is so fine-tuned the only blurring that remains is the thermal jiggling of the atoms themselves""")print(text)
if __name__ == "__main__":main()

注:只支持英文文本。程序中务必添加 if __name__ == "__main__",否则将报错。

文件读取方式:

rpunct = RestorePuncts()with open('./upload/text/eng.txt','r',encoding='utf-8') as f:text = f.read()output_text = rpunct.punctuate(text)
print(output_text)

注:测试过程发现没有指定 utf-8 编码时,输出的文本会出现乱码。

预期效果:

In 2018, Cornell researchers built a high-powered detector that, in combination with an algorithm-driven process called Ptychography, set a world record by tripling the
resolution of a state-of-the-art electron microscope. As successful as it was, that approach had a weakness. It only worked with ultrathin samples that were a few atoms
thick. Anything thicker would cause the electrons to scatter in ways that could not be disentangled. Now, a team again led by David Muller, the Samuel B. 
Eckert Professor of Engineering, has bested its own record by a factor of two with an Electron microscope pixel array detector empad that incorporates even more
sophisticated 3d reconstruction algorithms. The resolution is so fine-tuned the only blurring that remains is the thermal jiggling of the atoms themselves.

三、下载模型时报错

1、报错详情
OSError: We couldn't connect to 'https://huggingface.co' to load this file,
couldn't find it in the cached files and it looks like felflare/bert-restore-punctuation is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.
2、报错原因

目标网站无法访问,无法下载相关模型数据。

3、解决方案

方法一:

找到包安装目录 D:\Anaconda\envs\speech\Lib\site-packages\rpunct\punctuate.py 下的 punctuate.py 文件 。(应根据自身实际查找包安装目录)

也可以使用 Ctrl + 鼠标点击代码 from rpunct import RestorePuncts 中的 RestorePuncts 快捷跳转

将下载地址修改为以下镜像地址:

__author__ = "Daulet N."
...import os
os.environ['HF_ENDPOINT'] = 'https://hf-mirror.com'import logging
...

参考链接(评论区):https://zhuanlan.zhihu.com/p/627688602

方法二:

以离线方式加载模型,通过自行下载模型的方式,再填写对应模型路径。

找到包安装目录 D:\Anaconda\envs\speech\Lib\site-packages\rpunct\punctuate.py 下的 punctuate.py 文件 。(应根据自身实际查找包安装目录)

修改 punctuate.py 文件如下:

from transformers import AutoModelclass RestorePuncts:def __init__(self, wrds_per_pred=250):...self.model =  AutoModel.from_pretrained("D:/AnacondaCLI/cache/huggingface/hub/models--felflare--bert-restore-punctuation/snapshots/954108a105ef1f89f08b71c25d6e33bb89cde724") 

注:在测试过程中发现可以离线加载模型,但程序却无法正常运行。不知是程序中方法更新不再支持还是路径填写方式错误导致的。

更多详情参见:https://huggingface.co/docs/transformers/installation#offline-mode

四、程序运行时报错

1、报错详情
ValueError: 'use_cuda' set to True when cuda is unavailable.Make sure CUDA is available or set use_cuda=False.
2、报错原因

CUDA 不可用,确保 CUDA 可用,或将 use_CUDA=False 设置为空。

3、解决方案

找到包安装路径下的 ner_model.py 文件 D:\Anaconda\envs\speech\Lib\site-packages\simpletransformers\ner\ner_model.py。(应根据自身实际查找包安装目录)

快速定位:

也可以使用 Ctrl + 鼠标点击代码 from rpunct import RestorePuncts 中的 RestorePuncts 快捷跳转,再通过代码 from simpletransformers.ner import NERModel 中的 NERModel 进行跳转。

Ctrl + g 快捷键输入 114 快速定位。

修改 ner_model.py 文件参数:

class NERModel:def __init__(...# use_cuda=True,# 将参数修改为 Falseuse_cuda=False,...):

参考链接:https://github.com/Felflare/rpunct/issues/1

五、修改默认缓存路径

默认缓存路径(Windows):C:\Users\username\.cache\huggingface\hub

添加环境变量:HUGGINGFACE_HUB_CACHE

具体路径自行更改:

在这里插入图片描述

更多详情参见:https://huggingface.co/docs/transformers/installation#install-with-conda


因依赖包版本问题无法安装 rpunct 可参见:https://github.com/samwaterbury/rpunct

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

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

相关文章

Java入门最小必要知识:变量及其本质

编程语言是与计算机交流的桥梁,而在编程世界中,变量是这座桥上不可或缺的砖石。 从本质上,可以把复杂的编程工作简化为两件事: ①定义变量②操作变量 可见,变量之于编程的重要性。 对于Java开发者,理解…

阿里云 物联网平台 MQTT连接、数据传输

阿里云 物联网平台 MQTT连接、数据传输 1、设备连接阿里云 2、多设备之前的通信、数据流转 3、设备数据来源的读取。 基于C# winform 开发上位机,读取设备、仪器、MES或者电子元器件的数据,MQTT传输至阿里云平台,可视化界面构建界面&#…

1065: 无向图的连通分量计算

解法&#xff1a; dfs求连通性 1.设节点表vis[] 2.遍历节点表dfs标记&#xff0c;每次得到一个连通分量 #include<iostream> #include<vector> using namespace std; int arr[100][100]; void dfs(vector<bool>& vis, int v) {//不用终止条件&#x…

省级生活垃圾无害化处理率面板数据(2004-2022年)

01、数据简介 生活垃圾无害化处理率是指经过处理的生活垃圾中&#xff0c;达到无害化标准的垃圾所占的比例。这一指标是衡量城市垃圾处理水平的重要标准&#xff0c;反映了城市对垃圾进行有效管理和处理的能力。 生活垃圾无害化处理的主要方式包括生活垃圾焚烧、生活垃圾卫生…

金三银四面试题(二十八):观察者模式知多少?

什么是观察者模式 观察者模式&#xff08;Observer Pattern&#xff09; 是一种设计模式&#xff0c;它定义了一种一对多的关系&#xff0c;让多个观察者对象能够同时监听一个主题对象。当主题对象的状态发生变化时&#xff0c;会通知所有观察者对象&#xff0c;使它们能够作出…

简约在线生成短网址系统源码 短链防红域名系统 带后台

简约在线生成短网址系统源码 短链防红域名系统 带后台 安装教程&#xff1a;访问 http://你的域名/install 进行安装 源码免费下载地址抄笔记 (chaobiji.cn)https://chaobiji.cn/

图像分割各种算子算法-可直接使用(Canny、Roberts、Sobel)

Canny算子&#xff1a; import numpy as np import cv2 as cv from matplotlib import pyplot as pltimg cv.imread("../test_1_1.png") edges cv.Canny(img, 100, 200)plt.subplot(121),plt.imshow(img,cmap gray) plt.title(Original Image), plt.xticks([]), …

电文加密(C语言)

一、题目说明&#xff1b; 即第1个字母变成第26个字母&#xff0c;第i个字母变成第(26 - i 1)个字母&#xff0c;非字母字符不变。 二、N-S流程图&#xff1b; 三、运行结果&#xff1b; 四、源代码&#xff1b; # define _CRT_SECURE_NO_WARNINGS # include <stdio.h&g…

C语言深入理解指针(4)--指针笔试题解析

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 C语言深入理解指针(4) 收录于专栏【C语言学习】 本专栏旨在分享学习C语言学习的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. size…

【机器学习300问】79、Mini-Batch梯度下降法的原理是什么?

Mini-Batch梯度下降法是一种将训练数据集分成小批次进行学习的优化方法&#xff0c;通过这种方式&#xff0c;可以有效地解决内存限制问题并加速学习过程。 一、为什么要使用Mini-Batch&#xff1f; 在机器学习尤其是深度学习中&#xff0c;我们常常面临海量数据处理的问题。如…

吴恩达 深度学习 神经网络 softmax adam 交叉验证

神经网络中的层&#xff1a;输入层&#xff08;layer 0&#xff09;、隐藏层、卷积层&#xff08;看情况用这个&#xff09;、输出层。&#xff08;参考文章&#xff09; 激活函数&#xff1a; 隐藏层一般用relu函数&#xff1b; 输出层根据需要&#xff0c;二分类用sigmoid&…

ExcelVBA在选择区域(有合并)中删除清除空行

【问题】 关于删除空行&#xff0c;以前是用函数来完成工作的&#xff0c; 今天有人提出问题&#xff0c;传来这个文件&#xff0c; 现有数据&#xff0c;1w多行&#xff0c;其中有部分列有不同合并单元格&#xff0c;跨行也不一样。如果要进行筛选删除空行&#xff0c;有一定的…

matlab使用教程(70)—修改坐标区属性

1.控制坐标轴长度比率和数据单位长度 您可以控制 x 轴、y 轴和 z 轴的相对长度&#xff08;图框纵横比&#xff09;&#xff0c;也可以控制一个数据单位沿每个轴的相对长度&#xff08;数据纵横比&#xff09;。 1.1图框纵横比 图框纵横比是 x 轴、y 轴和 z 轴的相对长度。默认…

Python-VBA函数之旅-sum函数

目录 一、sum函数的常见应用场景 二、sum函数使用注意事项 三、如何用好sum函数&#xff1f; 1、sum函数&#xff1a; 1-1、Python&#xff1a; 1-2、VBA&#xff1a; 2、推荐阅读&#xff1a; 个人主页&#xff1a; https://myelsa1024.blog.csdn.net/ 一、sum函数的常…

CSS:盒子模型

目录 ▐ box—model概述 ▐ 盒子的组成 ▐ 内容区 ▐ 内边距 ▐ 边框 ▐ 外边距 ▐ 清除浏览器默认样式 ▐ box—model概述 • CSS处理网页时&#xff0c;它认为每个标签都包含在一个不可见的盒子里. • 如果把所有的标签都想象成盒子&#xff0c;那么我们对网…

远程桌面如何连接?

远程桌面连接是一种可以在不同地点之间共享电脑桌面的技术。通过远程桌面连接&#xff0c;用户可以在远程的计算机上操作另一台计算机&#xff0c;就像是直接坐在前者的前面一样。这种技术可以帮助用户解决在不同地点之间共享数据、协同办公、设备管理等问题。 【天联】的使用场…

浅谈@Controller注解和其他四大注解的区别

各位大佬光临寒舍&#xff0c;希望各位能赏脸给个三连&#xff0c;谢谢各位大佬了&#xff01;&#xff01;&#xff01; 目录 1.Spring五大注解的使用约定 2.Controller注解的特别之处 3.总结 1.Spring五大注解的使用约定 Spring的五大注解&#xff08;Controller&#x…

14.CAS原理

文章目录 CAS原理1.什么是CAS2.Unsafe类中的CAS方法2.1.获取UnSafe实例2.2.调用UnSafe提供的CAS方法2.3.调用Unsafe提供的偏移量相关2.4.CAS无锁编程2.4.1.使用cas进行无锁安全自增案例 CAS原理 由于JVM的synchronized重量级锁设计操作系统内核态下的互斥锁的使用&#xff0c;其…

二分判定+选插冒排序+归并快速堆希尔+计数排序

二分力扣题 一&#xff1a;搜索二维矩阵 74. 搜索二维矩阵 按照题意&#xff1a;直接利用二维数组转换成一维数组进行求解 方法一&#xff1a;普通等于的二分查找 class Solution { public:bool searchMatrix(vector<vector<int>>& matrix, int target) {t…

io_uring的使用示例及其解释

io_uring的使用示例及其解释 1 io_uring机制1.1 io_uring机制1.2 io_uring系统调用接口功能介绍1.2.1 io_uring_setup()&#xff1a;1.2.2 io_uring_enter()&#xff1a;1.2.3 io_uring_register()&#xff1a; 2 liburing2.1 liburing简介2.2 liburing编译2.2.1 liburing的代码…