当前位置: 首页 > news >正文

汉语唤醒词的模糊判断(Python)

汉语唤醒词的模糊判断【Python】

  • 说明
  • 安装库
  • 代码Demo
  • 其他

说明

这是一个简单的汉语模糊唤醒词的判断器,汉语发音中前后舌以及声母韵母的区别,如果进行精准判断,很容易误判。需要一个模糊判断的逻辑!

安装库

pip install pypinyin

代码Demo

# -*- coding: utf-8 -*-
# @Author : Dony YUAN
# @Time : 2024/12/06 20:02
from pypinyin import pinyin, Styledef compare_hanz(hanz_x:str, hanz_y:str, threshold:float=0.2)->bool:""":param hanz_x: 需要对比的汉字:param hanz_y: 需要对比的汉字:param threshold: 相似度阈值, default 0.2:return: bool 相似返回 True"""py1 = pinyin(hanz_x, style=Style.NORMAL, errors='ignore')py2 = pinyin(hanz_y, style=Style.NORMAL, errors='ignore')py1 = [i[0] for i in py1]py2 = [i[0] for i in py2]print(py1, py2)l_py1 = len(py1)l_py2 = len(py2)diff = 0for m, n in zip(py1, py2):if m != n:l_m = len(m)l_n = len(n)if l_m > l_n:for x in n:if x not in m:diff += 1else:for x in m:if x not in n:diff += 1diff += abs(l_m - l_n)word_diff = l_py1 - l_py2if word_diff > 0:diff += len("".join(py1[-word_diff:]))elif word_diff < 0:diff += len("".join(py2[word_diff:]))total_letters = max(len("".join(py1)), len("".join(py2)))error_rate = diff / total_lettersprint(f"error_rate: {error_rate}")# return "".join(py1) == "".join(py2)return error_rate < thresholdif __name__ == '__main__':wd1 = "您好小杜?"wd2 = "你好小布!"is_same = compare_hanz(wd1, wd2)print(f"是否相似:{is_same}")

[‘nin’, ‘hao’, ‘xiao’, ‘du’] [‘ni’, ‘hao’, ‘xiao’, ‘bu’]
error_rate: 0.16666666666666666
是否相似:True

其他

如大佬有更简便的方法,还请不吝赐教~

http://www.lryc.cn/news/501540.html

相关文章:

  • Redis篇-2--原理篇1--I/O多路复用机制(5种I/O模型,I/O多路复用)
  • Knowledge Graph Studio:让知识图谱构建更简单、更智能
  • vue 中实现音视频播放进度条(可拖拽,满足常见开发需求)
  • [免费]SpringBoot+Vue企业OA自动化办公管理系统【论文+源码+SQL脚本】
  • 笔记:在WPF中BitmapSource都有哪些派生类,他们主要功能,使用方法,使用场景
  • JAVA基础学习笔记_多线程
  • 什么是自动化办公
  • 数据库系统
  • 文件系统--底层架构(图文详解)
  • 【OCR】——端到端文字识别GOT-OCR2.0不香嘛?
  • SkyWalking 和 ELK 链路追踪实战
  • ETCD的封装和测试
  • 基于大数据爬+数据可视化的民族服饰数据分析系统设计和实现(源码+论文+部署讲解等)
  • torch.optim.lr_scheduler.ReduceLROnPlateau
  • Linux 搭建ftp服务
  • 阳光电源嵌入式面试题及参考答案
  • PS的功能学习(形状、文字、图层)
  • 项目实例_FashionMNIST_CNN
  • Ubuntu 安装 web 服务器
  • burp的编解码,日志,比较器
  • 2.1、模版语法
  • 最小二乘法拟合出二阶响应面近似模型
  • 【汽车】-- 常见的汽车悬挂系统
  • VMware Workstation Pro 17 下载 以及 安装 Ubuntu 20.04.6 Ubuntu 启用 root 登录
  • 记录ubuntu22.04重启以后无法获取IP地址的问题处理方案
  • linux 删除系统特殊的的用户帐号
  • core Webapi jwt 认证
  • 【Redis】Redis基础——Redis的安装及启动
  • Oracle Recovery Tools工具一键解决ORA-00376 ORA-01110故障(文件offline)---惜分飞
  • 常用环境部署(二十四)——Docker部署开源物联网平台Thingsboard