公文写作没有捷径可行,所谓“爬格子”,必须功在平时,要勤于积累素材,特别是一些好词、金句。这话很正确,没毛病。但却是一句正确的废话。为什么?看看老铁们日益庞大的各种收藏夹(然而再也没有看过第二遍)、堆积如山的word文档(能不能找到想要的,完全看运气)、越分越多的文件夹(N级嵌套文件夹,你让我静一静)就知道了...
素材积累,从入门到放弃……
是不是扎铁了,老心?
积累素材的意义是“随用随取”,不是把素材保存下来、划上重点就算完事了,那跟批阅“朕知道了”没区别。凡是不以“用”为目的的素材积累,都是耍流氓!!!
先看看下面这些低效率、反人性的方法:
低效率方法之一:网上摘抄的资料全放入一个word,然后靠“搜索”功能查找素材。这方法相当不科学,最大的问题在于,一段素材,可能符合某个关键词的含义,但就是没有出现这个关键词。
说起来太绕了,举个例子,干货君之前摘抄了下面这段话,觉得“接力赛”这个提法相当形象。
改革如接力赛,一棒失误造成的影响不容小觑,所以XX强调“减少失误也是效率”。
实际上,“接力赛”这个词完全可以用来写“试点”、写“推进工作”。但是上面这段话,完全没有出现“试点”两个字啊,搜“试点”是根本搜不出来的。学究一点就是,该方法不能实现“基于语义的模糊搜索”。
低效率方法之二:分门别类建立文件夹
为了解决方法一的缺陷,人类诞生了方法二——就是把上面那段话放入“试点”这个专门文件夹中,下次再写“试点”的时候,不就可以找到了吗?
且不说随着素材的日积月累,会产生多少个文件夹(甚至二级、三级文件夹)。就说一点,上面那段话,其实分属“试点”、“改革”、“推进工作”等多个领域,难不成要同时放入三个文件夹中?
分门别类建立起来的素材库,如果素材数量较少,分类不多,尚能一用。等到素材库日益庞大臃肿的时候,还不如自己百度直接找素材算了。
这不是意志力的问题,这是人类的天性。人类通常只能同时处理7个左右的信息单元,一个管理者通常最多只能有效管理15个直接下属。你让我同时面对几十个分类文件夹,你问我痛不痛苦、资不资瓷?
一、从词库源爬去素材
第一部先从人民日报评论版爬出所有评论文章,作为后面词库提取的素材。人民日报评论版囊括了国际上的风云变幻和国内时局的热点事件评论且用词讲究、立场鲜明,作为“第一爬”的资源相当合适。后面再把各类报、新闻之类的网站统统爬下来。海量的素材是后面构建词库、分析句式、打造神器的坚实基础。
先从人民日报评论版爬了150片评论文章。
二、词库提取
这里采用基于TF-IDF的文本关键词抽取方法
Python第三方工具包Scikit-learn提供了TFIDF算法的相关函数,这里主要用到了sklearn.feature_extraction.text下的TfidfTransformer和CountVectorizer函数。其中,CountVectorizer函数用来构建语料库的中的词频矩阵,TfidfTransformer函数用来计算词语的tfidf权值。
基于TF-IDF方法实现文本关键词抽取的代码执行步骤如下:
(1)读取前面提取的素材文件data.csv;
(2)获取每行记录的内容;
(3)对内容进行数据预处理操作,包括分词、筛选出符合词性的词语、去停用词,用空格分隔拼接成文本;
(4)遍历文本记录,将预处理完成的文本放入文档集corpus中;
(5)使用CountVectorizer()函数得到词频矩阵;
(6)使用TfidfTransformer()函数计算每个词的tf-idf权值;
(7)得到词袋模型中的关键词以及对应的tf-idf矩阵;
(8)遍历tf-idf矩阵,打印每篇文章的词汇以及对应的权重;
(9)对每篇文章,按照词语权重值降序排列,选取排名前50个词最为文本关键词,并写入数据框中;
(10)将最终结果写入文件result.csv中。
最终运行结果如下图所示: