首页 > 编程语言 >python异步字符串查找,asyncio和marisa_trie

python异步字符串查找,asyncio和marisa_trie

时间:2023-05-11 18:46:49浏览次数:38  
标签:string python matches results long trie csv asyncio

 

自然语言处理当中经常需要字符串的查找操作,比如通过查找返回字串在文本当中的位置,比如通过匹配实现的ner

import pandas as pd
import asyncio

# data = pd.read_csv("guba_fc_result_20230413.csv")

data = pd.read_csv("guba_all_post_20230413.csv")
filename = "cate_group.txt"

def read_list_from_file(filename):
    with open(filename, 'r') as f:
        lst = [line.strip() for line in f]
    return lst

cate_group = read_list_from_file(filename)


import marisa_trie
# 构建trie
trie = marisa_trie.Trie(cate_group)
 
# 匹配长字符串
# long_string = '宁德时代是做锂电池的'
 
# results = []
# for i in range(len(long_string)):
#     matches = trie.prefixes(long_string[i:])
#     # 输出匹配结果
#     if matches:
#         for matche in matches:
#             results.append(matche)
 
# print(results)


async def match_text(long_string):
    long_string = str(long_string)
    results = []
    for i in range(len(long_string)):
        matches = trie.prefixes(long_string[i:])
        # 输出匹配结果
        if matches:
            for matche in matches:
                results.append(matche)
    return results
 
async def main():
    tasks = []
    for i in data["text"]:
        tasks.append(asyncio.create_task(match_text(i)))
    matches_list = await asyncio.gather(*tasks)

    data["matches"] = matches_list

    print(matches_list)
    data.to_csv("guba_all_matches_20230413.csv")
 
if __name__ == '__main__':
    asyncio.run(main())

  

 

标签:string,python,matches,results,long,trie,csv,asyncio
From: https://www.cnblogs.com/LiuXinyu12378/p/17391914.html

相关文章

  • R语言中调用调用python
       ......
  • python3.11 支持TA-lib
    网上找了很多地方才找到的,以下是原网面内容分享给大家:原网址python3.11支持TA-lib-简书(jianshu.com) python3.11支持TA-libasmcos关注IP属地:北京2022.11.0316:42:52字数122阅读1,075做量化的朋友都知道Ta-lib的windows库相当难编译。python3.11性能提升......
  • python 下载整个网页到本地(保持原有链接)样式
    pipinstallpagesnapplaywrightinstallpython310以上命令:pagesnap网址 网络名称提示:请求成功response.url='https://www.cnpython.com/pypi/singlefile'请求成功response.url='https://www.cnpython.com/media/pypi/static/css/brands.0c9eb08b.css'资源类型为css请求......
  • Linux 安装python、flaks
    linux默认是带有python的下载并安装python3下载地址:https://www.python.org/ftp/python/3.8.2/Python-3.8.2.tgz--创建安装目录mkdir-p/usr/local/python3 --解压安装包tar-zxvfPython-3.8.2.tgz --进入目录编译安装cdPython-3.8.2./configure--pre......
  • python基础——变量&字符串
    int()整数float()浮点数#变量名只包含字母,数字,下划线1、变量名能以字母或下划线开始,但是不能一数字开始2、变量名不能包含空格,但是能是用下划线来分割3、每个变量都执指向一个值4、python中关键字和函数名不可以用作变量名,关键字和函数名是python中用于特殊用途的单子#字符......
  • Python工具箱系列(三十一)
    Neo4j是一个高性能的开源的,使用Java语言实现的NoSQL图数据库,它将结构化数据存储在网络上而不是表中。它是一个嵌入式的、基于磁盘的、具备完全的事务特性的Java持久化引擎,但是它将结构化数据存储在网络(从数学角度叫做图)上而不是表中。Neo4j也可以被看作是一个高性能的图引擎,该引擎......
  • 在debian上安装python3.10
    先更新系统。sudoaptupdate首先需要安装所需的依赖项,以便能够从源代码构建Python3.10。sudoaptinstallbuild-essentialzlib1g-devlibncurses5-devlibgdbm-devlibnss3-devlibssl-devlibreadline-devlibffi-devlibsqlite3-devwgetlibbz2-dev然后从Python官方......
  • python基础语法
    python基础语法python数据类型初探数据类型初探int类型:整数float类型:浮点数str类型:字符串,以成对单引号或双引号包裹bool:True或False注意:我们可以通过type()函数输出数据类型python标识符标识符介绍所谓的标识符就是对变量、常量、函数、类等对象起的名字标识符命......
  • python 类型提示
    python类型提示它允许开发者在代码中显式地声明变量、函数、方法等的类型信息。这种类型声明不会影响Python解释器的运行,它可以帮助开发人员在编写代码时更好地理解代码中的数据类型,从而提高代码的可读性和可维护性。基本类型#直接定义age:int=1#声明后定义num:flo......
  • 基于python爬虫技术对于淘宝的数据分析的设计与实现
    本篇仅在于交流学习本文主要介绍通过selenium模块和requests模块,同时让机器模拟人在浏览器上的行为,登录指定的网站,通过网站内部的搜索引擎来搜索自己相应的信息,从而获取相应关键字的商品信息,并进而获取数据,然后通过csv模块将数据存储到本地库中,接着在通过pandas、jieba、m......