英文文本标点恢复

news2024/11/16 5:32:40

文章目录

      • 一、安装 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 RestorePuncts

def 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 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""")
    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 AutoModel

class 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,
        # 将参数修改为 False
        use_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.coloradmin.cn/o/1656512.html

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

相关文章

记录一下Hql遇到的零碎问题

建表相关 -- 地区维度表 drop table dim_province_full; create table dim_province_full( id string comment 编号, name string comment 省份名称, region_id string comment 大区id, area_code string comment 行政区位码, iso_code string comment 国际编码, iso_3166_2 s…

关于位操作符的实际应用<C语言>

前言 位操作符在C语言初学阶段相对其他操作符来说,是一种难度比较大的操作符,且运用较少的一类操作符,但是位操作符并不是“一无是处”,合理运用的位操作符,在某些场景下可以优化算法,提高代码的执行效率&a…

最新AI实景自动无人直播软件教你实现24小时不下播带货;智能化引领直播新时代

随着互联网的快速发展,直播行业已经成为商家品牌推广和商品销售的热门方式。而如今,一款令人惊叹的AI实景自动无人直播软件正在让直播变得更加智能化和便捷化,为商家带来全新的直播体验。 AI实景自动无人直播软件的一大优势是其智能讲解功能。…

远动通讯屏的作用

远动通讯屏的作用 远动通讯屏有时有称为调度数据网柜,远动通讯屏具体干啥作用?远动通讯屏是以计算机为基础的生产过程与调度自动化系统,可以对现场的运行设备进行监视和控制、以实现数据采集、设备测量、参数调节以及各类信号报警等各项功能。…

AI视频教程下载:学会用AI创作文本图片音频视频

在不断发展的科技领域,人工智能 (AI) 是毋庸置疑的冠军,它是一种不断创新的力量,在我们的生活中扮演着越来越重要的角色。随着 2023 年的到来,我们诚挚地欢迎您加入人工智能精通课程的大门。 这不仅仅是一个课程,它专为…

第08章 IP分类编址和无分类编址

8.1 本章目标 了解IP地址的用途和种类了解分类编址和无分类编址区别掌握IP地址、子网掩码、网关概念及使用掌握子网划分及超网划分方法掌握无分类编址的改变和使用 8.2 IP地址的用途和种类 分类编址:造成地址的浪费,以及地址不够用;无分类编…

泰迪科技2024中职大数据实训室方案解读

中职在大数据专业建设所遇到的困难 数据、信息安全、人工智能等新信息技术产业发展迅猛,人才极其匮乏,各个中职院校纷纷开设相应的专业方向。但是,绝大多数院校因为师资和积累问题,在专业建设规划、办学特色提炼、创新教学模…

男士内裤选什么牌子的比较好?男士内裤盘点测评

随着夏日的脚步逐渐临近,你是否已经开始为挑选一款舒适透气的男士内裤而犯愁?市场上男士内裤品牌琳琅满目,各种材质层出不穷,让你在选购时犹豫不决。别担心,我最近精心挑选了市面上热门的男士内裤品牌进行了一番细致测…

kubernetes中StorageClass动态存储资源

StorageClass动态存储资源:简称sc资源; 动态存储类,它自动创建pv;不再需要手动创建pv; 但是,我们的存储卷系统nfs本身不支持这个sc动态存储,所以,我们需要借助一个插件来实现nfs配合…

如何vscode中刷力扣

推荐你阅读 互联网大厂万字专题总结 Redis总结 JUC总结 操作系统总结 JVM总结 Mysql总结 微服务总结 互联网大厂常考知识点 什么是系统调用 CPU底层锁指令有哪些 AQS与ReentrantLock原理 旁路策略缓存一致性 Java通配符看这一篇就够 Java自限定泛型 技术分享 如何vscode中刷力扣…

java爬虫代理ip(java爬虫代码示例)

java爬虫代理ip 在编写java爬虫时,经常会遇到需要使用代理IP来访问目标网站的情况。这时候,我们就需要编写代码来实现代理IP的功能。接下来,我们将为大家介绍如何在java爬虫中使用代理IP,以及给出相应的代码示例。 首先&#xff…

【LLM第三篇】名词解释:RLHF——chatgpt的功臣

RLHF (Reinforcement Learning from Human Feedback) ,直译为:“来自人类反馈的强化学习”。RLHF是一种结合了强化学习和人类反馈的机器学习方法,主要用于训练大模型以执行复杂的任务,尤其是当这些任务难以通过传统的奖励函数来精…

系统权限控制插件封装-实现系统权限控制插件化

背景:按照传统的开发方式方式,每次新开发一个系统,就需要花费大量时间精力去搭建权限控制模块,如果我们把权限控制这一整个模块都抽离成一个独立的权限控制插件,支持单命令安装,全面暴露参数与方法&#xf…

Linux Ubuntu(玩客云) qBittorrent docker BT下载(qbittorrent 密码错误无法登录 ip地址被禁止登录等)

提示: 需要提前安装Docker 根据qBittorrent官网的更新日志https://www.qbittorrent.org/news ,4.6.1.0包含一个重大更新。可以看到自4.6.1.0开始,qBittorrent将弃用adminadmin默认密码,采用随机密码,将在终端控制台输出…

伦敦银软件下载完成后如何开始交易?

在伦敦金投资的整个流程中,进行伦敦银软件的下载可以说也是重要的一步。伦敦银软件是由交易平台提供的,也是交易服务的具体体现。没有平台,我们就不能下单,也不能入场。那么,伦敦银软件下载完成后如何开始交易呢&#…

找不到msvcr120.dll无法继续执行

windows(新安装的系统)安装mysql,报错MSVCR120.dll找不到 官方下载地址 https://www.microsoft.com/zh-CN/download/details.aspx?id40784&wd&eqid9eba4d380059694e00000004658ce260 安装上就好了

Spring AI实战之一:快速体验(OpenAI)

欢迎访问我的GitHub 这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos 关于Spring AI Spring Boot、Spring Cloud、Spring Data,作为一名Java程序员,相信您对这些概览早已耳熟能详,或者天天在用…

1802907-91-0,甲基四嗪PEG4羧酸一种胺反应试剂

基本信息: 中文名称:甲基四嗪-四聚乙二醇-羧基,甲基四嗪PEG4羧酸 英文名称:Methyltetrazine-PEG4-acid,Methyltetrazine-PEG4-COOH CAS号:1802907-91-0 分子式:C20H28N4O7 分子量&#xff…

双翻斗雨量计学习

双翻斗雨量计用户手册(脉冲型) 本仪器由雨量计壳体、承雨口、漏斗、翻斗支撑、上漏斗雨量调节支架、上漏斗、汇集漏斗、计数翻斗雨量调节支架、计数翻斗、干簧管安装架、轴承螺钉、出水漏斗、腿部支架、干簧管、水平泡、调节支撑板、控制盒、调平装置、接…

我国破碎筛分设备市场规模逐渐扩大 砂石骨料为主要应用领域

我国破碎筛分设备市场规模逐渐扩大 砂石骨料为主要应用领域 破碎筛分设备是将物料进行破碎分级,并按照一定规格进行筛分的机械设备。破碎筛分设备具有高效率、移动速度快、节省人力等优点。根据配置组合不同,破碎筛分设备可分为辊式、颚式、圆锥式、旋回…