您的位置:首页 > 汽车 > 时评 > 郴州seo服务_上海全上海全国网站建设_百度竞价推广怎么做_正规代运营公司

郴州seo服务_上海全上海全国网站建设_百度竞价推广怎么做_正规代运营公司

2024/12/22 21:18:43 来源:https://blog.csdn.net/yuantao18800/article/details/144299360  浏览:    关键词:郴州seo服务_上海全上海全国网站建设_百度竞价推广怎么做_正规代运营公司
郴州seo服务_上海全上海全国网站建设_百度竞价推广怎么做_正规代运营公司

汉语唤醒词的模糊判断【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, thresh:float=0.2)->bool:""":param hanz_x: 需要对比的汉字:param hanz_y: 需要对比的汉字:param thresh: 相似度阈值, 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)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)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 < threshif __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

其他

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

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com