杭州餐饮 网站建设,网站域名怎么申请,建设棋牌类网站要多少钱,自己怎么制作logo图标汉语唤醒词的模糊判断【Python】 说明安装库代码Demo其他 说明
这是一个简单的汉语模糊唤醒词的判断器#xff0c;汉语发音中前后舌以及声母韵母的区别#xff0c;如果进行精准判断#xff0c;很容易误判。需要一个模糊判断的逻辑!
安装库
pip install pypinyin代码Demo … 汉语唤醒词的模糊判断【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:float0.2)-bool::param hanz_x: 需要对比的汉字:param hanz_y: 需要对比的汉字:param threshold: 相似度阈值, default 0.2:return: bool 相似返回 Truepy1 pinyin(hanz_x, styleStyle.NORMAL, errorsignore)py2 pinyin(hanz_y, styleStyle.NORMAL, errorsignore)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(ferror_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 其他
如大佬有更简便的方法还请不吝赐教~