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

短词匹配:拼音相似度

本文方法适用于信收场景,尤其待收集信息点是专业名词的情况,本文实验了两种拼音匹配方法,包括不带声调版本和带声调版本。

本文内容参考 短词匹配:拼音相似度

短词-不带声调拼音

test_words = ['路易威登SPIN TIME', '路易·威登', '克里斯汀·迪奥', '古驰', '路易威登TAMBOUR',  'LV Lagoon', 'LV Trainer', '路易威登 Virgil Abloh', 'Louis Vuitton Monogram', '古琦', '爱马仕']from pypinyin import *   
import repattern = r"(\.|\·|\+|\-|\:|\(|\))"for wd in test_words:py = lazy_pinyin(wd)py_ = [re.sub(pattern, '', i, flags=re.DOTALL).replace(' ', '').lower() for i in py]print(wd, py, ''.join(py_))# 路易威登SPIN TIME ['lu', 'yi', 'wei', 'deng', 'SPIN TIME'] luyiweidengspintime
# 路易·威登 ['lu', 'yi', '·', 'wei', 'deng'] luyiweideng
# 克里斯汀·迪奥 ['ke', 'li', 'si', 'ting', '·', 'di', 'ao'] kelisitingdiao
# 古驰 ['gu', 'chi'] guchi
# 路易威登TAMBOUR ['lu', 'yi', 'wei', 'deng', 'TAMBOUR'] luyiweidengtambour
# LV Lagoon ['LV Lagoon'] lvlagoon
# LV Trainer ['LV Trainer'] lvtrainer
# 路易威登 Virgil Abloh ['lu', 'yi', 'wei', 'deng', ' Virgil Abloh'] luyiweidengvirgilabloh
# Louis Vuitton Monogram ['Louis Vuitton Monogram'] louisvuittonmonogram
# 古琦 ['gu', 'qi'] guqi
# 爱马仕 ['ai', 'ma', 'shi'] aimashi

短词-带音调拼音

from xpinyin import Pinyin
p = Pinyin()for wd in test_words:s = p.get_pinyin(wd, ',', tone_marks='numbers')s_ = s.split(',')py_ = [re.sub(pattern, '', i, flags=re.DOTALL).replace(' ', '').lower() for i in s_]print(wd, ' *** ', ''.join(py_))# 路易威登SPIN TIME  ***  lu4yi4wei1deng1spintime
# 路易·威登  ***  lu4yi4wei1deng1
# 克里斯汀·迪奥  ***  ke4li3si1ting1di2ao4
# 古驰  ***  gu3chi2
# 路易威登TAMBOUR  ***  lu4yi4wei1deng1tambour
# LV Lagoon  ***  lvlagoon
# LV Trainer  ***  lvtrainer
# 路易威登 Virgil Abloh  ***  lu4yi4wei1deng1virgilabloh
# Louis Vuitton Monogram  ***  louisvuittonmonogram
# 古琦  ***  gu3qi2
# 爱马仕  ***  ai4ma3shi4

基于编辑距离和拼音匹配

相关函数参考 短词匹配:拼音相似度

(1.)带音调匹配

query = '路一威登'most_sim_word = ''
min_dist = 999
for wd in test_words:dist = getEditDistance_hastone(query, wd)if dist <= min_dist:most_sim_word = wdmin_dist = distprint('当前相似度匹配次: {}, 与query: {} 的相似度 {}'.format(wd, query, dist) )
print(most_sim_word, min_dist)# 当前相似度匹配次: 路易威登SPIN TIME, 与query: 路一威登 的相似度 9
# 当前相似度匹配次: 路易·威登, 与query: 路一威登 的相似度 1
# 当前相似度匹配次: 克里斯汀·迪奥, 与query: 路一威登 的相似度 14
# 当前相似度匹配次: 古驰, 与query: 路一威登 的相似度 13
# 当前相似度匹配次: 路易威登TAMBOUR, 与query: 路一威登 的相似度 8
# 当前相似度匹配次: LV Lagoon, 与query: 路一威登 的相似度 13
# 当前相似度匹配次: LV Trainer, 与query: 路一威登 的相似度 12
# 当前相似度匹配次: 路易威登 Virgil Abloh, 与query: 路一威登 的相似度 12
# 当前相似度匹配次: Louis Vuitton Monogram, 与query: 路一威登 的相似度 16
# 当前相似度匹配次: 古琦, 与query: 路一威登 的相似度 13
# 当前相似度匹配次: 爱马仕, 与query: 路一威登 的相似度 13
# 路易·威登 1

(2.)不带音调匹配

query = '路一威登'most_sim_word = ''
min_dist = 999
for wd in test_words:dist = getEditDistance_notone(query, wd)if dist <= min_dist:most_sim_word = wdmin_dist = distprint('当前相似度匹配次: {}, 与query: {} 的相似度 {}'.format(wd, query, dist) )
print(most_sim_word, min_dist)# 当前相似度匹配次: 路易威登SPIN TIME, 与query: 路一威登 的相似度 8
# 当前相似度匹配次: 路易·威登, 与query: 路一威登 的相似度 0
# 当前相似度匹配次: 克里斯汀·迪奥, 与query: 路一威登 的相似度 11
# 当前相似度匹配次: 古驰, 与query: 路一威登 的相似度 9
# 当前相似度匹配次: 路易威登TAMBOUR, 与query: 路一威登 的相似度 7
# 当前相似度匹配次: LV Lagoon, 与query: 路一威登 的相似度 9
# 当前相似度匹配次: LV Trainer, 与query: 路一威登 的相似度 8
# 当前相似度匹配次: 路易威登 Virgil Abloh, 与query: 路一威登 的相似度 11
# 当前相似度匹配次: Louis Vuitton Monogram, 与query: 路一威登 的相似度 15
# 当前相似度匹配次: 古琦, 与query: 路一威登 的相似度 9
# 当前相似度匹配次: 爱马仕, 与query: 路一威登 的相似度 10
# 路易·威登 0
http://www.xdnf.cn/news/4493.html

相关文章:

  • LeetCode热题100--73.矩阵置零--中等
  • C语言初阶--数组
  • GSENSE2020BSI sCMOS科学级相机主要参数及应用场景
  • 探针卡的类型及其在半导体测试中的应用
  • Java高频面试之并发编程-13
  • 奥威BI:AI驱动的智能财务分析革新,重塑企业决策新范式
  • 深入探索 Spark RDD 行动算子:功能解析与实战应用
  • Python基础语法(上)
  • 从图灵机到量子计算:逻辑可视化的终极进化
  • 基于C++实现(控制台)交通咨询系统
  • C语言指针用法详解
  • 切片和边缘计算技术分析报告
  • 【今日三题】跳台阶扩展问题(找规律) / 包含不超过两种字符的最长子串 / 字符串的排列(回溯—全排列)
  • 架设手游使用游戏盾SDK怎么提升网络速度?
  • 【ROS2】Nav2源码之行为树定义、创建、加载
  • 六级阅读———2024.12卷一 仔细阅读2
  • 城楼预约(二):参数逆向分析思路
  • 挑战用豆包教我学Java01天
  • 单地平面6层PCB设计实战:如何兼顾电源与信号完整性?
  • Ubuntu手动安装Consul 的详细步骤
  • 如何选择海外专线网络呢?实现业务覆盖
  • 2025安徽通信施工安全员C证精选练习题
  • 【PostgreSQL数据分析实战:从数据清洗到可视化全流程】6.4 时间序列分析(窗口函数处理时间数据)
  • Vue3项目,用ts写一个方法,生成1到50的随机整数,包含1和50
  • Excel表格怎样导出为csv格式
  • Selenium的driver.get_url 和 手动输入网址, 并点击的操作,有什么不同?
  • WD1016 升压转换器性能特点及应用场景分析
  • C++_MD5算法
  • python+pytest接口自动化测试--日志记录
  • Linux cp 目录A所有内容到目录B