TF-IDF模型关键词抽取

  • A+
所属分类:系统文档
  • 模型:gensim工具包TF-IDF模型

  • 维基百科语料数据(30万词条)

  • 利用jieba分词,加入行业词,去除停止词

下面用维基百科中文数据来做测试

1.数据预处理

1.1 数据集采用分好词的维基百科中文数据,训练之前需去除停止词

# 加载训练数据,去除停止词def getCorpus():
    corpus_orgin = []
    count = 0
    corpus_list = []    
    with open("D:wiki_cn\zh.jian.wiki.seg-1.3g", 'r', encoding='utf-8') as f:
        lines = f.readlines()
        print(lines.__len__())        
        for sentence in lines:
            words = sentence.split(" ")
            sentence_segment = []            
            for word in words:                
                if word.strip() != '':                    
                    if word.strip() not in stopwords:
                    sentence_segment.append(word.strip())
            corpus_list.append(sentence_segment)
            count += 1
            if count % 1000 == 0:
                logger.info("model train finished" + datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'))
                print("processd " + str(count) + " segment_sentence")   
    return corpus_list

2.模型计算

corpus_list = getCorpus()
id2word = {}# 生成并保存字典dictionary = Dictionary(corpus_list)
dictionary.save("./model/dict")
# 将文档转换成词袋(bag of words)模型
corpus = [dictionary.doc2bow(text) for text in corpus_list]
# 保存生成的语料MmCorpus.serialize('./model/corpuse.mm', corpus)
del corpus_list
corpus_tfidf = []def train():
    tfidfModel = TfidfModel(corpus=corpus, id2word=id2word, dictionary=dictionary)
    tfidfModel.save("./model/infinitus_tfidf.model")
    corpus_tfidf = tfidfModel[corpus]
train()

3.效果测试

测试基于30万维基百科数据训练的gensim TF-IDF模型和jieba自带TF-IDF,Textrank算法,以及中科院NLPIR汉语分词系统,下面选取网上的新闻数据做个简单的测试

  • 测试文本

今日(18日),台湾“民航局”证实,“暂不予核淮”两岸春节加班航班申请。到目前为止,有两家民航公司共计申请的176架次春节加班航班仍未审核通过,预计有5万名旅客会受到影响。  台媒报道称,台当局此举是抗议大陆在11日开通M503北向航线,认为M503仍然存在飞行安全的隐忧。据台湾“联合报”1月18日报道,今年两岸春节加班航班是从2月2日开始到3月2日结束,目前大陆民航业已按市场需求申请了509架次航班,此次未通过的航班中有中国东方航空申请的106架次和厦门航空申请的70架次,占总班次的三分之一以上。有民航业者称,中国东方航空申请航点有上海、南京、无锡、合肥等地;厦门航空则申请杭州、福州、厦门等,已于上周开卖,若台当局不许允飞行,届时恐怕有些旅客将无法顺利搭机。而据台湾东森新闻的报道称,台当局此举是抗议大陆在11日开通M503北向航线等共计4条航线,台民航局今天表示,由于M503航线尚未经两岸沟通、确认,仍有潜在飞行安全的疑虑,台民航局已两度要求相关航空公司暂勿使用此航线,对于仍继续使用相关航线的公司,其两岸春节加班机之相关申请,民航局将“暂不予核准”。对于M503争议,台当局曾表示,对于继续在M503新航线飞行的航空公司会给予相应的处置,同时要求航管单位密切注意由内地飞台的航班,如有民航机接近台方空域,则要求台方立即与内地航管单位进行抗议。不过国台办已多次强调大陆启用M503北上航线及衔接线符合两岸同胞共同利益,完全不存在单方面开通的问题,也不存在影响台湾飞行安全的问题。据国台办此前介绍,两岸的业务技术人员去年就2018年春节加班机事宜和具体安排进行了确认。双方同意两岸的航空公司在2018年的2月2日至3月2日期间安排春节加班。加班的总量不予限制,仅是对大陆个别繁忙的机场设有上限,即北京16班、上海浦东162班、广州11班、深圳23班、杭州44班往返的航班。国台办表示,双方计划于2018年1月3日前核准第一批春节加班,以便利旅客订座和安排行程。台“民航局”前“局长”沉启称,春节期间取消两岸加班航班对旅客冲击很大,首当其冲的就是往来两岸的台湾民众及在大陆工作的台商,“这样的举动对社会、对旅客都不好”,未来也恐冲击华航、长荣等台湾航空公司。  ▲沉启港  沉启表示,平常台商、往来两岸旅客都已经认为春节加班机不够多了,尤其上海、北京或杭州等一线城市,由于大陆跟台湾同时过年放假,也让时间带不好取得,她说,记忆中过去未曾发生类似事件,这看起来是上头有些想法希望“民航局”去执行,但她也直言,这不是台湾旅客之福、不是台湾人的福气。
最近,有件事值得说道说道。16日,国务院派出的一个督察组,对辽宁、河北、江苏、福建、广西、海南6个省(区)的情况进行了反馈;17日,国家部委又紧接着召开了新闻发布会,出台了一系列的整治措施;18日,《人民日报》等一批中央媒体也对其做了不小篇幅的报道。啥事儿,值得中央给予如此高的关注?内容大家可能没有想到,是海洋生态保护。长期以来,对这一问题,普通人可能会觉得有点陌生,但是从这次点名道姓的反馈的和曝光来看,问题却很严重。比如,河北填海造地逾3万公顷空置率达68%,存在大量违规填海、围海养殖行为;海南省有543个入海污染源,却只上报了26个入海排污口;福建省各类陆源入海排污源有2678个,当地政府却只提供了68个入海排污口的情况。问题很严重,处罚也很严厉。17日的新闻发布会就对这些情况进行了公示,立案处罚262件,罚款12.47亿元(人民币,下同),约谈问责132人。同时发布史上最严的围填海管控措施,包括“十个一律”和“三个强化”,明确了“谁破坏,谁修复”的原则。联系到半个月前,中央环保督察组也曾对山东、浙江、海南3省的海洋生态系统问题进行严厉批评,称其向海要地,向海要钱,向海排污,导致多个海洋自然保护区生态退化,中央整治海洋生态的决心可见一斑。缘由说起来,大部分人应该只听说过中央环保督察组,这次的国家海洋督察组又是个什么来头呢?从行政体制分工上来说,环保督察由环保部牵头,是全面针对生态环境保护各个方面的工作进行监督检查。而这与各地的自然禀赋是有关的,地方政府如果靠山吃山,那么环保督察的焦点肯定有山,地方政府如果靠海吃海,那么环保督察的焦点肯定有海。
2017年1月18日,国家主席习近平在瑞士日内瓦万国宫出席“共商共筑人类命运共同体”高级别会议,并发表题为《共同构建人类命运共同体》的主旨演讲。新华社记者饶爱民摄“放眼世界,我们面对的是百年未有之大变局。”面对纷繁复杂的国际形势,如何解局?“明者因时而变,知者随事而制。”冷战思维、零和博弈的旧时代已经过去了,摒弃不合时宜的旧观念,冲破制约发展的旧框框,才能让各种发展活力充分迸发。2017年1月18日,在日内瓦万国宫“共商共筑人类命运共同体”高级别会议上,习近平站在人类历史发展进程的高度,以大国领袖的责任担当,以“以天下为己任”的情怀,深刻、全面、系统阐述人类命运共同体理念。回眸十八大以来,中国在国际舞台上纵横捭阖。在“构建人类命运共同体”理念指引下,中国不断以积极的姿态参与全球治理和重大国际行动,发出中国声音,提出中国方案,展现中国担当。“世界那么大,问题那么多”中国方案备受期待当今世界,局部冲突此起彼伏,恐怖主义、难民危机、网络安全、气候变化、重大传染性疾病等非传统安全和全球性挑战不断增多,逆全球化思潮抬头,世界经济持续低迷……“世界那么大,问题那么多,国际社会期待听到中国声音、看到中国方案,中国不能缺席。”习近平以铿锵有力的话语回应世界对中国的期待。在过去的5年,习近平在众多国内国际场合阐述、倡导人类命运共同体理念,并赋予其鲜明的中国特色与时代蕴含。2013年3月,莫斯科的冰雪还未消融,“命运共同体”的种子已经开始播撒。习近平任党和国家最高领导人后首次出访,在莫斯科国际关系学院发表演讲时指出,当今人类社会“越来越成为你中有我、我中有你的命运共同体”。这是他第一次在国际场合阐述“命运共同体”理念。从此,“命运共同体”便作为关键词贯穿在习近平的外交活动之中。在博鳌,从2013年年会到2015年年会,从“树立命运共同体意识”到“迈向命运共同体”,习近平以高远的视角审视亚洲和世界、中国和世界,提倡通过迈向“亚洲命运共同体”,推动建设“人类命运共同体”。2015年9月,在联合国成立70周年系列峰会上,习近平首次在联合国总部全面阐述以合作共赢为核心的新型国际关系的理念,系统地提出打造人类命运共同体的具体途径,为国际关系的发展提供新理念,开辟新愿景,引发世界高度关注。“世界怎么了、我们怎么办?”中国智慧绽放华彩“世界怎么了、我们怎么办?”2017年1月18日,在日内瓦万国宫“共商共筑人类命运共同体”高级别会议上,习近平在演讲中给出了中国方案,再次系统阐述人类命运共同体理念,叩响了时代的最强音。习近平在此次演讲中提出构建人类命运共同体的“五个坚持”,从伙伴关系、安全格局、经济发展、文明交流、生态建设五方面为人类社会发展进步描绘了蓝图,为构建人类命运共同体提供了行动指南。若以此为原点,一年来,习近平在不同的国内国际场合的演讲、回信与署名文章,密集地提到人类命运共同体理念。在十九大报告中,习近平6次提到人类命运共同体,站在全人类进步的高度,对新时代中国特色大国外交作出了顶层设计,并对全世界作出庄严承诺:“中国将继续发挥负责任大国作用,积极参与全球治理体系改革和建设,不断贡献中国智慧和力量。”阿根廷国际问题专家古斯塔沃·吉拉多说:“十九大为中国外交设立了清晰目标,可以说,构建新型国际关系和构建人类命运共同体是世界对中国外交的最大期待。”由此可见,外媒称党的十九大是“站在世界地图前召开的盛会”就不足为奇。时隔一个多月后,在中国共产党与世界政党高层对话会上,习近平呼吁世界各国人民应该秉持“天下一家”理念,张开怀抱,彼此理解,求同存异,共同为构建人类命运共同体而努力。“不驰于空想,不骛于虚声”中国担当落地生根大道至简,实干为要。十八大以来,习近平29次出访,累计198天,足迹遍及五大洲、57个国家及主要国际和区域组织。中国同100个左右的国家和国际组织建立了不同形式的伙伴关系,实现了对世界各个地区、不同类型国家的全覆盖。在元首外交、多边外交、主场外交中,习近平充分展现大国担当和领袖风范。他的外交足迹也为全人类勾画了一幅清晰的构建人类命运共同体的实践路径图:——构建人类命运共同体,亲诚惠容睦周边。在“让命运共同体意识在周边国家落地生根”理念的指导下,十八大以来,我国与周边国家高层交往密集,各层次、各领域合作全面展开。——构建人类命运共同体,构建新型大国关系。过去5年,从“庄园会晤”“瀛台夜话”“白宫秋叙”“西湖长谈”,到海湖庄园会晤和汉堡会晤以及“故宫茶叙”,中美元首间一个个增信释疑的“高光时刻”,推动两国关系健康稳定发展。——构建人类命运共同体,大力推进“一带一路”。“一带一路”倡议提出以来,在各参与方共同努力下,已成为有关各国实现共同发展的重要合作平台。100多个国家和国际组织积极支持参与,一大批有影响力的标志性项目成功落地。习近平在2018年新年贺词中坚定地说道:“中国坚定维护联合国权威和地位,积极履行应尽的国际义务和责任,信守应对全球气候变化的承诺,积极推动共建‘一带一路’,始终做世界和平的建设者、全球发展的贡献者、国际秩序的维护者。”“单丝不成线,独木不成林”中国声音世界回响中国在国际舞台的表现,使得构建人类命运共同体理念得到国际社会的普遍认同。2017年2月10日,联合国社会发展委员会第55届会议协商一致通过“非洲发展新伙伴关系的社会层面”决议,“构建人类命运共同体”理念首次被写入联合国决议。同年11月1日,第72届联大负责裁军和国际安全事务第一委员会通过了“防止外空军备竞赛进一步切实措施”和“不首先在外空放置武器”两份安全决议,“构建人类命运共同体”理念再次载入这两份联合国决议。人类命运共同体理念已然成为推动全球治理体系变革、构建新型国际关系和国际新秩序的共同价值规范。中国方案引领全球治理新秩序。联合国秘书长古特雷斯高度赞同中国所倡导的理念,他说:“中国已成为多边主义的重要支柱,而我们践行多边主义的目的,就是要建立人类命运共同体。”第71届联合国大会主席彼得·汤姆森在接受记者采访时谈及中国所倡导的构建人类命运共同体理念,“对我而言,这是人类在这个星球上的唯一未来”。“积力之所举,则无不胜也;众智之所为,则无不成也。”路是走出来的,事业是干出来的。美好的蓝图变成现实,需要扎扎实实的行动,中国一直用行动践行着庄重承诺。构建人类命运共同体,这一跨越时空的宏伟构想,激荡起全球的广泛共鸣。看,它的星空多么壮丽璀璨。
  • 抽取结果

结论
1.维基百科数据训练的TF-IDF模型效果和jieba自带TF-IDF效果差不多,文本抽取过程均使用jieba分词去除停用词,测试和训练文本都是长文本
2.jieba自带的textrank算法抽取效果没有TF-IDF模型好
3.中科院分词发现新词能力较强,可以分词出一定的长词关键词,jieba会做更细粒度的分词,结果上看中科院的抽取效果更好
4.对于关键词抽取,分词很关键
4.问题
分词:采用的开源jieba分词,jieba分词粒度太细,关键词抽取场景关键词经常为多个关键词组成的短语,更能精准表达文意,经测试,中科院分词效果较好,发现新词性能较好,因此关键词抽取效果也较好,因此需要使用测试不同分词工具情况下的抽取效果
语料:测试更大语料训练TF-IDF模型抽取效果

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: