粤港澳大湾区规划中的城市关键词

粤港澳大湾区的提法提了一年多,最终出来了一个规划,市场反映热烈,其实这个规划与以往最为不同的,是在于将香港、澳门和内地城市放到一起进行规划。

粤港澳大湾区规划的特征如何,不同城市的重要性,至少是在规划中的重要性有什么差异,通过分词可以提供一个量化的视角。本文的分词分成以下两步骤:1)在规划文本中选取涉及某个城市的句子,由于自贸区在近几年推进改革开放有重要意义,也是大湾区改革方面的核心,因此广州、深圳、珠海的统计加上南沙、前海、横琴的数据。2)对选出的句子按城市分组,每一组句子不重复,但不同组之间句子存在重复,再进行分词。分词前加入部分本规划常出现的专用词,分词后删去停用词,包括一些规划中经常有到的推进、支持、探索,然后按城市分组统计分词情况,统计词频并输出词云。

城市 次数(句子) 次数(词)
香港 76 94
澳门 70 85
深圳 40 35
广州 38 40
珠海 31 19
佛山 9 8
中山 8 7
东莞 7 7
江门 7 6
惠州 6 5
肇庆 5 4
  • 从各城市提及的次数上看,香港、澳门涉及句子均超过70,远超过第三名的40,如果从词语提到的次数上,频率均在第三名的2倍以上,其实还有很多“港澳”这样的字眼,可以看到,港澳两地的地位确实十分特殊。
  • 规划中提到了4个中心城市,规划中略有差异,除了香港、澳门提及次数远远高于其他,另外就是珠海,广州、深圳、珠海涉及句子都在30-40之间,但是提及珠海次数只有19次,仅为广州、深圳的一半,主要是相当部分涉及珠海的内容直接提交横琴,一方面是自贸区的特殊地位,另一方面珠海的定位与澳门紧密关联。
  • 实际上还有一处有意思的地方,各城市按句子统计提及次数的排序和按词语统计基本一致,唯一不同的一处在于深圳和广州,提及深圳的句子对于广州,但是“广州”一词出现次数更多。

香港
澳门
广州
深圳
珠海
佛山
东莞
中山
惠州
江门
肇庆

  • 总体上看,规划有两个方面的特点,一是主要词语是地名,并且多数地区存在联系,二是十分强调创新,显示的前20个关键词中,几乎都出现创新,唯一的例外是佛山,但提到转型。
  • 如前所述,香港、澳门是规划的重点,经常同时提起,澳门组中第二是香港,香港组中第二是澳门。其他地域的联系上,香港强调深圳、广州、国际,澳门涉及横琴、深圳、广州、葡语,经济领域香港提及基金、服务、投资等金融、服务业,澳门提及旅游、服务。
  • 广州和深圳在定位上存在错位,但从关键词上看,似乎有许多接近的地方。与广州联系的地域,主要是深圳、香港、南沙,还部分涉及澳门和珠海,深圳则是广州、香港、前海,也涉及澳门和珠海,并提到深港,除了各自的自贸区,几乎一致。其他方面,两地都提到了青年、创业、机场、国际。
  • 珠海也颇有些特点,提及横琴的次数(22)多于珠海(19),相关的地域依次是横琴、澳门、广州、深圳,尽管有港珠澳大桥,似乎提及香港的不多,提到了港澳。其他词语中,提到机动车、口岸,主要还是与港澳的融合、往来的便利化方面。
  • 佛山和东莞。佛山比较特别的地方在于提到较多的词语都是地名,前9个词语中7个是地名,从第二名开始分别是香港、东莞、珠海、深圳、澳门、广州,除了城市间的联系,更多是政策安排上与其他地区相同。东莞处于广州深圳之间,经济规模也接近佛山,远高于其他城市,但从词云上看,和中山、惠州、江门几乎一致。
  • 肇庆。肇庆提及的次数最少,仅有5次,其经济实力于大湾区中也是最后一位,提及肇庆的句子中,广州和铁路出现的次数最多,肇庆主要以从属的地位出现。关键词中也有一些很是特别,除了前面的铁路,还出现了仅有的一个农产品。
  • 其他4个城市。其他4个城市除了各自城市名称在词云中重要性有所不同,主要词语几乎是一致的,港澳、青年、创新、创业、基地。因为“支持港澳青年和中小微企业在内地发展,将符合条件的港澳创业者纳入当地创业补贴扶持范围”一句提及多个港澳青年创新/创业基地。

前文分析了从规划文本关键词的视角对大湾区规划的理解,尤其是对各城市特点差异的理解。但总体来看,这种方法在衡量城市的重要性更为有效,衡量城市特征可能存在一定缺陷。城市分组的词频统计中,多次出现其他城市,可能是两个城市之间往来密切,规划中统一安排以达到融合发展,但也可能是两者具有某些相同特征,共享一项政策(比如惠州和肇庆)。此外,对于提及次数较少的城市,难以从词频统计获取特征信息,东莞、中山、惠州、江门最主要词语几乎都是一致的,只是来自同一句话,描述差异性的语句反倒在词频统计中不明显。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
import docx
dmt=docx.Document('plan.docx')

def txtseg(docmt,keyword1,keyword2=''):
list1=[]
list2=[]
list3=[]

for para in docmt.paragraphs:
a=para.text.find(keyword1)
if len(keyword2)>0:
b=para.text.find(keyword2)
else:
b=0
if a>0:
list1.append(para.text)
if (a>0)|(b>0):
list2.append(para.text)
for para in list2:
sp=para.split('。')
for i in sp:
c1=i.find(keyword1)
if len(keyword2)>0:
c2=i.find(keyword2)
else:
c2=0
if (c1>0)|(c2>0):
list3.append(i)

return list1,list2,list3

keylist1=[u'广州',u'深圳',u'珠海',u'香港',u'澳门',u'佛山',u'东莞',u'中山',u'惠州',u'江门',u'肇庆']
keylist2=[u'南沙',u'前海',u'横琴']

reslist=[]
streslist=[]
for i in range(11):
if i<3:
res=txtseg(dmt,keylist1[i],keylist2[i])
else:
res=txtseg(dmt,keylist1[i])
reslist.append(res[1])
streslist.append(res[2])

datalist=[]
for i in range(11):
city=keylist1[i]
mention_st=len(streslist[i])
dic={'city':city,'mt_st':mention_st}
datalist.append(dic)

import jieba
import pandas as pd
from collections import Counter

Alist=[u'粤港澳大湾区',u'大湾区',u'湾区',u'前海']
for word in Alist:
jieba.add_word(word)

from string import punctuation
add_punc=',。、【 】 “”:;()《》‘’{}?!⑦()、%^>℃:.”“^-——=&#@¥'
stopword1=punctuation+add_punc
stopword2=[u'的',u'等',u'和',u'发展',u'支持',u'在',u'-',u'推进',u'为',u'至',u'提升',u'研究',u'加快',u'探索',u'与',u'新',u'作用',u'增强',u'以',u'进一步',u'促进',u'及',u'具有',u'加强',u'开展',u'实施',u'并',u'到',u'更',u'形成',u'中']

def cityst2word(stlist):
wordlist=[]
for i in stlist:
tm=jieba.cut(i)
st_word=[]
for i in tm:
if i not in stopword1:
if i not in stopword2:
st_word.append(i)
wordlist.extend(st_word)
Cdf=Counter(wordlist)
df=pd.DataFrame.from_dict(Cdf,orient='index',columns=['times'])
return df,wordlist

dflist=[]
for i in range(11):
st=cityst2word(streslist[i])
filename='output'+str(i)+'.xls'
stmp=st[0].sort_values(['times'],ascending=False)
dflist.append(stmp)
#stmp.to_excel(filename)

for i in range(11):
datalist[i]['mt_wd']=dflist[i]['times'][keylist1[i]]

maindf=pd.DataFrame(datalist)
maindf=maindf.sort_values('mt_st',ascending=False)
#maindf.to_excel('mainres.xls')

import wordcloud as wc
import matplotlib.pyplot as plt
import numpy as np
from PIL import Image

font=r"C:\WINDOWS\Fonts\simhei.ttf"
color_mask=np.array(Image.open('map.jpg'))
cloud=wc.WordCloud( font_path=font,
background_color='white',
max_words=20,
color_func=lambda *args, **kwargs: (99,162,215),
mask=color_mask,
max_font_size=180,
random_state=30)

for i in range(11):
dic=dflist[i].iloc[:20].to_dict()['times']
picname=datalist[i]['city']+'.jpg'
cloud.generate_from_frequencies(dic)
plt.imshow(cloud)
plt.axis('off')
plt.savefig(picname)