用词频统计量化地方新能源重视度:城市面板数据集构建

发布时间:2026/10/19 10:11:17
用词频统计量化地方新能源重视度:城市面板数据集构建 做项目之前我提醒一句项目标题里那个ZF我理解指的就是地方行政管理部门。它在数据里是一类文本来源主体我们做的是纯文本挖掘不涉及任何立场评价。全文我统一用地方部门来称呼只在数据集字段名里保留缩写。1. 为什么要用词频来测重视度——从文本到指数的换算逻辑先说一个反直觉的点真正测算某个地方对新能源产业的重视程度最可靠的数据未必是统计年鉴里的财政补贴金额也不一定是新增注册企业数量而是当地部门公开发布的工作报告里反复出现新能源光伏储能充电桩这些词的概率。为什么因为工作报告这类文本有一个显著特点写什么、写多少字、放在哪个段落是要层层把关的。一个词在一份年度报告里出现的次数往往反映了这个主题在当年工作中的排序。地方部门如果当年把新能源产业列为重点那报告的重点任务部分会专门展开写如果只是顺带提一句那词频就低得多。所以词频统计不是简单的数数它本质上是在对文本背后的话语权重做量化还原。这个项目的核心产出就是一份覆盖全国地市级单位、时间跨度从2000到2025年的面板数据。每一行是一个城市在某一个年份的重视度得分得分来源就是该市当年公开发布的报告文本里新能源相关词汇的出现强度。你拿到这份数据可以直接做时间趋势、城市对比、区域差异分析也可以把它和真实的产业投资、企业注册、用电量等数据进行相关性验证。我最初做这个项目背景很简单想研究新能源产业在不同城市的扩散路径但手里缺乏一个统一的、口径一致的政策关注度指标。找来找去发现能公开拿到的只有各地发布的年度报告和专项规划文本。一开始我打算用人肉读文本打分但 2000 多个城市 25 年的文本量根本读不完。后来干脆换成机器词频的方案既然人读和机器读都是找关键词那把评判规则显式化反而更客观。这套逻辑成立的条件是文本必须真实反映工作重点而不是套话堆砌。好在绝大多数的报告都有严格的篇幅约束一个地方不可能在有限的篇幅里塞满所有行业它必须做取舍。这个取舍痕迹恰好就是我们想要测量的信号。换句话说词频统计测的不是口号而是资源分配在文本里留下的指纹。2. 数据源选型与采集链路2000到2025年的文本从哪里来构建 25 年时间跨度的数据集难点不在统计而在文本的获取和归集。2000 年代初期的数字化程度很低很多城市连官网都没有早期文本找起来费劲2015 年之后各地电子政务平台逐渐完善文本获取难度直线下降。所以整个数据采集链路我分成三个时间段分别处理。2.1 三阶段文本获取策略第一阶段是 2000 到 2008 年。这个阶段主要靠地方志、统计年鉴附带的报告全文、以及纸质报告的扫瞄件转文字。方法很粗糙拿到 PDF 后用 OCR 工具转成文本人工校对标题和段落结构。这个阶段的数据量最少有些城市可能五年才有一份完整报告但好处是信息密度特别高早期只要提到一次新能源基本就是动真格要布局了。第二阶段是 2009 到 2016 年。政府门户网站开始普及大部分城市会公布年度报告全文。这个阶段我主要靠爬虫抓取官网页面的正文内容然后统一转成纯文本存储。需要说明的是爬虫抓取必须遵守目标网站的访问规则控制请求频率只抓公开页面的正文内容。我当时的做法是先人工核对 20 个不同城市的页面结构写一套通用的正文抽取规则再分批跑。第三阶段是 2017 到 2025 年。这个阶段文本形式更多样除了年度报告还有各部门的专项规划、政策文件、新闻发布会实录。数据集的统计口径要保持一致所以主体仍然以年度报告为准专项规划只作为辅助校验数据不计入主指标。2.2 我还纳入了几类辅助文本只靠年度报告有一个问题新上任的班子可能风格不同有的写得细有的写得粗这会造成词频的文体噪声。为了削弱这种噪声我给每个城市补充了三类辅助文本一是五年规划纲要中涉及产业发展的章节二是年度重点任务清单三是年中经济工作会议报道。这几类文本的格式相对固定用词规范能和年度报告形成交叉验证。辅助文本的处理方式不一样年度报告做主词频规划纲要做二阶词频——也就是只统计新能源词是否出现、出现在哪个板块不统计具体次数。这样做的原因是规划纲要篇幅差异极大有的城市五年规划有三万字有的只有八千字直接比词频不公平但比有没有提、提得多靠前是有意义的。2.3 文本去重与版本管理采集过程最容易踩的坑是重复文本。同一个城市的报告官网上有一个版本新闻网站转载了一个版本政务新媒体又发了一个摘要版内容相似但字数不同。如果不去重词频统计会被重复文本放大。我用了两步去重第一步是标题结合发布日期的精确匹配第二步是正文的 MinHash 近似去重相似度超过 0.85 的只保留字数最多的那一版。文本存储格式建议用纯文本文件按年份归档。项目跑完后每个城市一个文件夹里面是 25 个年份的 txt 文件文件名统一为城市代码_年份.txt。这个看似笨拙的组织方式在后期统计时非常省心因为词频计算只需要遍历文件夹不需要处理数据库连接。3. 核心步骤新能源领域词典构建与分词调优词频统计的精度七成取决于词典三成取决于分词工具。词典没建好后面所有统计都是噪音。这个环节我前前后后迭代了四轮每一轮都是在真实文本上检验召回率。3.1 种子词库的搭建逻辑第一轮我先人工整理了一批核心种子词新能源、可再生能源、光伏、风电、页岩气、储能、充电桩、新能源汽车、锂电、氢能、燃料电池、智能电网、绿色能源、清洁能源、分布式能源、特高压、碳达峰、碳中和、零碳园区、绿色低碳、循环经济、节能减排。这些词基本覆盖了新能源产业的主要方向。然后我用这些种子词去跑全部文本把命中的句子摘出来看上下文里还频繁出现哪些我没收录的词。第二轮就把这些候选词加进去。这个过程叫词典扩展。操作上有一句口诀先种后代、句内取词、人工确认。即从种子词出发在匹配句的窗口里找高频共现词再人工确认是否和新能源产业直接相关。这里有个容易犯的错误把能源本身也加进词典。能源是个上位概念煤炭、石油都属于能源但它和新能源不是一回事。如果词频统计把能源也算进去那几乎所有城市得分都会虚高因为每一份年度报告都必然提能源。所以词典的标尺是特定性优先宁可漏掉边缘词也不能收入宽泛词。3.2 分词工具选型与自定义词典加载我用的是 Python 环境下的 jieba 分词加载自定义词典。新能源和新能源汽车这类词jieba 默认词典有时会切错比如把新能源汽车切成新/能源/汽车那词频统计就会失真。加载自定义词库后强制让新能源汽车充电基础设施源网荷储一体化这类长词完整成词。加载方式import jieba # 从文件加载自定义词典格式为词 词频 词性 # 例如新能源汽车 1000 n jieba.load_userdict(new_energy_dict.txt) # 加载之后建议跑一遍分词验证 text 该市加快布局新能源汽车充电基础设施推动源网荷储一体化示范项目建设 print(jieba.lcut(text))跑完你会看到长词被完整保留了。这一步直接决定后续统计的准确性。如果不加载自定义词典你统计新能源汽车这个关键词时会被拆成新能源汽车三个词关键词匹配彻底失败。3.3 分词结果的语境校验词典建好后还要做一步语境校验。因为同一个词在不同语境下含义可能完全不同。比如光伏如果出现在光伏扶贫语境里它确实和新能源相关但强调的是扶贫效果如果出现在事故通报里比如光伏电站起火它只是事件主体不代表重视度。前三轮迭代时我没考虑语境导致个别城市因某年发生光伏事故词频异常升高。后来我加了一个否定词和事件词过滤规则凡是句子中包含事故违规整改停产拆除骗补等负面事件词的时候当前句的关键词命中不计入正向词频。这个规则很粗暴但确实有效。它在技术上不复杂就是把关键词匹配从词级上升到句级再做一次过滤。4. 词频统计的干扰清理与同义归一——让数据更接近真实语义词频统计有一个绕不开的坑同一件事不同城市用的词不一样。有的城市写新能源汽车有的写电动汽车还有的写清洁能源汽车。如果只按精确词匹配后者就统计不到。所以真正工程化的词频统计必须有同义词归一这一步。4.1 同义词表构建我的做法是建一张同义词映射表每个标准词对应一组别名标准词别名集合新能源汽车电动汽车, 新能源车, 清洁能源汽车, 电驱动汽车光伏太阳能光伏, 光伏发电, 分布式光伏风电风力发电, 风电场, 风电项目储能储能电站, 电池储能, 新型储能氢能氢能源, 燃料电池, 绿氢归一化逻辑不用太复杂先用精确匹配再对未命中的文本做别名替换替换后再跑一次统计。注意替换顺序长词优先。比如新能源汽车必须优先于新能源替换不然新能源汽车先被切成新能源汽车后续就统计不上了。直接用最长词优先的贪心策略即可。4.2 通用词的误伤处理另一类干扰是通用词与政策词共用同一个词面。最典型的是充电。日常语境里充电指手机充电、电池充电但如果某个城市大力发展电动自行车充电桩充电这个词会高频率出现但它和新能源产业重视度并不强相关除非语境明确指向新能源汽车充电基础设施。我当时的处理方案是把充电设置为候选词只在和充电桩充电站充电基础设施以短语形式共现时才算命中不单独计权。类似的需要短语化处理的词还有能源只认新能源、清洁只认清洁能源清洁低碳、绿色只认绿色发展绿色产业不认绿色通道。这个细节看起来小而烦但实际影响巨大。我做了一版不处理的对比实验发现东部某沿海城市因为年度报告里大量出现绿色服务绿色窗口这类政务服务词导致该市绿色词频虚高直接冲进全国前五。修正后该市排名回落到二十名开外层级。所以这类噪声处理不是锦上添花是决定数据可信度的底线操作。4.3 人工抽检验证整个干扰清理做完后我建议你做一次人工抽检。方法很简单每个城市随机抽一个年份把当年的关键词命中句导出到 Excel人工读 20 条判断这些句子是否真的在谈新能源产业。我头两轮抽检时发现了不少穿帮句子比如严格控制新建燃煤机组稳步推进火电灵活性改造——这里面的新能源根本没出现但灵活性改造被我词典收录后造成了假命中。这种问题只有人工读句才能发现。抽检比例不需要太高全国抽 5% 的城市每个抽 2 个年份花半天时间就能过完。但这半天换来的是整份数据集的可靠性背书性价比极高。5. 重视度指数的计算口径从频数到城市年度分值词频统计只是中间产物要变成重视度指数还需要设计一套计算口径。直接用原始词频横向比较城市是有问题的A 市年度报告全文两万字B 市只有一万一B 市提 10 次新能源和 A 市提 10 次新能源实际重视程度完全不同。5.1 核心指标关键词密度我采用的核心指标是关键词密度Key Term Density简称 KTD公式为KTD 新能源关键词命中次数归一化后 / 报告全文总词数 × 10000为什么要做 10000 倍放大因为词频占比通常是个很小的数比如 0.0012不放大看起来不直观。乘以 10000 后变成 12代表每万个词里有 12 个新能源相关词这种尺度更适合人读和绘图。这个指标本质上就是每万词的关键词浓度。举个实例某市某年报告全文 18500 词新能源关键词命中 86 次那这一年的 KTD 86 / 18500 × 10000 ≈ 46.49。另一市报告全文 32000 词命中 90 次KTD 90 / 32000 × 10000 ≈ 28.13。虽然它们的命中次数接近但前者的内容浓度明显更高排序时前者更靠前。5.2 分行业权重调整新能源产业内部有不同细分赛道为了区分重视结构的差异我给四类赛道设了不同权重核心制造锂电、光伏、风电设备权重 1.0终端应用新能源汽车、充电桩权重 0.9前沿技术氢能、储能、燃料电池权重 1.2综合概念绿色低碳、碳达峰、循环经济权重 0.6。权重设置没有绝对标准核心逻辑是前沿技术类的词在政策文本里本来就相对稀缺一旦出现说明该市在该领域有超前布局意识需要放大其信号综合概念类词汇容易成为套话需要压权。你可以根据研究偏好调整这个权重但一旦调整整个数据集的横向可比性会受影响所以确定后尽量不中途修改。5.3 重视度指数与标准化在 KTD 基础上我把同一城市不同年份的数值做了纵向标准化得到最终的重视度指数重视度指数 (当年 KTD - 该市历史最小值) / (该市历史最大值 - 该市历史最小值) × 100这样每个城市的得分都被压缩到 0 到 100 的区间。0 分代表该市 25 年内新能源提及最低的年份100 分代表最高的年份。这样设计的好处是既保留了城市之间的横向差异看原始 KTD又能做城市内部的纵向对比看趋势是上升还是下降。另外我还同步输出一个提及面字段表示当年报告的章节覆盖度。具体做法是把年度报告按章节标题切成若干板块总体回顾、存在问题、重点工作、附件附表统计新能源关键词出现在几个板块。这个指标虽然粗糙但能区分两种不同情况A 市提了 60 次新能源但全挤在存在问题部分B 市提了 40 次但分布在总述、重点工作、专项部署三个板块。显然后者对产业的布局更体系化。5.4 平滑处理与异常年份处理数据里有少数城市的个别年份会出现报告缺档的情况早年间甚至整年无报告。我的做法是缺档年份不填充保留空值连续缺档超过三年的城市从主数据分析中剔除但保留在原始数据表中供单独研究。不要用插值法填充因为文本词频这种受人事变动影响很大的指标插值会制造虚假趋势。另外还遇到过一个极端案例某市某年报告通篇出现新能源 197 次是我处理全部样本中单篇最高值。查证发现那年该市承办了省级新能源产业现场会报告实质上变成了会议汇报材料篇幅和用词都失真了。我做了标记但保留了原始值。后面做趋势分析的人需要知道这类极端值背后是事件冲击不是政策常态。6. 数据集的最终形态字段、样例与典型分析场景整套流程跑完后我输出了一份标准的 CSV 数据集配套一份字段说明文档。整体设计兼顾了直接使用和二次开发两种需求。6.1 数据字段结构字段名类型说明city_idstring地市级单位代码唯一标识city_namestring地级市名称yearint年份2000-2025report_typestring文本类型年度报告/规划文本total_word_countint报告全文总词数new_energy_total_hitsint新能源关键词归一化命中次数ktdfloat关键词密度万分比attention_indexfloat重视度指数0-100 标准化section_coverageint提及面覆盖的章节板块数report_sourcestring文本来源备注is_abnormalint异常标记1 为事件冲击等异常值city_id 是唯一主键配合 year 使用可以定位到任意城市任意年份的一条记录。这个结构不复杂但稳定Pandas 直接读取后做 groupby 透视、merge 关联、时序绘图都很顺手。6.2 样例数据比如某中部地级市 2010 年的记录是报告全文 12735 词新能源相关词命中 21 次KTD 为 16.49重视度指数只有 12提及面为 2 个板块到了 2021 年同样的城市报告全文 16800 词命中 87 次KTD 达到 51.79重视度指数升到 78提及面扩展到 4 个板块。这两行数据的差异就清楚描出了这个城市新能源产业从边缘走向中心的轨迹。6.3 典型分析场景我从自己后续的实际使用中总结了三个最核心的应用场景这也是这份数据集最有价值的地方。第一个场景是趋势描绘。直接把某省所有地级市的 attention_index 按年份画折线图能清楚看到政策关注度什么时候开始陡增。我观察到的普遍规律是大部分城市在 2013 年前后出现第一次明显抬升在 2020 年双碳目标提出后出现第二次系统性抬升。这个拐点信息在产业研究里非常有用。第二个场景是政策洼地识别。把同级城市按 attention_index 分位数分成高、中、低三档再结合当地的资源禀赋条件做交叉分析很容易找到资源条件极好但政策提及度极低的城市。这类城市往往是新能源投资的机会窗口期——资源已经在那里政策还没有完全跟上早一步布局的成本最低。第三个场景是和其他经济数据的相关性校验。我把 KTD 数值和城市当年的新增新能源企业数量做了相关性分析发现两者的相关系数在前五年为 0.31后五年上升到 0.67。这说明词频指标对产业实际发展的预测力随时间推移在增强。这一点也和直觉吻合早期的报告可能是口号但越往后报告内容与实际资源的挂钩程度越紧。7. 踩坑实录三件让统计结果翻车的小事这个项目做了这么久数据量大的代价就是意外多。我挑三个印象最深的真实案例分享出来大家做类似文本挖掘项目时可以直接避开。7.1 文件编码问题导致的分词乱码第一件是文件编码。早期文本大多来自网页复制粘贴编码五花八门有 GBK、GB2312、UTF-8还有带 BOM 的 UTF-8。我第一次跑完整流程时有 4% 的文本读取后乱码分词器把乱码内容当成一堆没意义的字母串导致某些城市关键词密度被稀释得异常低。排查了很久才定位到这个原因。处理方式很简单读取所有文本后统一强制转成 UTF-8遇到无法解码的文件就丢弃并用原始 PDF 重新 OCR。你在写代码时读文件最好显式指定编码参数不要依赖系统默认。with open(file_path, r, encodingutf-8, errorsreplace) as f: text f.read()7.2 零部件一词造成的全行业虚高第二件事触发得特别隐蔽。我在迭代词典到第三轮时加入了新能源零部件这个词组本意是识别提出布局零部件产业的城市。结果发现东北某重工业城市群的词频集体上升。查原因当地年度报告大量出现汽车零部件装备制造零部件等表述虽然和新能源无直接关系但因为零部件这三个字和新能源零部件存在子串匹配新能源零部件这个词组被局部命中导致误计。解决方案是打开 jieba 的精确模式并检查全部词典词是否都参与独立的词组匹配。我后来把所有词组的匹配逻辑都改成必须完整命中完整词组不许子串命中。就是这一条规则消除了一大半误报。7.3 绿色的归一化陷阱第三件事是词义漂移。我发现某市的绿色词频在近五年逐年冲高一度误判为该市高度重视绿色产业。翻开原文才看到大量出现的是绿色金融改革绿色审批通道绿色生态廊道。这些词里的绿色更多是政务服务和生态建设的用语与新能源产业关联度很低。我最后的处理是把绿色从独立计权词中降级只在组合词绿色发展绿色能源绿色低碳绿色产业中出现才算命中。这相当于为宽泛词增加了一条上下文约束。所有宽泛词的通用处理思路都是这样不要让它单独计权强制它必须以特定搭配形式出现。8. 这套方法的边界与可复用性词频统计方法测重视度有很多优点但它也有明确的边界。我在项目文档里专门写了三条适用说明供后续使用者判断。第一这个方法测的是文本重视度不是财政重视度。地方部门的钱花在哪里和报告里写什么总体趋势一致但存在错位。有的城市报告写得多实际资金投入未必领先有的城市不声不响但专项债发了很多。所以如果要研究真金白银的投入词频数据最好和财政支出数据配合使用不要互相替代。第二它在时间轴上的可比性依赖文本体例的稳定。不同年代报告的篇幅差异大我的处理是用密度指标缓解但无法完全消除。早期报告普遍篇幅短同等重视程度下早期 KTD 会偏高这是数据集的固有特性分析时建议分时段比较而不是拿 2005 年的绝对数值与 2020 年直接比高低。第三这套方法也适用于其他行业的政策重视度研究。基础设施、数字经济、生物医药、人工智能凡是存在公开政策文本的领域都可以按种子词—词典扩展—同义归一—密度计算—指数标准化这套链路复制。你只需要把新能源词典替换成目标领域的词典权重表按目标行业特征重新设置。我做这份数据集最大的体会是文本挖掘项目最花时间的不是写统计代码而是处理那些看起来和做起来不一样的文本细节。词典的宽度、归一化的粒度、异常值审查的深度每一项都会实质性地改变最终排名。技术方案的骨架人人都能搭但这些细节才决定数据能不能站得住脚。如果你也想自己复现一套类似的指标我的建议是不要一上来就追求大而全先挑 20 个城市、5 年数据把词频统计的整个流程跑通再逐步扩大覆盖范围。细节问题在小样本上暴露得越充分后面扩到全国时才越省心。

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询