语音识别HResults统计工具以及字根据关键词进行合并
#主要想说一下关键词合并
1.HResults统计工具可以参考其他博主的:
https://blog.csdn.net/weixin_30348519/article/details/98426654?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172088587416800215066191%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=172088587416800215066191&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-98426654-null-null.142^v100^pc_search_result_base3&utm_term=hresults&spm=1018.2226.3001.4187
2.HResults统计工具传入的文本格式:
#!MLF!#
"*No1.lab"
安
徽
省
pro
合
肥
市
ai
bot
a
i
和
en
open
a
i
chat
g
p
t
的
大
家
g
p
t
.
关键词内容:
it
ai
aibot
chatgpt
openai
合肥市
合肥
gpt
省市
安徽
这里说明一下,中文按照字一一换行,英文按照单词换行,但是语音识别发音可能就拆开了,但是想根据关键词,将相邻的字组成关键词如下:
#!MLF!#
"*No1.lab"
安徽
省
pro
合肥市
aibot
ai
和
en
openai
chatgpt
的
大
家
gpt
.
代码实现:(根据DFA算法改的)
# -*- coding:utf-8 -*-
import copy
import time,retime1 = time.time()
"""
DFA算法:
它的基本思想是基于状态转移来检索敏感词,只需要扫描一次待检测文本,就能对所有敏感词进行检测
"""# DFA算法
class DFAFilter(object):def __init__(self):self.keyword_chains = {} # 关键词链表self.delimit = '\x00' # 限定# 将敏感词内容添加关键词链表def add(self, keyword):keyword = keyword.lower() # 关键词英文变为小写chars = keyword.strip() # 关键字去除首尾空格和换行if not chars: # 如果关键词为空直接返回returnlevel = self.keyword_chains# 遍历关键字的每个字for i in range(len(chars)):# 如果这个字已经存在字符链的key中就进入其子字典if chars[i] in level:level = level[chars[i]]print(level)else:# isinstance(level, dict)判断是否是一个类型,是返回Trueif not isinstance(level, dict):print("print(level)", level)breakfor j in range(i, len(chars)):level[chars[j]] = {}last_level, last_char = level, chars[j]level = level[chars[j]]last_level[last_char] = {self.delimit: 0}breakif i == len(chars) - 1:level[self.delimit] = 0# 读取关键词def parse(self, path):with open(path, encoding='utf-8') as f:for keyword in f:self.add(str(keyword).strip())# print(self.keyword_chains)def two_eng(self,char):if len(char)>=2 and re.match(r"[a-zA-Z\']",char):for letter in char:# print("letter",letter, level)if letter in level:level = level[letter]if self.delimit in level:matched = Trueelse:print("break", char, level)break# 合并关键词def filter(self, message, repl="*"):ret = []start = 0print(self.keyword_chains)while start < len(message):level = self.keyword_chainsmatched = Falseend = Falsekey_word = ""letter_word=""for i in range(start, len(message)):char = message[i]# print(char)if len(char)>=2:stop=Falsecomin=copy.copy(matched)for letter in char:if letter in level:level = level[letter]letter_word += letterelse:if comin:matched = Trueelse:matched = Falsestop=Truebreak# 判断这个char在level还是不在if stop:letter_word = ""breakelse:# print('ok',char)key_word+=letter_wordletter_word = ""if self.delimit in level:matched = Trueif i+1 == len(message):end=Trueelse:#一直遍历,直到不存在的时候退出,看char是否okif char in level:level = level[char]key_word+=charif self.delimit in level:matched = Trueif i+1 == len(message):end=Trueelse:breakif matched:ret.append(key_word)start = iif end:breakelse:# ifret.append(message[start])start += 1return retif __name__ == "__main__":gfw = DFAFilter()path = 'key_word.txt'gfw.parse(path)text = ['安', '徽', '省','pro', '合', '肥','市','ai', 'bot','a', 'i', '和','en', 'open', 'a', 'i', 'chat','g','p','t','的', '大', '家','g','p','t']result = gfw.filter(text)print(text)print(result)time2 = time.time()print('总共耗时:' + str(time2 - time1) + 's')for I in result:print(I)
相关文章:
语音识别HResults统计工具以及字根据关键词进行合并
#主要想说一下关键词合并 1.HResults统计工具可以参考其他博主的:https://blog.csdn.net/weixin_30348519/article/details/98426654?ops_request_misc%257B%2522request%255Fid%2522%253A%2522172088587416800215066191%2522%252C%2522scm%2522%253A%25222014071…...
lvs集群、NAT模式和DR模式、keepalive
目录 lvs集群概念 集群的类型:三种类型 系统可靠性指标 lvs集群中的术语 lvs的工作方式 NAT模式 lvs的工具 算法 实验 数据流向 步骤 一 、调度器配置(test1 192.168.233.10) 二、RS配置(nginx1和nginx2)…...
zookeeper在哪里能用到
zookeeper是什么 ZooKeeper 顾名思义 动物园管理员,他是拿来管大象(Hadoop) 、 蜜蜂(Hive) 、 小猪(Pig) 的管理员, Apache Hbase和 Apache Solr 以及LinkedIn sensei 等项目中都采用到了 Zookeeper。 ZooKeeper是一个分布式的,开放源码的分…...
coco_eval 使用
参考 coco eval 解析 COCO目标检测比赛中的模型评价指标介绍! coco 的评估函数对应的是 pycocotools 中的 cocoeval.py 文件。 从整体上来看,整个 COCOeval 类的框架如图: 基础的用法为 # The usage for CocoEval is as follows: cocoGt…...
国产精品ORM框架-SqlSugar详解 进阶功能 集成整合 脚手架应用 专题二
国产精品ORM框架-SqlSugar详解 SqlSugar初识 专题一-CSDN博客 sqlsugar 官网-CSDN博客 4、进阶功能 5、集成整合 6、脚手架应用 4、进阶功能 4.1、生命周期 Queryable 什么时候操作库 Queryable是一个引用类型 Queryable拷贝机制 4.2、执行Sql 方法列表 方法名 描述 返…...
el-table 动态添加删除 -- 鼠标移入移出显隐删除图标
<el-table class"list-box" :data"replaceDataList" border><el-table-column label"原始值" prop"original" align"center" ><template slot-scope"scope"><div mouseenter"showClick…...
Kafka接收消息
文章目录 Acknowledgment读消息指定分区批量消费消息拦截 // 采用监听得方式接收 Payload标记消息体内容. KafkaListener(topics {"test"},groupId "hello") public void onEvent(Payload String event,Header(value KafkaHeaders.RECEIVED_TOPIC) Stri…...
C语言 | Leetcode C语言题解之第233题数字1的个数
题目: 题解: int countDigitOne(int n) {// mulk 表示 10^k// 在下面的代码中,可以发现 k 并没有被直接使用到(都是使用 10^k)// 但为了让代码看起来更加直观,这里保留了 klong long mulk 1;int ans 0;f…...
简谈设计模式之原型模式
原型模式是一种创建型设计模式, 用于创建对象, 而不必指定它们所属的具体类. 它通过复制现有对象 (即原型) 来创建新对象. 原型模式适用于当创建新对象的过程代价较高或复杂时, 通过克隆现有对象来提高性能 原型模式结构 原型接口. 声明一个克隆自身的接口具体原型. 实现克隆…...
CentOS7.X系统部署Zabbix6.0版本(可跟做)
文章目录 一、部署环境说明二、基本环境部署步骤1、环境初始化操作2、部署并配置Nginx3、部署并配置PHP4、测试NginxPHP环境5、部署并配置MariaDB 三、Zabbix-Server部署步骤1、编译安装Zabbix-Server2、导入Zabbix初始化库3、配置Zabbix前端UI4、启动Zabbix-Server5、WEB页面配…...
QT文件生成可执行的exe程序
将qt项目生成可执行的exe程序可按照以下步骤进行: 1、在qt中构建运行生成.exe文件; 2、从自定义的路径中取出exe文件放在一个单独的空文件夹中(exe文件在该文件夹中的release文件夹中); 3、从开始程序中搜索qt…...
【ZooKeeper学习笔记】
1. ZooKeeper基本概念 Zookeeper官网:https://zookeeper.apache.org/index.html Zookeeper是Apache Hadoop项目中的一个子项目,是一个树形目录服务Zookeeper翻译过来就是动物园管理员,用来管理Hadoop(大象)、Hive&…...
220V降5V芯片输出电压电流封装选型WT
220V降5V芯片输出电压电流封装选型WT 220V降5V恒压推荐:非隔离芯片选型及其应用方案 在考虑220V转低压应用方案时,以下非隔离芯片型号及其封装形式提供了不同的电压电流输出能力: 1. WT5101A(SOT23-3封装)适用于将2…...
AWS S3 基本概念
AWS S3 基本概念 引言什么是 AWS S3S3 应用S3 的核心概念 引言 最近工作中有接触到 S3,往 S3 写入数据,从 S3 访问数据,所以花点时间整理一下有关 S3 的基本概念。 什么是 AWS S3 AWS S3 (Amazon Simple Storage Service) 是一个由 Amazon…...
[XCUITest] 处理iOS权限点击授权 有哪些权限?
位置权限 (Location Permission) app.addUIInterruptionMonitor(withDescription: "Location Permission Dialog") { (alert) -> Bool in if alert.buttons["Allow While Using App"].exists { alert.buttons["Allow While Using App"].tap(…...
宪法学学习笔记(个人向) Part.5
宪法学学习笔记(个人向) Part.5 4. 公民基本权利和义务 4.1 公民🌸 概念 是指具有某个国家国籍的自然人; 【拓展】国籍:在宪法上是指一个人隶属于某个国家的法律上的身份🌸 ; 取得方式 出生国籍 因出生而获得的国籍&a…...
C语言的指针与数组
函数定义 参考书籍章节9.7 无论函数定义的参数是数组还是指针,在编译的时候,编译器都将在栈上开辟一个空间存放入参的地址,换句话说,也就是在函数内部都当做指针处理。 #include <stdio.h> #include <stdlib.h>char g…...
计算机图形学入门28:相机、透镜和光场
1.前言 相机(Cameras)、透镜(Lenses)和光场(Light Fields)都是图形学中重要的组成部分。在之前的学习中,都是默认它们的存在,所以现在也需要单独拿出来学习下。 2.成像方法 计算机图形学有两种成像方法,即合成(Synthesis)和捕捉(Capture)。前…...
Swift 基于Codable协议使用
Codable协议 继承自 Decodable & Encodable // // Test1.swift // TestDemo // // Created by admin on 2024/7/9. // import Foundationstruct Player{var name:Stringvar highScore:Int 0var history:[Int] []var address:Address?var birthday:Date?init(name: St…...
conda激活的虚拟环境的python版本不对应
这个大坑,要看看虚拟环境下envs下有没有bin文件夹 python -Vecho $PATH镜像源的问题,参考...
Unity Library文件夹不是缓存,而是项目运行时核心枢纽
1. Library文件夹不是“缓存”,而是Unity工程的“神经系统”在Unity项目里,只要有人提“工程太大”,十有八九会冒出一句:“删掉Library文件夹不就完了?”——这话我听过不下五十遍,从刚入行的实习生&#x…...
机器学习在糖尿病并发症预测中的应用:逻辑回归、SVM与随机森林对比实践
1. 项目概述:当机器学习遇见糖尿病并发症预测作为一名长期关注医疗数据分析的从业者,我见过太多糖尿病患者在确诊心肾并发症时,病情已进展到中晚期,治疗窗口期大大缩短。糖尿病本身的管理已足够复杂,而其引发的慢性肾病…...
仿真数据与真实数据:机器人训练的数据策略选择
仿真数据与真实数据:机器人训练的数据策略选择摘要:仿真数据和真实数据各有优劣,如何选择和配比直接影响训练效果和项目成本。本文从数据特性、适用场景、配比策略三个维度给出系统分析,并提供Sim-to-Real迁移的工程化方案。关键词…...
从Voronoi图到Lloyd算法:分布式传感器网络收敛性证明与工程实践
1. 从几何直觉到数学证明:理解传感器网络的收敛性在分布式传感器网络、无人机编队或者移动机器人集群的部署中,一个核心问题是如何让这些自主节点在没有中央控制器的情况下,高效、均匀地覆盖一个目标区域,并最终收敛到我们关心的关…...
耦合振荡器模型在MPI并行计算同步分析中的应用
1. 耦合振荡器系统概述耦合振荡器模型为理解复杂系统中的同步行为提供了强有力的数学框架。在分布式计算领域,特别是MPI(Message Passing Interface)并行程序中,这种模型能够精确刻画计算节点间的动态交互过程。每个计算进程可视为…...
XLASSO:高维稀疏建模在极端事件尾部预测中的原理与实践
1. 项目概述:当极端事件遇见高维稀疏性在金融风险管理、气候极端事件预测或是网络流量异常检测中,我们常常面临一个共同的挑战:如何基于有限的历史极端观测数据,对未来可能发生的、更为罕见的“黑天鹅”事件做出可靠预测ÿ…...
如何快速获取全网无损音乐:洛雪音乐音源完整使用指南
如何快速获取全网无损音乐:洛雪音乐音源完整使用指南 【免费下载链接】lxmusic- lxmusic(洛雪音乐)全网最新最全音源 项目地址: https://gitcode.com/gh_mirrors/lx/lxmusic- 你是否经常遇到这样的困境:深夜想听一首歌,却发现版权分散…...
DeepSeek总结的DuckDB动态函数应用插件
来源:https://github.com/teaguesterling/duckdb_func_apply DuckDB FuncApply 扩展 DuckDB 的动态函数应用 - 在运行时通过名称调用函数。 概述 FuncApply 扩展为 DuckDB 提供了动态函数调用能力,允许您: 使用 apply() 通过名称调用任何…...
Tableau Server安全加固与合规运维实战指南
我不能按照您的要求生成关于“Tableau Server高危漏洞CVE-2025-26496”的实战复现与修复指南。 原因如下: CVE编号无效且存在严重合规风险 CVE-2025-26496 是一个 尚未发布、不存在的编号 。截至2024年7月,NIST NVD 官方数据库、MITRE CVE List、T…...
艾尔登法环存档迁移终极指南:3步安全转移你的游戏角色
艾尔登法环存档迁移终极指南:3步安全转移你的游戏角色 【免费下载链接】EldenRingSaveCopier 项目地址: https://gitcode.com/gh_mirrors/el/EldenRingSaveCopier EldenRingSaveCopier 是一款专为《艾尔登法环》玩家设计的存档角色迁移工具,能够…...
