首页 > 编程语言 >python异步正则字符串替换,asyncio异步正则字符串替换re

python异步正则字符串替换,asyncio异步正则字符串替换re

时间:2023-05-11 18:47:47浏览次数:48  
标签:异步 sub text re 正则 字符串 new data asyncio

 

自然语言处理经常使用re正则模块进行字符串替换,但是文本数量特别大的时候,需要跑很久,这就需要使用asyncio异步加速处理

import pandas as pd
import re
import asyncio

data = pd.read_csv("guba_all_post_20230413.csv")

data.dropna(inplace=True)



# def replace_between_dollars(strings):
#     pattern = r'\$[^$]*\$;'
#     pattern1 = r'[^\w\s]+'
#     new_strings = []
#     for idx,text in enumerate(strings):
#         text = re.sub(pattern, '', text)
#         text = re.sub(pattern1, '', text)
#         text = re.sub(r'\s+', '', text)
#         new_strings.append(text)
        
#     return new_strings

# replace_between_dollars(data["text"])

# data["new_text"] = replace_between_dollars(data["text"])
# data[:50]

pattern = r'\$[^$]*\$;'
pattern1 = r'[^\w\s]+'
async def replace_between_dollars(long_string):
    text = str(long_string)
    new_strings = []
    text = re.sub(pattern, '', text)
    text = re.sub(pattern1, '', text)
    text = re.sub(r'\s+', '', text)
    text = re.sub(r'[a-zA-Z]{30,}', '', text)
    text = re.sub(r"autoimg\w+", "", text)

    return text
 
async def main():
    tasks = []
    for i in data["text"]:
        # print(i)
        tasks.append(asyncio.create_task(replace_between_dollars(i)))
    matches_list = await asyncio.gather(*tasks)

    data["new_text"] = matches_list

    print(matches_list[:200])
    data.to_csv("guba_all_newtext_20230413.csv",index=False)


if __name__ == '__main__':
    asyncio.run(main())

  结果:

['估值有待修复煤炭平均市盈率6倍3美元', '国产医疗器械行业发展迅速迈瑞作为的国内最大的医疗器械企业基本一枝独秀了', '今日上海现货钼价', '出消息了准备套人', '你爷爷要红了', '买个了鬼半年多了没一点长进而且还跌', '没有万手哥55过不去', '今天972抄底了感觉大盘要怕怕的明天希望你给给机会出来', '可从研究开放式基金入手如010379013626005108010341等', '明570收']

标签:异步,sub,text,re,正则,字符串,new,data,asyncio
From: https://www.cnblogs.com/LiuXinyu12378/p/17391907.html

相关文章

  • python异步字符串查找,asyncio和marisa_trie
     自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的nerimportpandasaspdimportasyncio#data=pd.read_csv("guba_fc_result_20230413.csv")data=pd.read_csv("guba_all_post_20230413.csv")filename="cate_gr......
  • python基础——变量&字符串
    int()整数float()浮点数#变量名只包含字母,数字,下划线1、变量名能以字母或下划线开始,但是不能一数字开始2、变量名不能包含空格,但是能是用下划线来分割3、每个变量都执指向一个值4、python中关键字和函数名不可以用作变量名,关键字和函数名是python中用于特殊用途的单子#字符......
  • 异步电机的VVVF的C代码+仿真模型,C代码可直接在simulink模型里进行在线仿真,所见即所得,
    异步电机的VVVF的C代码+仿真模型,C代码可直接在simulink模型里进行在线仿真,所见即所得,仿真模型为离散化模型,C代码嵌入到模型里进行在线仿真,仿真通过后可以直接移植到各种MCU芯片里:1.直接带满载启动,转速超调小,控制精度高2.四种不同的VF曲线可供选择:直线VF,分段VF,抛物线VF,S......
  • 异步电机的旋转高频电压注入算法FOC,全套C代码+仿真模型,已经在实际的工程项目项目中加
    异步电机的旋转高频电压注入算法FOC,全套C代码+仿真模型,已经在实际的工程项目项目中加以应用:1.在定子电压的两相同步静止坐标系(α,β轴)下注入旋转高频电压,然后通过转子位置观测器实现转子机械转速与转子磁链电角度的精确估算;2.能够实现电机低速段带重载运行工况下的高精度无传感器......
  • DFIG双馈异步式风力发电系统的并网发电与低电压穿越(LVRT)控制算法的仿真模型,基于Crowba
    DFIG双馈异步式风力发电系统的并网发电与低电压穿越(LVRT)控制算法的仿真模型,基于Crowbar电路(转子串电阻)和Chopper电路:1.正常并网发电时的网侧变流器与机侧变流器的控制算法仿真,网侧为四象限整流,电压外环电流内环双闭环,基于SOGI二阶广义积分器进行锁相,可实现电网电压严重畸变、不平......
  • java代码中fastjson生成字符串和解析字符串的方法和javascript文件中字符串和json数组
    1.java代码中fastjson生成字符串和解析字符串的方法List<TemplateFull>templateFulls=newArrayList<TemplateFull>();JSONArrayjsonArr=newJSONArray();jsonArr.addAll(templateFulls);StringjsonStr=jsonArr.toJSONString();System.out.pr......
  • 【C++学习笔记】C++ 正则表达式不完全支持零断宽言
    最近需要解析配置文件,遇到从@STARTDATA@END中提取DATA的正则,按照C#的操作,直接(?<=@START)[\W\w]?(?=@END),就能提取的,可是在C++中,regexe("(?<=@START)[\W\w]?(?=@END)")报错了,找了很多说法,最终结论:支持先行断言,不支持后行断言即:(?<=@START)和(?<!@START)。好在C++支持子匹......
  • 前台json给后台传送两种数据一个json,一个字符串
    前台json数据以什么格式传给后台,后台controller可以已两个参数接收,比如一个list,一个string。有两种方法:第一种方法:contentType:'application/x-www-form-urlencoded',相当于向后台传送了俩参数,一个是数组,一个是string字符串;但是后台接收的时候不能用@RequestBody也不能用@PathVa......
  • java8 数组使用流和收集器格式化拼接数组中字符串并以“,”间隔,且首尾分别用 “[” 和
    方法:Stringresult=artist.stream().map(Art::getName).collect(Collectors.joining(",","[","]"));(注:joining(CharSequencedelimiter,CharSequenceprefix,CharSequencesuffix)方法接受一个字符串序列作为拼接符,并在拼接完成后添加传递的前缀和后缀。假如我们传递的分......
  • linux 中 正则表达式* 和 ?
     *表示匹配前一个字符0次或者多次;?表示匹配前一个字符0次或者1次,且只在扩展正则表达式中生效。 001、root@DESKTOP-IDT9S0E:/home/test#echo"ik"|grep"ie?k"root@DESKTOP-IDT9S0E:/home/test#echo"ik"|sed-n'/ie*k/p'##*表示匹配0次或者多次ikroot@DESK......