精华内容
下载资源
问答
  • 一般情况下,这三种匹配方式是精确匹配,词组匹配和广泛匹配。为什么要有这三种匹配方式? 个人感觉原因就是你发现有一个词是自己产品很准确的关键词,当你添加到账户之后,运用某种匹配方式,如词组匹配,...

    同一个关键字,用3种匹配方式投放,调整出价的时候应该怎么调整。

    一般情况下,这三种匹配方式指的是精确匹配,词组匹配和广泛匹配。为什么要有这三种匹配方式?

    个人感觉原因就是你发现有一个词是自己产品的很准确的关键词,当你添加到账户之后,运用某种匹配方式,如词组匹配,运行一段时间,发现展示量很少,CTR很低,这时候,你会考虑是否要更改匹配方式,如更改成广泛匹配,但更改的同时你不知道会带来怎么样的后果,所以就直接在原账户里添加一个广泛匹配和精确匹配(即完全匹配),如[A],"A",A然后从搜索字词查询报告里看,A相关的触发的词的CTR和click更高的话,就不要暂停A,着重优化A,使之表现良好,若“A”表现较好的话,继续优化"A",或者[A],不建议将几种匹配方式的同一个词放到一个组里,可以分别放到不同的广告组里,观察数据,在分析优化。



     

    转载于:https://www.cnblogs.com/angelia-dong/p/3853027.html

    展开全文
  • 怎么匹配关键词

    2014-01-15 17:23:06
    各有利弊,精准匹配会阻挡很多你想不到有用的关键词,进而阻挡很多客户,短语匹配会阻挡一部分,而广泛匹配就完全不会阻挡,但也会造成很多垃圾点击。 我建议是用广泛匹配,而进行人工精准否定。这是一对很好...

    百度推广关键词匹配有三点:1,广泛匹配,2,短语匹配,3,精准匹配。

    当然精准匹配是绝对不会因无聊关键词而搜索到的。而短语匹配就差一点儿,广泛匹配更差。那吗就关键在于你选哪一种方式。各有利弊,精准匹配会阻挡很多你想不到的有用的关键词,进而阻挡很多客户,短语匹配会阻挡一部分,而广泛匹配就完全不会阻挡,但也会造成很多垃圾点击。

    我建议的是用广泛匹配,而进行人工的精准否定。这是一对很好的搭档,一个广泛匹配,一个精准否定。为的是让更多客户找到我们,而又阻止垃圾点击。

    那么如何找到哪些垃圾点击而进行精准否定呢?

    一个是看站长统计里的关键词,一个是运用客服工具展现的关键词,还有一个查看客服对话框聊天内容。

    还有一个否定是完全否定,就是只要一句话里包含这个词就会否定。按百度的话说就是当且仅当网民的搜索词中完全包含否定关键词时,您的推广结果将不会展现。这个我建议慎用,但也是要用的,如果有一类关键词完全与这个没关系,那就可以用,比如妇科的症状,这个症状转化率不高,那就否定症状,不管客户搜索什么症状都不会再显示。可谓一劳永逸。但千万别否定错了。

    展开全文
  • 举个简单案例,在“我要认真看论文”句子中查找关键词“论文”,无论采用何种匹配方式,它都需要从左往右或者从右往左一个字或一个词查找(长度取决于对分词粒度控制),直到经过几个轮回之后找到“论文”这个...

    分词概述

    目前中文的分词可分为三大类:基于词典的方法、基于统计的方法和混合方法。基于词典的方法需要分词的源字符串,如果能够找到对应的字符串将成功匹配。这是一种很原始且效率相对低效的分词策略。举个简单案例,在“我要认真看论文”句子中查找关键词“论文”,无论采用何种匹配方式,它都需要从左往右或者从右往左一个字或一个词的查找(长度取决于对分词的粒度控制),直到经过几个轮回之后找到“论文”这个词组,这样才算成功。对于这类分词,根据解析方向的不同,可以分为正向匹配和逆向匹配;按照不同长度优先原则,可以分为最长匹配和最短匹配。

    • 正向最大匹配法( Maximum Match Method)。该方法就是从左往右通过词典进行匹配时,尽最大可能去匹配一个语义完整的词汇。例如有这样一个句子:“现在开始进行毕业论文的查重检测了”。对这个句子进行匹配时,方向为从左到右,匹配长度循环递减。假设最大匹配长度为5,那么首先匹配结果是“现在开始进”,不符合要求。接下来是“现在开始”,然后是“现在开”,再然后是“现在”,这是一个符合要求的词,提取出来。同理接下来5个字,“开始进行毕”,提取出“开始”,按此进行不断匹配,最后通过正向最大匹配法得到我们想要的分词结果:“现在/开始/进行/毕业/论文/的/查重/检测/了”。
    • 逆向最大匹配法( Reverse Maximum Match Method )。顾名思义,它的匹配方向与正向匹配法相反,从右边取N个字符进行匹配。若失败,则去掉匹配字段最前面的一个字,继续匹配。在实际应用中,通常通过正向匹配法来实现逆向匹配,先将源文件进行倒排,得到逆序文件,然后根据逆序词典(即按照相反的顺序存储词条),对逆序文件使用正向最大匹配法进行处理,这样就得到理论上逆向匹配法得到的结果文件。
    • 双向最大匹配法。双向最大匹配法( Bi-directction Matching method) 是将正向最大匹配法得到的分词结果和逆向最大匹配法得到的结果进行比较,然后按照最大匹配原则,选取词数切分最少的作为结果。 据 SunM.S. 和 Benjamin K.T. ( 1995 )的研究表明 ,中文中 90.0% 左右的句子,正向最大匹配法和逆向最大匹配法完全重合且正确,只有大概 9.0% 的句子两种切分方法得到的结果不一样,但其中必有一个是正确的 (歧义检测成功),只有不到 1.0%的句子,使用正向最大匹配法和逆向最大匹配法的切分虽重合却是错的,或者正向最大匹配法和逆向最大匹配法切分不同但两个都不对 (歧义检测失败) 。 这正是双向最大匹配
      法在实用中文信息处理系统中得以广泛使用的原因。

    python代码实现

    import os
    import sys
    import time
    
    
    class IMM(object):
        def __init__(self, *dic_path):
            self.dictionary = set()
            self.maximum = 0
            # 加载词典
            for path in dic_path:
                self.load_dic(path)
    
        # 加载字典
        def load_dic(self, dic_path):
            with open(dic_path, 'r', encoding='utf-8') as fp:
                for line in fp:
                    line = line.strip().split()[0]
                    if not line:
                        continue
                    self.dictionary.add(line)
                    self.maximum = max(self.maximum, len(line))
    
        # 正向最大匹配
        def FMM_cut(self, text):
            result = []
            index = 0
            while index < len(text):  # 小标未超过句子长度
                match = False
                for size in range(self.maximum, 0, -1):
                    if index + size > len(text):
                        continue
                    piece = text[index:(index + size)]
                    if piece in self.dictionary:
                        match = True
                        result.append(piece)
                        index += size
                        break
                if not match:
                    result.append(text[index])
                    index += 1
            return result
    
        # 逆向最大匹配
        def RMM_cut(self, text):
            result = []
            index = len(text)
            while index > 0:
                match = False
                for size in range(self.maximum, 0, -1):
                    if index - size < 0:
                        continue
                    piece = text[(index - size):index]  # 切分单词
                    # 匹配成功,index向前移动word长度
                    if piece in self.dictionary:
                        match = True
                        result.append(piece)
                        index -= size
                        break
                if not match:
                    result.append(text[index - 1])
                    index -= 1
            return result[::-1]
    
        # 双向最大匹配
        def BMM_cut(self, text):
            words_FMM = self.FMM_cut(text)
            words_RMM = self.RMM_cut(text)
            print("FMM:", words_FMM)
            print("RMM:", words_RMM)
            # 如果正向和反向结果一样,返回任意一个
            if words_FMM == words_RMM:
                return words_FMM
            # 单字词个数
            f_single_word = 0
            r_single_word = 0
    
            # 总次数
            fmm_count = len(words_FMM)
            rmm_count = len(words_RMM)
    
            # 非字典数
            fmm_oov = 0
            rmm_oov = 0
            # 罚分都为1分,分值越低越好
            fmm_score = 0
            rmm_score = 0
    
            # 分词结果不同,返回单字数、非字典词、总词数少的那一个
            for each_word in words_FMM:
                if len(each_word) == 1:
                    f_single_word += 1
                if each_word not in self.dictionary:
                    fmm_oov += 1
            for each_word in words_RMM:
                if len(each_word) == 1:
                    r_single_word += 1
                if each_word not in self.dictionary:
                    rmm_oov += 1
    
            # 非字典词越少越好
            fmm_score = fmm_oov + fmm_count + f_single_word
            rmm_score = rmm_oov + rmm_count + r_single_word
    
            # 返回罚分少的那个
            if fmm_score < rmm_score:
                return words_FMM
            else:
                return words_RMM
    
    
    def main():
    
        dict1_path = os.path.join(sys.path[0], r'.\data\dict.txt.big')
        dict2_path = os.path.join(sys.path[0], r'.\data\THUOCL_animal.txt')
        test_path = os.path.join(sys.path[0], r'.\data\CTBtestingset.txt')
        output_path = os.path.join(sys.path[0], r'.\data\output.txt')
    
        tokenizer = IMM(dict1_path, dict2_path)
        # tokenizer = IMM(r'./data/THUOCL_animal.txt')
    
        try:
            with open(test_path, 'r',
                      encoding='utf-8') as input_text, open(output_path,
                                                            'w',
                                                            encoding='utf-8',
                                                            newline='') as output:
                for line in input_text:
                    line = tokenizer.BMM_cut(line.strip())
                    print(line)
                    line = ' '.join(line) + os.linesep
                    print(line)
                    output.write(line)
        except Exception:
            print(sys.stderr, "文件打开错误")
            raise Exception
            sys.exit(1)
    
    
    if __name__ == "__main__":
        start = time.time()
        main()
        end = time.time()
        print("运行时间:", end - start)
    
    展开全文
  • 目前主流文本向量化方式主要包括one-hot、tf (term-frequency)和tf-idf (term frequency–inverse document frequency)这三种,越往后准确度应该越高。 我需求比较简单,只有一百多个相对较短的关键词,所以先用...

    昨天大致把思路理清楚了,用one-hot的方式把关键词按字拆开编码,今天尝试可行性。

    目前主流的文本向量化方式主要包括one-hot、tf (term-frequency)和tf-idf (term frequency–inverse document frequency)这三种,越往后准确度应该越高。

    我的需求比较简单,只有一百多个相对较短的关键词,所以先用one-hot方式向量化,把整个流程跑通,再回来测试准确度的区别。

    分词的话可以用python的jieba包,因为词语比较短,所以也先不分词了,按字拆分。

    一百多个词拆下来一共200多个关键字,感觉也还ok。

    思路的验证是在Excel中做的,毕竟数据量小,看起来也方便。

    流程是:先用vba把词拆成字(用Excel公式也可以完成);用vba的字典功能把字去重放到首行;然后用countif公式得出one-hot编码。

    关键词编码

    后面遇到新词之后计算新词的编码,对比两个向量就可以计算相似度了。

    向量的相似度用 余弦相似度 方法,不赘述,具体解释可以百度,公式如下。

    余弦相似度公式

    找了一段用numpy计算余弦相似度的代码,进行测试。

    import numpy as np
    
    def cos_sim(vector_a, vector_b):
        """
        计算两个向量之间的余弦相似度
        :param vector_a: 向量 a 
        :param vector_b: 向量 b
        :return: sim
        """
        vector_a = np.mat(vector_a)
        vector_b = np.mat(vector_b)
        num = float(vector_a * vector_b.T)
        denom = np.linalg.norm(vector_a) * np.linalg.norm(vector_b)
        sim = num / denom
        return sim
    
    print( cos_sim(np.array([[1, 1, 1,1,1,1,1,1]]),np.array([[1, 2, 1,1,1,1,1,1]])) )
    
    

    成功计算出这两个测试向量的相似度

    目前整个计算流程基本算是跑通了,接下来就是用C#实现以上功能。

    展开全文
  • NLP——关键词提取

    2021-01-23 21:20:48
    有监督:通过分类的方式进行,通过构建一个较为丰富和完善词表,然后判断每个文档与词表中每个词的匹配度,以类似打标签的方式达到关键词提取效果。 优点:能够获得较高精度; 缺点:需要人工建立和维护含有...
  •  站内广告关键词匹配方式三种类型:广泛匹配、词组匹配、精确匹配。有很多卖家概括了一个逻辑,大词做广泛匹配、长尾词做词组匹配或精准匹配,这是没问题。  假设你为你产品设置竞价关键词是W...
  • 3.关键字匹配度:广泛匹配,词组匹配和精确匹配三种匹配方法,要考虑产品与关键字的匹配方式以及购买者如何搜索产品。 那么,如何改善关键字匹配?我们必须从三个角度进行思考和优化: 1.我们出售什么产品?从我们...
  • 那么首先需要实现包含的方式(精确完全匹配),这里我们要用到是termQuery首先看下ES Bool联合查询属性:bool联合查询: must,should,must_not联合查询就会使用到must,should,must_not三种关键词。这三个可以这么...
  • 通常关键词都会有三种匹配模式,精确匹配,短语匹配和广泛匹配模式。不同的匹配模式决定了广告在搜索结果中被展现的数量,从而进一步影响到了关键词的点击量。当我们调整一广告系列关键词的匹配模
  • 文章目录一、查询方式1:基于关键词的查询(1)布尔查询(2)短语查询(3)近邻查询:短语查询扩展2:结构查询3:容错查询(Tolerant Retrieval)(1)模式匹配(2)拼写检查二、查询操作1:相关反馈(1)相关反馈的...
  • 为了从物体的多视点图像中恢复出物体的三维表面,本文提出了一基于曲面演化的多视点三维重建方法。该方法采用变分水平集的思想,首先将待重建表面隐式地表示为水平集函数的零水平集,然后根据待重建表面在各视点...
  • 勾选中任意推广单元节点前的复选框,右击选择加载选中推广单元的关键词 三、关键词管理、批量智能修改关键词出价 通过以上三种方法加载出来的关键词可直接在右侧关键词管理窗口中显示出关键词的详细信息,主要有:...
  • 为此,本系统主要研究开发“Web表格信息抽取引擎”,其目的是提供一以Web表格为信息抽取对象,支持抽取方式选择抽取工具。 “信息抽取引擎”由以下两个部分构成: 1、 Html文档分析工具 2、 信息抽取工具。...
  • 文章目录前言一、简单内容属性匹配二、复杂一点ContentBase算法:基于全文搜索引擎关键词提取算法总结 前言 ContentBase指是以内容、文本为基础挖掘算法,有简单基于内容属性的匹配,也有复杂自然...
  • 朴素贝叶斯

    2021-03-03 08:45:43
    8 简单高效9 处理重复语言的三种方式10 去除停用词与选择关键词11 浅谈平滑技术12 内容总结13 为什么不直接匹配关键词14 实际工程的tricks15 贝叶斯方法的思维方式16 贝叶斯方法的应用 1引言 2 贝叶斯公式 3 用机器...
  •  速群行业商务系统提供自由SEO工具、可自动匹配产品关键词进行优化。 九、不断升级开发,提供新版本。  我们在原始测试版基础上不断研发,根据不同时期功能要求,和各大行业网站合作,有效手机反馈在...
  • 表)及数据包处理(mangle 表)三种数据包处理能力.下面以Filter 表为例加以简单介绍. Filter 表为系统 缺省,其结构如下图.该表中包含了输入(INPUT)、输出(OUTPUT)和转发(FORWARD)3 条链.所有目标 地址指向本机数据包...
  • ASP.NET 支持三种不同开发模式: Web Pages(Web 页面)、MVC(Model View Controller 模型-视图-控制器)、Web Forms(Web 窗体) MVC 编程模式 MVC 是三种 ASP.NET 编程模式中一种。 MVC 是一种使用 MVC...
  • C#微信平台开发

    2013-12-20 12:55:22
    C#,微信互动系统源码,不错参考 系统特点: ... 2、执行一段自定义查询代码; 3、按流程交互和流程间跳转; 4、检测内容中关键词匹配系数;...6、随机、组合、顺序三种方式返回内容; 7、订阅、菜单点击等事件处理;
  • 自然语言处理之朴素贝叶斯小结

    千次阅读 2017-08-30 21:51:53
    3.处理重复语句的三种方式4.处理未在训练集中覆盖的词语——平滑技术(赋予一个小概率,从而调低整体的概率)5.直接匹配关键词处理垃圾邮件,为何行不通。6.实际工程中的小技巧: 取对数,把乘法变成加法.并预先把...
  • 1.2.4 Android移动Web项目开发的三种解决方案:Native, Web和Hybrid优缺陷分析 4 1.2.5国内外应用现状 6 1.2.6 研究现状总结 7 1.3研究目标与内容 7 1.3.1多窗口浏览器模式的实现机制 7 1.3.2跨域交互即缓存处理方法...
  • 渗透测试之信息收集

    2019-09-21 21:09:40
    信息收集的方式可以分为两:主动和被动。 主动信息收集:通过直接访问、扫描网站,这种流量将流经网站。 被动信息收集:利用第服务对目标进行访问了解,比例:Google搜索、Shodan搜索等。 Google Hacking ...
  • 但是MySQL可以通过多个modify的方式完成: alter table user modify tel varchar(15) default '02087654321' first, modify name varchar(20) after tel; 11、 删除指定字段 alter table user drop photo; 12、 ...
  • V1.7功能亮点:新增Access数据库支持,目前已支持Access,MSSQL,MYSQL三种应用广泛数据库,智能URL标签,适应网站地址比较复杂情况,还有搜索结果优化等多处细节改进。欢迎下载体验。 软件功能: 1,智能中文...
  • 我们提出了一基于最优传输理论目标检测样本匹配策略,利用全局信息来寻找最优样本匹配的结果,相对于现有样本匹配技术,具有如下优势:1). 检测精度高。全局最优的匹配结果能帮助检测器以稳定高效的方式训练,...
  • 要了解面向对象编程(OOP)的基本概念,需要理解 OOP 的三个主要概念,它们撑起 了整个 OOP 的框架。这三个概念是:封装、继承性和多态性。除此以外,还需了解对象、 类、消息、接口、及抽象等概念。 2.2.1 ...
  • 6、随机、组合、顺序三种方式返回内容; 7、订阅、菜单点击等事件处理; 使用说明: 一、在系统设置中填写Token; 二、设置微信公众帐号为开发模式,API地址为http://您域名/wechatapi.aspx 三、测试用户 帐号...
  • Weback微信互动系统源码 源码描述: 特别声明:之前有同学说我们代码很多东西都封装了,其实XCore只是一个底层框架,微信互动平台全部核心...6、随机、组合、顺序三种方式返回内容; 7、订阅、菜单点击等事件处理;
  • Weback微信互动系统源码 源码描述: 特别声明:之前有同学说我们代码很多东西都封装了,其实XCore只是一个底层框架,微信互动平台全部核心...6、随机、组合、顺序三种方式返回内容; 7、订阅、菜单点击等事件处理;

空空如也

空空如也

1 2 3
收藏数 60
精华内容 24
关键字:

关键词的三种匹配方式