Evilmartin 2021-07-27 11:16 采纳率: 80%
浏览 107
已结题

将获取到的地址信息跟Excle表中的所有地址信息做相似度计算

如:深圳龙岗区中海信创新产业城15栋(距离地铁10号线凉帽山地铁站D出口30米) 这个字符串 跟表里的所有地址信息做相似度计算 输出对应匹配度最高的字符串跟数值
img

  • 写回答

4条回答 默认 最新

  • Jason Ho 2021-07-27 11:47
    关注
    
    # -*- coding: utf-8 -*-
    import jieba
    import numpy as np
    import re
    
    def get_word_vector(s1,s2):
        """
        :param s1: 句子1
        :param s2: 句子2
        :return: 返回句子的余弦相似度
        """
        # 分词
        cut1 = jieba.cut(s1)
        cut2 = jieba.cut(s2)
        list_word1 = (','.join(cut1)).split(',')
        list_word2 = (','.join(cut2)).split(',')
    
        # 列出所有的词,取并集
        key_word = list(set(list_word1 + list_word2))
        # 给定形状和类型的用0填充的矩阵存储向量
        word_vector1 = np.zeros(len(key_word))
        word_vector2 = np.zeros(len(key_word))
    
        # 计算词频
        # 依次确定向量的每个位置的值
        for i in range(len(key_word)):
            # 遍历key_word中每个词在句子中的出现次数
            for j in range(len(list_word1)):
                if key_word[i] == list_word1[j]:
                    word_vector1[i] += 1
            for k in range(len(list_word2)):
                if key_word[i] == list_word2[k]:
                    word_vector2[i] += 1
    
        # 输出向量
        print(word_vector1)
        print(word_vector2)
        return word_vector1, word_vector2
    
    
    
    
    def cos_dist(vec1,vec2):
        """
        :param vec1: 向量1
        :param vec2: 向量2
        :return: 返回两个向量的余弦相似度
        """
        dist1=float(np.dot(vec1,vec2)/(np.linalg.norm(vec1)*np.linalg.norm(vec2)))
        return dist1
    
    def filter_html(html):
        """
        :param html: html
        :return: 返回去掉html的纯净文本
        """
        dr = re.compile(r'<[^>]+>',re.S)
        dd = dr.sub('',html).strip()
        return dd
    
    
    if __name__ == '__main__':
        s1="很高兴见到你"
        s2="我也很高兴见到你"
        vec1,vec2=get_word_vector(s1,s2)
        dist1=cos_dist(vec1,vec2)
        print(dist1)
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 8月4日
  • 已采纳回答 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥20 设计一款异域新娘的视频相亲软件需要哪些技术支持
  • ¥15 stata安慰剂检验作图但是真实值不出现在图上
  • ¥15 c程序不知道为什么得不到结果
  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解