精华内容
下载资源
问答
  • 关键词选取工具 DEMO地址:
  • 古志强网络营销师: 关键词策略 关键词是SEO核心!...关键词决定了SEO的效果: ...不同的关键词搜索量不同,同排名下给网站带来的流量不同!...一、关键词选取原则 1.相关性原则 关键词与网站内容高度相

    古志强网络营销师:


    关键词策略

    关键词是SEO核心!

    关键词决定了SEO的效果:

    Index.baidu.com

    不同的关键词搜索量不同,同排名下给网站带来的流量不同!

    不同的关键词转化效果不同,给网站带来的转化业绩不同。

    什么时候确定网站关键词?

    网站上线之前确定关键词,上线后修改关键词对SEO不利。

    一、关键词的选取原则

    1.相关性原则

    关键词与网站内容高度相关(相关性越高越容易做出排名、相关性越高后期转化效果越好)

    2.符合用户的搜索习惯

    SEO/搜索引擎优化

    CMA/美国注册管理会计师

    3.用户搜索的多样性

    CMA、CMA是什么、CMA是什么意思

    网络营销、互联网营销、网络推广、网络运营

    4.关键词不宜过于宽泛

    服装/男士服装/男士商务服装

    房地产/北京房地产

    旅游/旅游资讯/三亚旅游资讯

    关键词越宽泛竞争度往往越大(难做出排名);关键词宽泛转化率低。

    5.关键词的商业价值

    不同的关键词转化率不同,转化率高的关键词商业价值高。

    企业站:精准性高、搜索量高。

    资讯站:关键词搜索量高。

    6.网站核心关键词

    给网站带来绝大多数流量的关键词。

    核心关键词数量:5-8个;

    核心关键词竞争度不宜过大(不易做出排名)

    核心关键词竞争度不宜过小(过小之后有排名没流量)

    核心关键词必须有搜索量!!

    二、关键词的拓展方法

    网站拓展关键词主要考虑关键词选取原则。

    网站主题:北京家庭装修企业站

    1.头脑风暴

    主要考虑具体的产品词、业务词。

    2.调研竞争对手的关键词(不要看广告)

    自然排名较好的网站的keywords中的关键词。(公司不与平台竞争)

    任务:调研3个竞争对手的关键词。

     

    3.搜索引擎相关搜索和推荐

    搜索不同关键词获取更多的推荐词。

    相关搜索和推荐的关键词更加符合用户的搜索习惯。

     

    4.关键词工具-百度关键词规划师

    www2.baidu.com

     

    注册账号时—完善信息—首页URL书写自己注册的域名。其他信息随便!!!

     

    拓展完的关键词需删除重复项!

    三、关键词的分析筛选

    1.精准度分析

    通过逆向思维考虑用户搜索关键词的需求,与网站内容/服务/产品是否相关。

     

    提问:卖“婷美减肥茶”,以下哪些关键词有效?

    减肥茶、减肥产品、运动减肥的方法、减肥茶价格、什么茶减肥、瘦身减肥茶、减肥茶有害、三九减肥茶、营养减肥、什么减肥产品好、轻松减肥、减肥产品排行榜。

    2.搜索量分析

    工具:百度关键词规划师

    关键词搜索量越高竞争度往往越大。

    3.商业价值分析

    CMA培训结构:

    CMA培训/CMA自学 

    卖液晶电视

    液晶电视价格、液晶电视促销

    企业站:精准度高且搜索量高的关键词商业价值高。

    资讯站:搜索量高的关键词商业价值高。

    4.竞争度分析

    确定网站核心关键词

    Ø  搜索结果数

    搜索结果越多,关键词竞争度越大。

    Ø  搜索指数

    Index.baidu.com

    搜索指数高的关键词竞争度高;

    百度指数未收录的关键词可参考搜索量。

    Ø  搜索结果广告数量

    需要不同时间段搜索不同关键词来同广告数量。

    广告数量即为竞争对手数量(竞争对手越多,竞争度越大)

    Ø  搜索结果页

    首先剔除百度阿拉丁结果位置。

    主要看百度快照结果的SEO水平SE表现分析)

    搜索结果的SE表现越高,关键词的竞争度越大!!!

    网页的竞争度排名:

    首页>栏目页(列表页、频道页)>文章页

     

     

    任务:1.明确网站主题;

    2.搭建网站的关键词库(拓展至不可拓展为止!不可包含无效关键词)

    3.确定网站核心关键词(5-8;竞争度适中;必须有搜索量

     

    人工拓展关键词方法:

    地域拓展:北京美食/云南美食/

             北京旅游攻略/上海旅游攻略

    人群拓展:中年颈椎病/老年人颈椎病

    大学生学什么好  军人转业做什么?

    商业模式拓展:服装批发、服装零售、服装代理、服装加盟

    季节拓展:夏季女装、冬季男装


    【详细seo讲解请点击!更多seo内容参考!】


    展开全文
  • 其实对于这一点,作者无需烦恼,医学SCI论文关键词选取是有方法的。 浅谈医学SCI论文关键词的选取方法 01 论文关键词概念转换 很多人在分析主题内容,找出论文的中心主题以后,还要对其进行概括、...

    在一篇完整的医学SCI论文中,关键词是非常细小的一部分,但这并不影响关键词在SCI论文中所起的重要作用。不少作者在选取关键词的时候常常会感到困惑,是不是随便选取几个关键词就好了。其实对于这一点,作者无需烦恼,医学SCI论文关键词选取是有方法的。

     

     

     

    浅谈医学SCI论文关键词的选取方法

     

     

    01

    论文关键词概念转换

     

     

    很多人在分析主题内容,找出论文的中心主题以后,还要对其进行概括、提炼,将主题概念准确、适度地表达出来。在这一步骤中,极易出现概念混淆的问题,以致于造成关键词的误标。为了更准确、适度地表达主题,常常要对主题的概念进行转换,主题概念的转换不能光从字面上进行,而要从主题概念的涵义上进行,因此要特别注意概念的综合分析。

     

    具体解决的方法:主题概念的转换,按复杂程度,有概念直接转换和概念的分解转换两种方式。概念的直接转换只需直接查阅词表就可完成,概念的分解转换却要复杂得多。在概念转换的过程中,标引者不仅需要有广博的知识,还需要有丰富的想像力,如标引“下肢不等长”一词时,可能想到的可以概念转换的词就有:“短肢畸形”、“肢体短缩”、“肢体不等长”等,而正确的标引是:“腿长不等”。可见,渊博的知识和丰富的想像力可以帮助我们更好地完成概念转换,标引出正确的关键词。

     

     

    02

    关键词词表应用问题

     

    文章剩余内容<<<<

     

    展开全文
  • 关键词抽取方法

    千次阅读 2021-01-28 20:47:13
    关键词抽取就是通过一定的方法抽取出能表达文章的中心主题的一系列方法。 2、关键词抽取方法分类 2.1、有监督无监督抽取方法 无监督关键词提取方法主要有三类:基于统计特征的关键词提取(TF,TF-IDF);基于词图...

    1、关键词提取

    为了方便用户快速了解文章的中心主题,会抽取文章的一些中心词来表达文章的中心思想。关键词抽取就是通过一定的方法抽取出能表达文章的中心主题的一系列方法。

    2、关键词抽取方法分类

    2.1、有监督无监督抽取方法

    无监督关键词提取方法主要有三类:基于统计特征的关键词提取(TF,TF-IDF);基于词图模型的关键词提取(PageRank,TextRank);基于主题模型的关键词提取(LDA)

    • 基于统计特征的关键词提取算法的思想是利用文档中词语的统计信息抽取文档的关键词;
    • 基于词图模型的关键词提取首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词;
    • 基于主题关键词提取算法主要利用的是主题模型中关于主题分布的性质进行关键词提取;

    有监督关键词提取方法

    将关键词抽取过程视为二分类问题,先提取出候选词,然后对于每个候选词划定标签,要么是关键词,要么不是关键词,然后训练关键词抽取分类器。当新来一篇文档时,提取出所有的候选词,然后利用训练好的关键词提取分类器,对各个候选词进行分类,最终将标签为关键词的候选词作为关键词。

    2.2、无监督方法和有监督方法优的缺点

    无监督方法不需要人工标注训练集合的过程,因此更加快捷,但由于无法有效综合利用多种信息 对候选关键词排序,所以效果无法与有监督方法媲美;而有监督方法可以通过训练学习调节多种信息对于判断关键词的影响程度,因此效果更优,有监督的文本关键词提取算法需要高昂的人工成本,因此现有的文本关键词提取主要采用适用性较强的无监督关键词提取。

    2.3、关键词提取常用工具包

    3、常见的关键词抽取方法

    3.1、TFIDF

    3.1.1、TF-IDF算法介绍

           TF-IDF(term frequency–inverse document frequency,词频-逆向文件频率)是一种用于信息检索(information retrieval)与文本挖掘(text mining)的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。 TF-IDF的主要思想是:如果某个单词在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。     

    词频(TF)表示词条(关键字)在文本中出现的频率。这个数字通常会被归一化(一般是词频除以文章总词数), 以防止它偏向长的文件。表示如下:

           TF=该词语在这篇内容中出现的次数/这篇内容所有的词语数量     

    逆向文件频率 (IDF) :某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目再将得到的商取对数得到。如果包含词条t的文档越少, IDF越大,则说明词条具有很好的类别区分能力。如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用 1

           IDF=log((语料库中的文档总数包含该词语的文档数+1)/(语料库中的文档总数包含该词语的文档数+1))

       TF-IDF=TF * IDF

           某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

    3.1.2、TFIDF关键词提取jieba实现

    import jieba.analyse
    
    '''
    jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())
    sentence 为待提取的文本
    topK 为返回几个 TF/IDF 权重最大的关键词,默认值为 20
    withWeight 为是否一并返回关键词权重值,默认值为 False
    allowPOS 仅包括指定词性的词,默认值为空,即不筛选
    '''
    
    text = '关键词是能够表达文档中心内容的词语,常用于计算机系统标引论文内容特征、\
    信息检索、系统汇集以供读者检阅。关键词提取是文本挖掘领域的一个分支,是文本检索、\
    文档比较、摘要生成、文档分类和聚类等文本挖掘研究的基础性工作\
    '
    
    keywords = jieba.analyse.extract_tags(text, topK=5, withWeight=True, allowPOS=())
    print(keywords) #[('文档', 0.7683580497346154), ('文本', 0.4587102868907692), ('关键词', 0.45658796811333335), ('挖掘', 0.37005466278512816), ('文本检索', 0.30653250007435895)]
    
    

    3.1.3、tfidf的缺点

    优点:

    解释性强,能快速实现

    缺点:

    1)TF-IDF 采用文本逆频率 IDF 对 TF 值加权取权值大的作为关键词,但 IDF 的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好地完成对权值调整的功能,所以 TF-IDF 算法的精度并不是很高,尤其是当文本集已经分类的情况下。

    2)在本质上 IDF 是一种试图抑制噪音的加权,并且单纯地认为文本频率小的单词就越重要,文本频率大的单词就越无用。这对于大部分文本信息,并不是完全正确的。IDF 的简单结构并不能使提取的关键词, 十分有效地反映单词的重要程度和特征词的分布情 况,使其无法很好地完成对权值调整的功能。尤其是在同类语料库中,这一方法有很大弊端,往往一些同类文本的关键词被盖。

    3)没有考虑特征词的位置因素对文本的区分度,词条出现在文档的不同位置时,对区分度的贡献大小是不一样的。

    4)按照传统TF-IDF,往往一些生僻词的IDF(反文档频率)会比较高、因此这些生僻词常会被误认为是文档关键词。

    5)传统TF-IDF中的IDF部分只考虑了特征词与它出现的文本数之间的关系,而忽略了特征项在一个类别中不同的类别间的分布情况。

    6)对于文档中出现次数较少的重要人名、地名信息提取效果不佳。

    3.2、TextRank关键词提取

    3.2.1、TextRank原理简介

    TextRank算法是一种基于图的用于关键词抽取和文档摘要的排序算法,由谷歌的网页重要性排序算法PageRank算法改进而来,它利用一篇文档内部的词语间的共现信息(语义)便可以抽取关键词,它能够从一个给定的文本中抽取出该文本的关键词、关键词组,并使用抽取式的自动文摘方法抽取出该文本的关键句。

    TextRank算法的基本思想是将文档看作一个词的网络,该网络中的链接表示词与词之间的语义关系。TextRank算法将词视为“万维网上的节点”,根据词之间的共现关系计算每个词的重要性,并将PageRank中的有向边变为无向边。

    3.2.2、TextRank具体构建过程

     

    3.2.3、TextRank实例

    import jieba.analyse
    '''
    jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=())
    sentence 为待提取的文本
    topK 为返回几个 textrank 权重最大的关键词,默认值为 20
    withWeight 为是否一并返回关键词权重值,默认值为 False
    allowPOS 仅包括指定词性的词,默认值为空,即不筛选
    '''
    
    if __name__ == "__main__":
        text = "来源:中国科学报本报讯(记者肖洁)又有一位中国科学家喜获小行星命名殊荣!4月19日下午,中国科学院国家天文台在京举行“周又元星”颁授仪式," \
               "我国天文学家、中国科学院院士周又元的弟子与后辈在欢声笑语中济济一堂。国家天文台党委书记、" \
               "副台长赵刚在致辞一开始更是送上白居易的诗句:“令公桃李满天下,何须堂前更种花。”" \
               "据介绍,这颗小行星由国家天文台施密特CCD小行星项目组于1997年9月26日发现于兴隆观测站," \
               "获得国际永久编号第120730号。2018年9月25日,经国家天文台申报," \
               "国际天文学联合会小天体联合会小天体命名委员会批准,国际天文学联合会《小行星通报》通知国际社会," \
               "正式将该小行星命名为“周又元星”。"
    
        # 基于jieba的textrank算法实现
        keywords = jieba.analyse.textrank(text,topK=6,withWeight=True)
    
        print(keywords)   #[('小行星', 1.0), ('命名', 0.6266890825831086), ('国际', 0.5926007143549065), ('中国', 0.5078347136494592), ('国家', 0.45833708297743847), ('天文学家', 0.3978444911417721)]
    
    
    

    优点:

    1) 无监督方式,无需构造数据集训练。

    2) 算法原理简单且部署简单。

    3) 继承了PageRank的思想,效果相对较好,相对于TF-IDF方法,可以更充分的利用文本元素之间的关系。

    缺点:

    1) 结果受分词、文本清洗影响较大,即对于某些停用词的保留与否,直接影响最终结果。

    2) 虽然与TF-IDF比,不止利用了词频,但是仍然受高频词的影响,因此,需要结合词性和词频进行筛选,以达到更好效果,但词性标注显然又是一个问题。

    3.3、LDA(Latent Dirichlet Allocation)文档主题生成模型

    主题模型是一种统计模型用于发现文档集合中出现的抽象“主题”。主题建模是一种常用的文本挖掘工具,用于在文本体中发现隐藏的语义结构。

    LDA也称三层贝叶斯概率模型,包含词、主题和文档三层结构;利用文档中单词的共现关系来对单词按主题聚类,得到“文档-主题”和“主题-单词”2个概率分布。

    PLSA和LDA的过程是一样的,只是引入了dirichlet主题分布和词分布的先验

    3.2.1、LDA理论

     根据文档反推其主题分布

        反过来,既然文档已经产生,那么如何根据已经产生好的文档反推其主题呢?这个利用看到的文档推断其隐藏的主题(分布)的过程(其实也就是产生文档的逆过程),便是主题建模的目的:自动地发现文档集中的主题(分布)。

        换言之,人类根据文档生成模型写成了各类文章,然后丢给了计算机,相当于计算机看到的是一篇篇已经写好的文章。现在计算机需要根据一篇篇文章中看到的一系列词归纳出当篇文章的主题,进而得出各个主题各自不同的出现概率:主题分布。即文档d和单词w是可被观察到的,但主题z却是隐藏的。

        如下图所示(图中被涂色的d、w表示可观测变量,未被涂色的z表示未知的隐变量,N表示一篇文档中总共N个单词,M表示M篇文档):

    上图中,文档d和词w是我们得到的样本(样本随机,参数虽未知但固定,所以pLSA属于频率派思想。区别于LDA:样本固定,参数未知但不固定,是个随机变量,服从一定的分布,所以LDA属于贝叶斯派思想),可观测得到,所以对于任意一篇文档,其是已知的。

        从而可以根据大量已知的文档-词项信息,训练出文档-主题和主题-词项,如下公式所示:

        

        故得到文档中每个词的生成概率为:

    3.3.2、基于LDA主题模型的关键词提取算法实现

    from gensim import corpora, models
    import jieba.posseg as jp
    import jieba
    
    def get_text(texts):
        flags = ('n', 'nr', 'ns', 'nt', 'eng', 'v', 'd')  # 词性
        stopwords = ('的', '就', '是', '用', '还', '在', '上', '作为')  # 停用词
        words_list=[]
    
        for text in texts:
            words = [w.word for w in jp.cut(text) if w.flag in flags and w.word not in stopwords]
    
            words_list.append(words)
        return words_list
    
    def lda_model(words_list):
        dictionary=corpora.Dictionary(words_list)
        #dictionary.token2id获取<单词,id>对;dictionary.doc2bow获取<文档,向量>对
        print(dictionary.token2id)
        corpus=[dictionary.doc2bow(words) for words in words_list]
        print(corpus)
    
        #lda主题模型
        lda_model = models.ldamodel.LdaModel(corpus=corpus, num_topics=2, id2word=dictionary, passes=10)
        return lda_model
    
    
    if __name__ == "__main__":
        texts = ['作为千元机中为数不多拥有真全面屏的手机,OPPO K3一经推出,就簇拥不少粉丝', \
                 '很多人在冲着这块屏幕购买了OPPO K3之后,发现原来K3的过人之处不止是在屏幕上', \
                 'OPPO K3的消费者对这部手机总体还是十分满意的', \
                 '吉利博越PRO在7月3日全新吉客智能生态系统GKUI19发布会上正式亮相', \
                 '今年上海车展,长安CS75 PLUS首次亮相', \
                 '普通版车型采用的是双边共双出式排气布局;运动版本车型采用双边共四出的排气布局']
        # 获取分词后的文本列表
        words_list = get_text(texts)
        print('分词后的文本:')
        print(words_list)
    
        # 获取训练后的LDA模型
        lda_model = lda_model(words_list)
    
        # 可以用 print_topic 和 print_topics 方法来查看主题
        # 打印所有主题,每个主题显示5个词
        topic_words = lda_model.print_topics(num_topics=2, num_words=5)
        print('打印所有主题,每个主题显示5个词:')
        print(topic_words)
    
        # 输出该主题的的词及其词的权重
        words_list = lda_model.show_topic(0, 5)
        print('输出该主题的的词及其词的权重:')
        print(words_list)

    3.3.3、LDA优缺点

    优点

    1、LDA是一种非监督机器学习技术,可以用来识别大规模文档集(document collection)或语料库(corpus)中潜藏的主题信息。无需标注数据

    2、它采用了词袋(bag of words)的方法,这种方法将每一篇文档视为一个词频向量,从而将文本信息转化为了易于建模的数字信息。易于理解

    3、document-level word co-occurrences 很稀疏,短文本上效果不好

    缺点

    1、但是词袋方法没有考虑词与词之间的顺序,这简化了问题的复杂性,同时也为模型的改进提供了契机。

    2、每一个主题又代表了很多单词所构成的一个概率分布。由于 Dirichlet分布随机向量各分量间的弱相关性(之所以还有点“相关”,是因为各分量之和必须为1),使得我们假想的潜在主题之间也几乎是不相关的,这与很多实际问题并不相符,从而造成了LDA的又一个遗留问题。

    3.4、基于词向量和聚类的关键词提取方法

    先将文本中的词词向量表示->通过kmeans方法聚类->计算各个词与各个中心的距离->选取每个聚类的关键词;目前词向量表示方法有fasttext,word2vec,bert等。

    3.5、有监督问题的特征选择提取词 

    一般在模型中,词都可以表示为特征,通过模型训练可以发现一些一些关键的特征;在文本中,这些特征可以对应于词。比如树模型的信息增益,gini系数等

     

    参考文献

    https://www.cnblogs.com/enhaofrank/p/13972754.html (关键词提取 LDA,TFIDF)

    https://blog.csdn.net/asialee_bird/article/details/96454544 (关键词提取的方法汇总,tfidf,textrank,lda,word2vec,信息增益,卡方检验,树模型)

    https://blog.csdn.net/asialee_bird/article/details/81486700 (tfidf算法介绍及实现)

    https://blog.csdn.net/asialee_bird/article/details/96894533 (textrank算法介绍)

     https://blog.csdn.net/wotui1842/article/details/80351386(textrank和pagerank的区别、以及textrank的具体构建过程;textrank4zh源码详解)

    https://zhuanlan.zhihu.com/p/126733456 (textrank和pagerank的区别;给出了构建图的实例)

    https://www.cnblogs.com/jackchen-net/p/8207009.html (jieba的各种使用)

    https://blog.csdn.net/v_JULY_v/article/details/41209515 (LDA主题模型详解)

    https://blog.csdn.net/chuange6363/article/details/100752622(LDA优缺点)

     

     

    展开全文
  • NLP关键词提取方法总结及实现

    万次阅读 多人点赞 2019-07-23 21:09:41
    一、关键词提取概述 二、TF-IDF关键词提取算法及实现 三、TextRank关键词提取算法实现 四、LDA主题模型关键词提取算法及实现 五、Word2Vec词聚类的关键词提取算法及实现 六、信息增益关键词提取算法及实现 七...

    目录

    一、关键词提取概述

    二、TF-IDF关键词提取算法及实现

    三、TextRank关键词提取算法实现

    四、LDA主题模型关键词提取算法及实现

    五、Word2Vec词聚类的关键词提取算法及实现

    六、信息增益关键词提取算法及实现

    七、互信息关键词提取算法及实现

    八、卡方检验关键词提取算法及实现

    九、基于树模型的关键词提取算法及实现

    十、总结


    一、关键词提取概述

    关键词是能够表达文档中心内容的词语,常用于计算机系统标引论文内容特征、信息检索、系统汇集以供读者检阅。关键词提取是文本挖掘领域的一个分支,是文本检索、文档比较、摘要生成、文档分类和聚类等文本挖掘研究的基础性工作。

    从算法的角度来看,关键词提取算法主要有两类:无监督关键词提取方法有监督关键词提取方法

    1、无监督关键词提取方法

    不需要人工标注的语料,利用某些方法发现文本中比较重要的词作为关键词,进行关键词提取。该方法是先抽取出候选词,然后对各个候选词进行打分,然后输出topK个分值最高的候选词作为关键词。根据打分的策略不同,有不同的算法,例如TF-IDF,TextRank,LDA等算法。

    无监督关键词提取方法主要有三类:基于统计特征的关键词提取(TF,TF-IDF);基于词图模型的关键词提取(PageRank,TextRank);基于主题模型的关键词提取(LDA)

    • 基于统计特征的关键词提取算法的思想是利用文档中词语的统计信息抽取文档的关键词;
    • 基于词图模型的关键词提取首先要构建文档的语言网络图,然后对语言进行网络图分析,在这个图上寻找具有重要作用的词或者短语,这些短语就是文档的关键词;
    • 基于主题关键词提取算法主要利用的是主题模型中关于主题分布的性质进行关键词提取;

    2、有监督关键词提取方法

    将关键词抽取过程视为二分类问题,先提取出候选词,然后对于每个候选词划定标签,要么是关键词,要么不是关键词,然后训练关键词抽取分类器。当新来一篇文档时,提取出所有的候选词,然后利用训练好的关键词提取分类器,对各个候选词进行分类,最终将标签为关键词的候选词作为关键词。

    3、无监督方法和有监督方法优的缺点

    无监督方法不需要人工标注训练集合的过程,因此更加快捷,但由于无法有效综合利用多种信息 对候选关键词排序,所以效果无法与有监督方法媲美;而有监督方法可以通过训练学习调节多种信息对于判断关键词的影响程度,因此效果更优,有监督的文本关键词提取算法需要高昂的人工成本,因此现有的文本关键词提取主要采用适用性较强的无监督关键词提取。

    4、关键词提取常用工具包

    二、TF-IDF关键词提取算法及实现

    TF-IDF算法的详细介绍及实现方法总结参看博客:TF-IDF算法介绍及实现

    三、TextRank关键词提取算法实现

    TextRank算法的详细介绍及实现方法总结参看博客:TextRank算法介绍及实现

    四、LDA主题模型关键词提取算法及实现

    1、LDA(Latent Dirichlet Allocation)文档主题生成模型

    主题模型是一种统计模型用于发现文档集合中出现的抽象“主题”。主题建模是一种常用的文本挖掘工具,用于在文本体中发现隐藏的语义结构。

    LDA也称三层贝叶斯概率模型,包含词、主题和文档三层结构;利用文档中单词的共现关系来对单词按主题聚类,得到“文档-主题”和“主题-单词”2个概率分布。

    通俗理解LDA主题模型原理

    2、基于LDA主题模型的关键词提取算法实现

    from gensim import corpora, models
    import jieba.posseg as jp
    import jieba
    
    
    # 简单文本处理
    def get_text(text):
        flags = ('n', 'nr', 'ns', 'nt', 'eng', 'v', 'd')  # 词性
        stopwords = ('的', '就', '是', '用', '还', '在', '上', '作为')  # 停用词
        words_list = []
        for text in texts:
            words = [w.word for w in jp.cut(text) if w.flag in flags and w.word not in stopwords]
            words_list.append(words)
        return words_list
    
    
    # 生成LDA模型
    def LDA_model(words_list):
        # 构造词典
        # Dictionary()方法遍历所有的文本,为每个不重复的单词分配一个单独的整数ID,同时收集该单词出现次数以及相关的统计信息
        dictionary = corpora.Dictionary(words_list)
        print(dictionary)
        print('打印查看每个单词的id:')
        print(dictionary.token2id)  # 打印查看每个单词的id
    
        # 将dictionary转化为一个词袋
        # doc2bow()方法将dictionary转化为一个词袋。得到的结果corpus是一个向量的列表,向量的个数就是文档数。
        # 在每个文档向量中都包含一系列元组,元组的形式是(单词 ID,词频)
        corpus = [dictionary.doc2bow(words) for words in words_list]
        print('输出每个文档的向量:')
        print(corpus)  # 输出每个文档的向量
    
        # LDA主题模型
        # num_topics -- 必须,要生成的主题个数。
        # id2word    -- 必须,LdaModel类要求我们之前的dictionary把id都映射成为字符串。
        # passes     -- 可选,模型遍历语料库的次数。遍历的次数越多,模型越精确。但是对于非常大的语料库,遍历太多次会花费很长的时间。
        lda_model = models.ldamodel.LdaModel(corpus=corpus, num_topics=2, id2word=dictionary, passes=10)
    
        return lda_model
    
    
    if __name__ == "__main__":
        texts = ['作为千元机中为数不多拥有真全面屏的手机,OPPO K3一经推出,就簇拥不少粉丝', \
                 '很多人在冲着这块屏幕购买了OPPO K3之后,发现原来K3的过人之处不止是在屏幕上', \
                 'OPPO K3的消费者对这部手机总体还是十分满意的', \
                 '吉利博越PRO在7月3日全新吉客智能生态系统GKUI19发布会上正式亮相', \
                 '今年上海车展,长安CS75 PLUS首次亮相', \
                 '普通版车型采用的是双边共双出式排气布局;运动版本车型采用双边共四出的排气布局']
        # 获取分词后的文本列表
        words_list = get_text(texts)
        print('分词后的文本:')
        print(words_list)
    
        # 获取训练后的LDA模型
        lda_model = LDA_model(words_list)
    
        # 可以用 print_topic 和 print_topics 方法来查看主题
        # 打印所有主题,每个主题显示5个词
        topic_words = lda_model.print_topics(num_topics=2, num_words=5)
        print('打印所有主题,每个主题显示5个词:')
        print(topic_words)
    
        # 输出该主题的的词及其词的权重
        words_list = lda_model.show_topic(0, 5)
        print('输出该主题的的词及其词的权重:')
        print(words_list)
    

    运行结果:

    五、Word2Vec词聚类的关键词提取算法及实现

    1、Word2Vec词向量表示

    利用浅层神经网络模型自动学习词语在语料库中的出现情况,把词语嵌入到一个高维的空间中,通常在100-500维,在高维空间中词语被表示为词向量的形式。

    特征词向量的抽取是基于已经训练好的词向量模型。

    2、K-means聚类算法

    聚类算法旨在数据中发现数据对象之间的关系,将数据进行分组,使得组内的相似性尽可能的大,组间的相似性尽可能的小。

    算法思想是:首先随机选择K个点作为初始质心,K为用户指定的所期望的簇的个数,通过计算每个点到各个质心的距离,将每个点指派到最近的质心形成K个簇,然后根据指派到簇的点重新计算每个簇的质心,重复指派和更新质心的操作,直到簇不发生变化或达到最大的迭代次数则停止。

    3、基于Word2Vec词聚类关键词提取方法的实现过程

    主要思路是对于用词向量表示的词语,通过K-Means算法对文章中的词进行聚类,选择聚类中心作为文本的一个主要关键词,计算其他词与聚类中心的距离即相似度,选择topK个距离聚类中心最近的词作为关键词,而这个词间相似度可用Word2Vec生成的向量计算得到。

    具体步骤如下:

    • 对语料进行Word2Vec模型训练,得到词向量文件;
    • 对文本进行预处理获得N个候选关键词;
    • 遍历候选关键词,从词向量文件中提取候选关键词的词向量表示;
    • 对候选关键词进行K-Means聚类,得到各个类别的聚类中心(需要人为给定聚类的个数);
    • 计算各类别下,组内词语与聚类中心的距离(欧几里得距离或曼哈顿距离),按聚类大小进行降序排序;
    • 对候选关键词计算结果得到排名前TopK个词语作为文本关键词。
       

    :第三方工具包Scikit-learn提供了K-Means聚类算法的相关函数,本文用到了sklearn.cluster.KMeans()函数执行K-Means算法,sklearn.decomposition.PCA()函数用于数据降维以便绘制图形。

    六、信息增益关键词提取算法及实现

    信息增益算法的详细介绍及实现方法总结参看博客:信息增益算法介绍及实现

    七、互信息关键词提取算法及实现

    1、互信息(Mutual Information,MI)

    在概率论和信息论中,两个随机变量的互信息或转移信息(transinformation)是变量间相互依赖性的量度。不同于相关系数,互信息并不局限于实值随机变量,它更加一般且决定着联合分布 p(X,Y) 和分解的边缘分布的乘积 p(X)p(Y) 的相似程度。互信息是度量两个事件集合之间的相关性(mutual dependence)。

    互信息被广泛用于度量一些语言现象的相关性。在信息论中,互信息常被用来衡量两个词的相关度,也用来计算词与类别之间的相关性。

    2、互信息计算公式

     3、互信息算法实现

    from sklearn import metrics
    import numpy as np
    
    # 训练集和训练标签
    x_train = [[1, 2, 3, 4, 5],
               [5, 4, 3, 2, 1],
               [3, 3, 3, 3, 3],
               [1, 1, 1, 1, 1]]
    y_train = [0, 1, 0, 1]
    # 测试集和测试标签
    x_test = [[2, 2, 2, 2, 2], [2, 1, 1, 2, 1]]
    
    x_train = np.array(x_train)  # 转为array
    
    # 存储每个特征与标签相关性得分
    features_score_list = []
    for i in range(len(x_train[0])):
        # 计算每个特征与标签的互信息
        feature_info = metrics.mutual_info_score(y_train, x_train[:, i])
        features_score_list.append(feature_info)
    
    print(features_score_list)
    

    运行结果: 

    4、信息论中的互信息和决策树中的信息增益的关系 

    两者表达意思是一样的,都是表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度。

    注:

    • 标准化互信息(Normalized Mutual Information,NMI)可以用来衡量两种聚类结果的相似度。
    • 标准化互信息Sklearn实现:metrics.normalized_mutual_info_score(y_train, x_train[:, i])。
    • 点互信息(Pointwise Mutual Information,PMI)这个指标来衡量两个事物之间的相关性(比如两个词)。

    八、卡方检验关键词提取算法及实现

    1、卡方检验

    卡方是数理统计中用于检验两个变量独立性的方法,是一种确定两个分类变量之间是否存在相关性的统计方法,经典的卡方检验是检验定性自变量对定性因变量的相关性。

    2、基本思路

    • 原假设:两个变量是独立的
    • 计算实际观察值和理论值之间的偏离程度
    • 如果偏差足够小,小于设定阈值,就接受原假设;否则就否定原假设,认为两变量是相关的。

    3、计算公式

    其中,A为实际值,T为理论值。卡方检验可用于文本分类问题中的特征选择,此时不需要设定阈值,只关心找到最为相关的topK个特征。基本思想:比较理论频数和实际频数的吻合程度或者拟合优度问题。

    4、基于sklearn的卡方检验实现

    from sklearn.feature_selection import SelectKBest
    from sklearn.feature_selection import chi2
    
    # 训练集和训练标签
    x_train = [[1, 2, 3, 4, 5],
               [5, 4, 3, 2, 1],
               [3, 3, 3, 3, 3],
               [1, 1, 1, 1, 1]]
    y_train = [0, 1, 0, 1]
    # 测试集和测试标签
    x_test = [[2, 2, 2, 2, 2], [2, 1, 1, 2, 1]]
    y_test = [1, 1]
    
    # 卡方检验选择特征
    chi2_model = SelectKBest(chi2, k=3)  # 选择k个最佳特征
    # 该函数选择训练集里的k个特征,并将训练集转化所选特征
    x_train_chi2 = chi2_model.fit_transform(x_train, y_train)
    # 将测试集转化为所选特征
    x_test_chi2 = chi2_model.transform(x_test)
    
    print('各个特征的得分:', chi2_model.scores_)
    print('各个特征的p值:', chi2_model.pvalues_)  # p值越小,置信度越高,得分越高
    print('所选特征的索引:', chi2_model.get_support(True))
    print('特征提取转换后的训练集和测试集...')
    print('x_train_chi2:', x_train_chi2)
    print('x_test_chi2:', x_test_chi2)

    运行结果:

    九、基于树模型的关键词提取算法及实现

    1、树模型

    主要包括决策树和随机森林,基于树的预测模型(sklearn.tree 模块和 sklearn.ensemble 模块)能够用来计算特征的重要程度,因此能用来去除不相关的特征(结合 sklearn.feature_selection.SelectFromModel)

    sklearn.ensemble模块包含了两种基于随机决策树的平均算法:RandomForest算法Extra-Trees算法。这两种算法都采用了很流行的树设计思想:perturb-and-combine思想。这种方法会在分类器的构建时,通过引入随机化,创建一组各不一样的分类器。这种ensemble方法的预测会给出各个分类器预测的平均。

    • RandomForests 在随机森林(RF)中,该ensemble方法中的每棵树都基于一个通过可放回抽样(boostrap)得到的训练集构建。另外,在构建树的过程中,当split一个节点时,split的选择不再是对所有features的最佳选择。相反的,在features的子集中随机进行split反倒是最好的split方式。sklearn的随机森林(RF)实现通过对各分类结果预测求平均得到,而非让每个分类器进行投票(vote)。
    • Ext-Trees 在Ext-Trees中(详见ExtraTreesClassifier和 ExtraTreesRegressor),该方法中,随机性在划分时会更进一步进行计算。在随机森林中,会使用侯选feature的一个随机子集,而非查找最好的阈值,对于每个候选feature来说,阈值是抽取的,选择这种随机生成阈值的方式作为划分原则。

    2、树模型的关键词提取算法实现

    (1)部分代码实现1

    from sklearn.tree import DecisionTreeClassifier
    from sklearn.ensemble import RandomForestClassifier
    from sklearn.ensemble import ExtraTreesClassifier
    from sklearn.feature_selection import SelectFromModel
    
    # 导入SelectFromModel结合ExtraTreesClassifier计算特征重要性,并按重要性阈值选择特征。
    # 基于树模型进行模型选择
    clf_model = ExtraTreesClassifier(n_estimators=250, random_state=0)
    clf_model.fit(x_train, y_train)
    # 获取每个词的特征权重,数值越高特征越重要
    importances = clf_model.feature_importances_
    # 选择特征重要性为1.5倍均值的特征
    model = SelectFromModel(clf_model, threshold='1.5*mean', prefit=True)
    x_train_new = model.transform(x_train)  # 返回训练集所选特征
    x_test_new = model.transform(x_test)  # 返回测试集所选特征
    

    (2)部分代码实现2

    # 训练集和训练标签
    x_train, y_train
    # 候选特征词列表
    words_list
    
    # 基于树模型进行模型选择
    forest = RandomForestClassifier(n_estimators=250, random_state=0)
    forest.fit(x_train, y_train)
    importances = forest.feature_importances_  # 获取每个词的特征权重
    
    # 将词和词的权重存入字典
    feature_words_dic = {}
    for i in range(len(words_list)):
        feature_words_dic[words_list[i]] = importances[i]
    
    # 对字典按权重由大到小进行排序
    words_info_dic_sort = sorted(words_info_dic.items(), key=lambda x: x[1], reverse=True)
    
    # 将关键词和词的权重分别存入列表
    keywords_list = []  # 关键词列表
    features_list = []  # 关键权重列表
    for word in words_info_dic_sort:
        keywords_list.append(word[0])
        features_list.append(word[1])
    
    # 选取前一千个关键词和权重写入文本文件
    keywords = keywords_list[:1000]
    features = features_list[:1000]
    
    # 将含有关键字的文本写入文件
    with open('data/keywords_features.txt', 'a', encoding="utf-8") as f:
        for i in range(len(keywords)):
            f.write(keywords[i] + '\t' + features[i] + '\n')

    十、总结

    本文总结了本人在实验过程中所用到的常用关键词抽取方法,实验数据是基于公司的内部数据,但此篇总结只是方法上的讲解和实现,没有针对某一具体数据集做相应的结果分析。从实验中可以很明显看出有监督关键词抽取方法通常会显著好于无监督方法,但是有监督方法依赖一定规模的标注数据。

     

     

    参考:

    1、NLP关键词抽取常见算法

    2、gensim models.ldamodel

    3、卡方检验原理及应用

    4、特征选择 (feature_selection)

    5、随机森林算法总结及调参

    6、句子相似度计算

    展开全文
  • (一)关键词选取 一、关键词选取原则 相关性、符合用户的搜索习惯、用户搜索的多样性、关键词的商业价值、关键词不要过于宽泛 1、关键词是SEO的核心 2、关键词决定了SEO的效果: 1)关键词决定了SEO的引流效果: ...
  • 基于词频g指数的共词聚类关键词选取研究——以教育技术学硕士学位论文为例.pdf
  • 关键词选取

    2018-08-25 22:05:05
    1、律师,北京律师,北京刑事律师--转化率才是重点; 2、核心关键词第一优先,长尾关键字也要...3、关键词的金字塔结构,例如云南旅游,昆明旅游,丽江旅游;每个页面的都取1,2个关键词;子关键词,内链接。  ...
  • 优化网站时为什么要选取关键词 核心关键词和长尾关键词的特征分别是什么.收集关键词方法有哪些 解门内头脑风易收集关键调”竞争对手同站关键调收集 学会利用百度下拉单单收集关键调。学会利用百度相关推荐收集...
  • 前几天有个群里的朋友来问我,为什么我的关键词做到首页了,但是连个电话咨询都没有呢,我仔细看了他的关键词,确实...如果有,那么岑辉宇很负责的告诉你,你选取关键词并非是SEO核心关键词; 什么是SEO核心关
  • 网站的关键词选取是一个逐步发现的过程,某些关键词带来的转化率高,带来的流量高,那么这样的关键词才是我们所要选取的,当某个关键词能够带来很好的流量或转化率时,我们就应该从这个关键词去挖掘更多的衍生词。...
  • 以中文文档为处理对象,通过《同义词词林》计算词语间语义距离,对词语进行密度聚类,得到主题相关类,并从主题相关类中选取中心词作为关键词。通过统计实验和打分实验,证明基于语义的文档关键词提取方法具有较高的...
  • seo工作是围绕产品关键词进行的,因此关键词的选取事关整个seo工作能否有效的开展;如果关键词选择缺乏合理性,可能导致如下情况:  ※ 关键词热度不够:很... 关键词选取在网站策划阶段就应该考虑进去,网站定位...
  • 文本关键词提取方法综述

    千次阅读 2018-11-29 10:26:49
    第二步,使用关键词提取算法提取关键词。 最后得到的关键词应满足以下三个条件: 1·、Understandable. The keyphrases are understandable to people. This indicates the extracted keyphrases shoul...
  • 如何选取关键词

    2014-05-30 08:16:36
    如果你已经仔细阅读过 seo入门教程后,那么你应该对于seo有了一个初步的认识。但是左戈个人经历有限,我不是从做个人站开始的。我第一次上手的就是企业站。...当年刚接手一个网站的时候如何选取关键字。
  • 关键词在自然语言处理的各个领域有着十分重要的意义。...同时改进了KEA的位置权重公式,并提出新的关键词特征选取项。最后对SKEA方法和KEA方法进行比较实验,证明SKEA是一种更优秀的中文关键词提取方法
  • 选取核心关键词参照.pdf
  • 选取合适的核心关键词,就相当于选择了一条通往成功的道路。笔者在之前一篇文章中也简单阐述了seo关键词分析的重要性。那么,又该如何选取正确的关键词呢?这就要结合seo优化,遵循以下三大原则分析,并选取网站的...
  • SEO完全手册之关键词选取

    千次阅读 2009-02-24 11:43:00
    上节回顾上一节我们主要和大家讨论了网页title的优化、布局等,通过上一节的讨论,...上节链接:http://blog.csdn.net/diehuan2008/archive/2009/02/23/3925204.aspx 在SEO的过程中,对于一个网页的关键词选取和元标签
  • 以中文文档为处理对象,通过《同义词词林》计算词语间语义距离,对词语进行密度聚类,得到主题相关类,并从主题相关类中选取中心词作为关键词。通过统计实验和打分实验,证明基于语义的文档关键词提取方法具有较高的...
  • 热点选取分为两个部分一个是热点事件,还有一个就是时间节点,热点事件就不用过多解释,时间节点就是根据节假日以及一些重要的时间点进行关键词选取创作,推荐量也是比较多的。 好比近期大家都关注的“新型冠状...
  • 利用Python实现中文文本关键词抽取的三种方法 文本关键词抽取,是对文本信息进行高度凝练的一种有效手段,通过3-5个词语准确概括文本的主题,帮助读者快速理解文本信息。目前,用于文本关键词提取的主要方法有四种...
  • 利用挖掘软件找出对应的关键词,有的时候能够挖掘成千上万个,然后从中选取适合你的作为你的关键词,其余的作为长尾关键词嵌入页面中;然后结合你的产品做出判断;比如是北京吃饭、北京吃饭 便宜等;当然,选取的...
  • 1、基于TF-IDF的文本关键词抽取方法 词频(Term Frequency,TF) 指某一给定词语在当前文件中出现的频率。由于同一个词语在长文件中可能比短文件有更高的词频,因此根据文件的长度,需要对给定词语进行归一化,即...
  • 竞价推广就是通过关键词去推广,所以关键词很重要,在我们的推广后台中要自己对我们的关键词进行分类。确定账户思路开始拓词,如果分词没有做好,会影响整个账户的推广效果。 一般一个竞价账户需要拓上万个关键词,...
  • 为了使作者撰写出高质量化工科技论文、利于编辑和出版工作,结合国家标准,详细介绍了科技论文题名、摘要、关键词3个方面的写作方法和要求。
  • 如果关键词选取的不好,亦或者是胡乱填写的一个关键词的话,对于网站优化来讲,都是有着很大的问题的,那么,我们又该如何来选取关键词呢? 对于关键词的选取问题而言,我们要全面考虑该词汇,与您产品,或这是和...
  • 1.引言 1.1关键词自动标注的主要方式与算法 关键词自动标注主要有两种方式:关键词抽取与关键词分配。...关键词抽取一般分为两步:选取候选关键词、从候选集合中推荐关键词 1.1.1.1选取候选关...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 23,696
精华内容 9,478
关键字:

关键词选取方法