wshuyi的个人博客分享 http://blog.sciencenet.cn/u/wshuyi

博文

如何用 Python 和正则表达式抽取文本结构化信息?

已有 4039 次阅读 2019-9-26 07:47 |系统分类:科研笔记| python, 正则表达式, 文本

简单、直接、高效地从文本中提炼关键内容。让你体验正则表达式的威力。

痛点

很多人的日常工作,都是要和大量的文本打交道的。

例如学者需要阅读大量的文献材料,从中找到灵感、数据与论据。

学生需要阅读很多教科书和论文,然后写自己的报告或者做幻灯。

财经分析师,需要从大量的新闻报道中,找到行业的发展趋势和目标企业动态的蛛丝马迹。

不是所有的文本处理,都那么新鲜而有趣。

有一项重要但繁琐的工作,就是从大量的文本当中抽取结构化的信息。

许多数据分析的场景,都要求输入结构化的信息。

例如在咱们之前介绍过的《贷还是不贷:如何用 Python 和机器学习帮你决策?》和《如何用 Python 和深度神经网络锁定即将流失的客户?》中,你都看到了,机器模型更喜欢被结构化的表格信息来喂养。

然而,结构化的信息,不一定就在那里,静候你来使用。很多时候,它蕴藏在以往生成的非结构化文本中。

你可能早已习惯,人工阅读文本信息,把关键点摘取出来,然后把它们拷贝粘贴放到一个表格中。从原理上讲,这样做无可厚非。但是实际操作里面,效率太低,而且太麻烦。

大部分人,是不愿意从事这种简单重复的枯燥工作的。

一遍遍机械重复鼠标划定文本范围,“Ctrl+C”、切换到表格文档、找准输入位置,再 “Ctrl+V”……

这种事儿做得太多,对你的肩肘关节,甚至是身心健康,都有可能造成不利影响。

想不想尝试用一种更简单的自动化方式,替你快速完成这些烦人的操作步骤呢?

读过本文后,希望你能找到答案。

样例

这里,我们举一个极端简化的中文文本抽取信息例子。

之所以这样做,是为了避免你在解读数据上花费太多时间。

我更希望,你能够聚焦于方法,从而掌握新知。

假设一个高中班主任,高考后让班长统计一下学生们的毕业去向。班长很认真地进行了调查,然后做了如下汇报:

张华考上了北京大学
李萍进了中等技术学校
韩梅梅进了百货公司
……

为了让你对样例足够熟悉,甚至有共鸣,这里我从 1998 年版的新华字典中,“借鉴” 了部分内容。

够贴心吧?

现实生活中,一个班大概不会只有 3 个人,因此你可以想象这是一个长长的句子列表。

但其实班主任有个隐含的意思没有表达出来,即:

我想要一张表格

所以,看到这一长串的句子,你可以想象他的表情。

班长估计也很难堪:

想要表格你早说啊!

这时候,假设你是班长,怎么办?

信息都在文本里面。但如果需要转换成表格,就得一个个信息点去寻找和处理。

其实,对于四五十人的班级来说,手动操作也不是什么太难的事情。

但是设想一下,如果你需要处理的数据量,是这个例子的十倍、百倍甚至千万倍呢?

继续坚持手动处理?

这不仅麻烦,而且不现实。

我们需要找到一种简单的方法,帮助我们自动抽取相应的信息。

此处我们使用的方法,是正则表达式

正则

“正则表达式” 这个名字,初听起来好像很玄妙。实际上,它是从英文 “regular expression” 翻译过来的。

如果译成白话,那就是 “有规律的表述形式”。

这,听起来,是不是就更加接地气了?

但是,给你补一下 “假行家 101” 课程:

说别人听得懂的话,你能唬得住谁?

约定俗成,咱们继续沿用 “正则表达式”,来称呼它好了。

从创生之日起,它就给文本处理带来了高效率。

但是,用它的主要人群,却不是时常跟文字打交道的作家、编辑、学者、文员,而是……

程序员!

程序员写的代码,是文本;程序员处理的数据,很多也是文本格式。其中便有很多显著的规律可循。

正是靠着正则表达式这种独门秘籍,许多别人做起来,需要昏天黑地一整周的任务,程序员可以半小时搞定,然后喝着咖啡等下班。

即便到了泛人工智能的今天,正则表达式依然有许多令你意想不到的应用。

例如人机对话系统。

你可能看了新闻报道,总以为人机对话都是靠着知识图谱或者深度学习搞出来的。

不能说这里面,没有上述炫酷技术的参与。但它们充其量,只占其中一部分,或许还只是一小部分。

生产实践里面,大量的对话规则后面,并不是让你倍感神奇深奥的神经网络,而是一堆正则表达式。

你可能会担心,这样高端的应用技术,自己能掌握吗?

答案是:

当然!

正则表达式,并不难学。

尤其是当你把它和 Python 结合到一起,那简直就是效率神器了。

我们这就来看看,正则表达式怎么帮我们识别出样例文本里面 “人名” 和 “去向” 信息。

试练

请你开启一个浏览器,键入这个网址(https://regex101.com/)。

你会看见如下界面。

它可是一个正则表达式实验的利器。我教 INFO 5731 课程时,学生们就是在掌握了这个工具以后,迅速玩儿转了正则表达式。

这么好的工具,一定要价不菲吧?

不,它是免费的。你放心大胆使用就好了。

我们首先把左侧的编程语言,从默认的 PHP ,调整为 Python。

之后,把需要进行处理的文本,贴到中间空白的大文本框里面。

下面我们来尝试进行 “匹配”。

什么叫做匹配呢?

就是你写一个表达式,电脑便拿着鸡毛当令箭,在每一行文本上,都认认真真地找有没有符合该表达式的文本段落。

如有,则会高亮显示出来。

这里我们观察一下,发现每个句子里面,人员去向前面,都有一个 “了” 字。

好,我们就在中部上方小文本框里,把 “了” 字输入进去。

可以看到,三句话里面的 “了”,全都亮了

这就是你接触到的第一种匹配方式 —— 按照字符原本的意思来查找一致的内容。

因为样例文本的规律性,我们可以把 “了” 当成一个定位符,它后面,到句子结束位置,是 “去向” 信息。

咱们需要找的一半结构化信息,不就是这个 “去向” 吗?

我们尝试匹配 “去向”。

怎么匹配呢?这次每一行的字儿都不一样啊?

没关系,正则表达式强大之处,此时就显示出来了。

你可以用一个点号,也就是.,表示任意字符。

字母、数字、标点…… 甚至是中文,也能涵盖在内。

然后我们继续想想看,去向信息这里,会有几个字呢?

不好说。

例子里面这简单的三句话,就有 “4 个字” 或者 “6 个字” 两种情况。

所以,我们无法指定去向信息里面字符的长度。

但这也没关系,我们只需要用一个星号(*),就可以代表出现次数,从 0 到无穷大都可以匹配。

当然,实际情况中,是不会真出现无穷大的。

我们在刚才输入的基础上,加上.*,结果就成了这个样子:

不错嘛!

不过似乎去向信息和 “了” 字儿都是一样颜色的高亮。那不就混到了一起吗?

我们可不想这样。

怎么办?

请你在.* 的两侧,尝试加入一对小括号(注意,不要用中文全角符号)试试看。

你会发现,这次 “了” 依然用蓝色表示,而后面的去向信息,已经变成了绿色。

这一对小括号,很重要,它叫做 “分组”,是提取信息的基本单位。

我们的任务已经解决了一半了,是吧?

下面我们来尝试把人名一并抽取出来。

我们来找人名的锚定位置。

细细观察,你不难发现,每个人名的后面,都有个动词跟着。

升学的同学,用的是 “考” 字,而就业的同学,用的是 “进” 字。

我们先尝试一下 “考” 字。

这里我们尝试直接把 “考” 字放在 “了” 字以前。但是你会发现,什么匹配结果也没有。

为什么?

回看数据,你会发现,人家用的原词是 “考上了”。

当然这里我们可以输入 “上” 字。不过你要考虑一下更为通用的情况。

好比说,“考取了” 怎么办?“考入了” 呢?

更好的方式,是继续使用我们刚才学会的 “大招”,在 “考” 和 “了” 之间,插入一个.*

这时候,你的正则表达式的样子是 考.*了(.*)

看,第一行的信息成功匹配了吧?

但是,那后面还有两行没有匹配,怎么办?

我们依样画葫芦,就会发现,使用进.*了(.*) 就能正确匹配后两行。

问题来了:

匹配第一行的,匹配不了后两行,反之亦然。

这不好。我们希望写的表达式,能够更通用

怎么办?

我们看看正则表达式当中 “或” 关系的表示。

这里,我们可以把两个字符用竖线隔开,旁边用中括号括起来,代表两者任一出现,都算匹配成功。

也就是,把正则表达式,写成这样:[考|进].*了(.*)

太棒了,三行的内容都已经匹配成功。

这里,动词词组,和代表时态的 “了” 作为中间锚定信息,我们可以放心大胆,把之前的人名信息,提取出来了。

也就是这样写:(.*)[考|进].*了(.*)

注意此时,人名分组是绿色,去向分组是红色的。

我们成功提取了两组信息!庆祝一下!

可是,如果你给班主任看这里的结果,估计他不会满意。

表格,我要表格!

别着急,该 Python 出场了。

下面我们尝试在 Python 把数据正式提取出来。

环境

本文的配套源代码,我放在了 Github 上。

你可以在我的公众号 “玉树芝兰”(nkwangshuyi)后台回复 “regex”,查看完整的代码链接。

如果你对我的教程满意,欢迎在页面右上方的 Star 上点击一下,帮我加一颗星。谢谢!

注意这个页面的中央,有个按钮,写着 “在 Colab 打开”(Open in Colab)。请你点击它。

然后,Google Colab 就会自动开启。

我建议你点一下上图中红色圈出的 “COPY TO DRIVE” 按钮。这样就可以先把它在你自己的 Google Drive 中存好,以便使用和回顾。

Colab 为你提供了全套的运行环境。你只需要依次执行代码,就可以复现本教程的运行结果了。

如果你对 Google Colab 不熟悉,没关系。我这里有一篇教程,专门讲解 Google Colab 的特点与使用方式。

为了你能够更为深入地学习与了解代码,我建议你在 Google Colab 中开启一个全新的 Notebook ,并且根据下文,依次输入代码并运行。在此过程中,充分理解代码的含义。

这种看似笨拙的方式,其实是学习的有效路径。

代码

首先,读入 Python 正则表达式包。

import re

然后,我们把数据准备好。注意为了演示代码的通用性,我这里在最后加了一行文字,区别于之前的文字规律,看看我们的代码能否正确处理它。

data = """张华考上了北京大学
李萍进了中等技术学校
韩梅梅进了百货公司
他们都有光明的前途"""

然后,该写正则表达式了。你真的需要自己手动来写吗?

当然不必。

强大的 regex101 网站,已经帮助我们准备好了。

请你点击上图中红色圈出的按钮,网站会为你准备好一个初始代码的模板,可以匹配你需要的模式。

你不需要完全照搬代码。其中有这样一句,是很重要的,拷贝过来,贴到 Colab Notebook 就好。

regex = r"(.*)[考|进].*了(.*)"

以上就是你的正则表达式,在 Python 里面应有的样子。

我们准备一个空列表,用来接收数据。

mylist = []

接着,写一个循环。

for line in data.split('\n'):
  mysearch = re.search(regex, line)
  if mysearch:
    name = mysearch.group(1)
    dest = mysearch.group(2)
    mylist.append((name, dest))

我给你解释一下这个循环里面,各条语句的含义:

  • data.split('\n') 把文本数据按行来拆分开。这样我们就可以针对每一行,来获取数据。

  • mysearch = re.search(regex, line) 这一句尝试匹配模式到该行内容。

  • if mysearch 这个判断语句,是让程序分辨一下,该行是否有我们要找的模式。例如最后一行文字,里面并没有咱们前面分析的文字模式。遇到这样的行,直接跳过。

  • name = mysearch.group(1) 是说匹配的第一组内容,也就是 regex101 网站里绿色代表的人名分组存到 name 变量里。下一句依次类推。注意 group 对应你正则表达式里面小括号出现的顺序,从 1 开始计数。

  • mylist.append((name, dest)) 把该行抽取到的信息,存入到咱们之前定义的空列表里面。

注意,如果不加 mysearch = re.search(regex, line) 这一句,程序会对每一行都尝试匹配并且抽取分组内容,那么结果就会报这样的错误:

所以你看,用正则表达式抽取信息时,不能蛮干。

此时,我们查看一下 mylist 这个列表里面的内容:

mylist

结果为:

[('张华', '北京大学'), ('李萍', '中等技术学校'), ('韩梅梅', '百货公司')]

不错,一个不多,一个不少,恰好是我们需要的。

我们要把它导出成为表格。方法有很多,但是最简便顺手的,是用 Pandas 数据分析软件包。

import pandas as pd

只需要利用 pd.DataFrame 函数,我们就能把上面列表和元组(tuple)组成的一个二维结构,变成数据框。

df = pd.DataFrame(mylist)
df.columns = ['姓名''去向']

注意,这里我们还非常细心地修改了表头。

看看你的劳动成果吧:

df

有了数据框,转换成为 Excel ,就是一行代码的事情了:

df.to_excel("dest.xlsx", index=False)

进入 Files 标签页,刷新并且查看一下当前目录下的内容:

这个 dest.xlsx 就是输出的结果了。下载之后我们可以用 Excel 打开查看。

任务完成!

你可以把结果提交给班主任,看他满意的笑容了。

小结

这篇教程里面,咱们谈了如何利用文本字符规律,借助 Python 和正则表达式,来提取结构化信息。

希望你已经掌握了以下本领:

  • 了解正则表达式的功用;

  • 用 regex101 网站尝试正则表达式匹配,并且生成初步的代码;

  • 用 Python 批量提取信息,并且根据需求导出结构化数据为指定格式。

再次强调一下,对于这么简单的样例,使用上述方法,绝对是大炮轰蚊子。

然而,如果你需要处理的数据是海量的,这个方法给你节省下来的时间,会非常可观。

希望你能够举一反三,在自己的工作中灵活运用它。

资源

先别急着走。

由于篇幅所限,教程中我只给你介绍了几项最简单正则语法。肯定会有很多你感兴趣的语法知识,没来得及一一讲给你听。

如果你对于正则表达式很感兴趣,因为科研或者工作目的,需要马上学习,也请不要着急。

我这里刚好有一份免费的优秀教程资源分享给你。

我在 UNT 讲授 INFO 5731 课程的时候,就是用这份教程结合翻转教学,让从没听说过正则表达式的学生们,在一两周之内掌握并且熟练应用。相信对你来说,这份教程资源也会很有用。

你可以在我的公众号 “玉树芝兰”(nkwangshuyi)后台回复 “regex”,查看教程链接。

祝学习愉快!

喜欢别忘了点赞

还可以微信关注我的公众号 “玉树芝兰”(nkwangshuyi)。别忘了加星标,以免错过新推送提示。

如果本文可能对你身边的亲友有帮助,也欢迎你把本文通过微博或朋友圈分享给他们。让他们一起参与到我们的讨论中来。

延伸阅读

你可能也会对以下话题感兴趣。点击链接就可以查看。

题图: Photo by Tim St. Martin on Unsplash




https://blog.sciencenet.cn/blog-377709-1199506.html

上一篇:给导师的套磁信该怎么写?
下一篇:如何与导师有效沟通你的论文选题?
收藏 IP: 221.197.56.*| 热度|

1 杨金波

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

1/0 | 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈囩磽瀹ュ拑韬€殿喖顭烽幃銏ゅ礂鐏忔牗瀚介梺璇查叄濞佳勭珶婵犲伣锝夘敊閸撗咃紲闂佺粯鍔﹂崜娆撳礉閵堝棛绡€闁逞屽墴閺屽棗顓奸崨顖氬Е婵$偑鍊栫敮鎺楀磹瑜版帒鍚归柍褜鍓熼弻锝嗘償閵忕姴姣堥梺鍛婄懃閸燁偊鎮惧畡鎵殾闁搞儜灞绢棥闂佽鍑界徊濠氬礉鐎n€兾旈崨顔规嫼闂侀潻瀵岄崢濂稿礉鐎n喗鐓曢柕濞垮劤缁夎櫣鈧娲橀崝娆撳箖濞嗗浚鍟呮い鏃囨閻︽粓姊绘笟鈧ḿ褔鎮ч崱妞㈡稑螖閸愵亞鐣堕梺鍦劋閹歌埖绂嶅⿰鍫熺叆闁哄倽娉曟禒銏⑩偓瑙勬尭濡盯鍩€椤掍緡鍟忛柛鐘愁殜閹繝鏁撻悩顔瑰亾娓氣偓瀵噣宕煎┑瀣暪闂備胶绮弻銊ヮ嚕閸撲讲鍋撳顑惧仮婵﹦绮幏鍛村川婵犲倹娈樼紓鍌欐祰椤曆囧磹婵犳艾鐒垫い鎺嶇閸ゎ剟鏌涢敐蹇曠М鐎规洘妞芥慨鈧柍銉ョ-缁愮偤姊鸿ぐ鎺戜喊闁告﹢绠栧畷銏ゅ础閻愨晜鏂€闂佸疇妫勫Λ妤呮倶閻樼粯鐓熼煫鍥ㄦ⒒缁犳牜绱掗崒姘毙х€规洜鍏橀、姗€鎮╃喊澶屽簥濠碉紕鍋戦崐鏍涙笟鈧畷鎴﹀箛椤撶喐鐝烽梺鎸庢閺侇噣宕戦幘鑸靛枂闁告洦鍓涢ˇ銉╂⒑闂堟稓澧涢柟顔煎€块悰顕€宕橀纰辨綂闂侀潧绻堥崹濠氭偂閹剧粯鈷戦柛鎾瑰皺閸樻盯鏌涢悩铏婵″弶鍔欓幃銏焊娴h鏉搁梻浣虹帛钃遍柛鎾村哺瀹曨垵绠涘☉娆戝幈闂佺粯蓱閸撴艾鈻撳⿰鍫熺厪闁糕剝顨呴弳锝団偓瑙勬磸閸旀垿銆佸鈧畷鍫曞Ω瑜夊Σ鍫ユ煣缂佹ḿ澧甸柡灞剧☉閳藉宕¢悙鑼啋婵$偑鍊х€靛矂宕抽敐鍜佹綎婵炲樊浜滅粻浼村箹濞n剙鐏い锔哄劦濮婅櫣绮欓崠鈥充紣缂傚倸绉撮敃顏堢嵁閸愵喗鏅搁柣妯哄棘閵娾晜鐓ラ柡鍌氱仢閳锋棃鏌i敃鈧悧鎾愁潖婵犳艾纾兼慨妯哄船椤も偓缂傚倷绀侀鍡欐暜閿熺姴鏋佺€广儱鎷嬮崥瀣煕閳╁啯绀堢紒鐘冲哺濮婃椽宕烽鐘茬闁汇埄鍨遍〃濠囩嵁婢舵劕浼犻柕澹拑绱查梺鍝勵槸閻楀嫰宕濈仦鐭綊顢氶埀顒勫蓟閻旂⒈鏁婇悷娆忓閻濇岸姊虹拠鈥虫灍缂侇喖鐭侀悘鎺楁⒑缂佹ɑ灏悗娑掓櫊閺屻劑顢橀悢铏圭槇闂佹眹鍨藉ḿ褔宕滃畷鍥╃<闁艰壈鍩栭ˉ澶愭偂閵堝鐓忛柛顐g箥濡插綊鏌¢崨顔剧畺闁靛洤瀚粻娑㈠箻閺夋垶顏熺紓鍌欐祰椤曆兾涘┑瀣摕婵炴垯鍩勯弫鍐煥濠靛棙顥犳い锔哄劚閳规垿鏁嶉崟顐$钵缂備緡鍠楅悷鈺侇嚕鐠囨祴妲堥柕蹇曞Х閻も偓闂備線娼чオ鐢告⒔閸曨垱鍋熼柡鍥ュ灪閳锋垿鏌涘┑鍡楊仾妞ゃ儲鐟╅弻娑樜旈埀顒勫疮閸ф缍栭煫鍥ㄦ礈绾惧吋淇婇婵愬殭妞ゅ孩鎹囧娲川婵犲嫧妲堥梺鎸庢磸閸庨潧鐣烽弴銏犵缂備焦菤閹锋椽鎮峰⿰鍛暭閻㈩垱顨婂顐︽焼瀹ュ棛鍘遍梺闈浨归崕鑼嫻閳╁啩绻嗛柛娆忣槸婵秹鏌熼鐣屾噮闁逞屽墯缁嬫帡鏁嬪銈呭閹瑰洤顫忓ú顏勫窛濠电姴鍟喊宥夋倵濞堝灝鏋涘褍娴峰Σ鎰版倷鐎涙ê鍔呴梺闈涒康閼靛綊骞忓ú顏呪拺閻犲洠鈧磭鈧鏌涘☉鍗炵伇闁哥喎鐗婃穱濠囨倷椤忓嫧鍋撻妶澶婄;闁告洦鍨侀崶顒夋晬闁绘劖娼欐禒濂告⒒娴e摜浠㈡い鎴濇噽濞嗐垽鎮欓悜妯煎幍闂備緡鍙忕粻鎴︾嵁濮椻偓閺屾稑顫滈崱鏇犲嚬缂備胶绮换鍫ュ箖娴犲顥堟繛鎴烆殘閹规洟姊绘担绛嬪殭缂佺粯鍨归幑銏ゅ醇濠靛牊娈惧┑鐘绘涧濡矂宕奸鍫熺厱妞ゆ劑鍊曢弸鏃堟煕濡寧顥夐柍瑙勫灴閹晝绱掑Ο濠氭暘闂佽瀛╅崙褰掑礈閻旂厧绠栨慨妞诲亾鐎规洩绲惧鍕偓锝庝簻娴煎骸鈹戦悩鍨毄濠殿喗鎸冲畷顖烆敍閻愬弬锔界節闂堟侗鍎愰柣鎾寸懄閵囧嫰寮埀顒勫磿閹惰棄鍌ㄩ悗鐢电《閸嬫挸鈻撻崹顔界亪闂佺粯鐗曢妶鎼佹偘椤曗偓楠炲洭顢橀悢宄板Τ婵$偑鍊栭弻銊╁触鐎n喖姹查煫鍥ㄧ⊕閳锋帡鏌涚仦鎹愬闁逞屽墰閸忔﹢骞婂Δ鍛唶闁哄洨鍋熼悿鍥⒑鐟欏嫬绀冩い鏇嗗洤瑙︾憸鐗堝笚閻撴稓鈧箍鍎辨鎼佺嵁閺嶎偆纾奸柣娆屽亾闁搞劌鐖煎濠氬Ω閳哄倸浜為梺绋挎湰缁嬫垿顢旈敓锟�:0 | 婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒姗堣€跨€殿喖顭烽弫鎰緞婵犲嫷鍚呮繝鐢靛Т閻忔岸宕濋弽顐ょ婵°倕鎳忛埛鎴︽⒑椤愩倕浠滈柤娲诲灡閺呭爼顢氶埀顒勫蓟濞戞瑧绡€闁稿本绋戞禒鏉懳旈悩闈涗沪闁告梹鐗滈幑銏犫攽鐎n亞顦ㄥ銈呯箰濡顨ラ崟顖涒拻濞达絿枪閺嗛亶鏌熺喊鍗炰喊妞ゃ垺鐗犲畷鍫曞煛閸愵亞鍘犳俊鐐€栧Λ鍐极椤曗偓瀹曟垿骞橀懜闈涙瀭闂佸憡娲﹂崜娑㈡晬濮椻偓濮婃椽宕ㄦ繝鍐f嫻闂佹悶鍔庨弫濠氥€佸鑸垫櫜濠㈣泛锕崬鍫曟⒑閸濆嫭宸濋柛瀣枛椤㈡ê煤椤忓應鎷虹紓鍌欑劍宀e潡骞婇崘顔界厵闁惧浚鍋勬慨宥夋煟濞戝崬娅嶅┑顔瑰亾闂侀潧鐗嗗Λ宀勫箯婵犳碍鈷戠紒瀣濠€浼存煟閻曞倸顩紒顔硷躬閹囧醇濞戞鐩庢俊鐐€栭崝鎴﹀春閸曨倠锝夊箹娴e湱鍘介梺鎸庣箓閹冲骸危婵犳碍鎳氶柨婵嗩槹閸嬬姵绻涢幋鐐茬瑨濠⒀勭叀閺岋綀绠涢幘铏闂佸疇顫夐崹鍧楀箖濞嗘挸绾ч柟瀵稿С濡楁挾绱撴担鍝勪壕婵犮垺岣跨划鏃囥亹閹哄鍋撴笟鈧鎾偄娓氼垱绁梺璇插嚱缂嶅棝宕戦崱娑樺偍妞ゅ繐鐗婇埛鎴︽煕閹炬潙绲诲ù婊勭箘缁辨帞鎷犻幓鎺撴閻庤娲﹂崹鍫曠嵁閹烘嚦鏃€鎷呴崫鍕闂傚倷绀侀幉锟犲礉閹达箑绀夐幖娣灪濞呯姵绻涢幋娆忕仾闁绘挻鐩弻娑樷槈閸楃偞鐏撻梺鍛婄憿閸嬫捇姊绘担鍛婃儓闁哄牜鍓涚划娆撳箣閿曗偓閻撯€愁熆閼搁潧濮囩痪顓涘亾闂備胶绮崝妯间焊濞嗘搩鏁婇柟瀵稿仧缁♀偓闂佹眹鍨藉ḿ褎绂掑⿰鍫熺厽婵°倐鍋撻柨鏇ㄤ邯楠炲啴鏁撻悩鑼紜闂佸綊顣﹂悞锔剧礊鎼淬劍鈷戦柟顖嗗懐顔囧┑鐘亾闂侇剙绉甸崕妤佺箾閸℃ê濮夌紒鐘荤畺閺屾盯鍩勯崗鐙€浜畷婵嬪Χ婢跺鍘遍梺瑙勫劤閻°劎娆㈤崣澶堜簻妞ゅ繐瀚弳锝呪攽閳ュ磭鍩g€规洖宕灃闁告剬鍕枙婵犵绱曢崑鎴﹀磹瑜忕划濠氬箻缂堝懐绱伴悷婊勬閵嗕礁顫濋懜鍨珳闂佺硶鍓濋悷褔鎯侀崼婵冩斀妞ゆ梹鏋绘笟娑㈡煕濡寧顥夐柍璇茬Т楗即宕奸悢鍙夊闂備礁鎲$粙鎴︽晝閿曞倸鐓″鑸靛姈閻撴洖鈹戦悩鎻掍簽闁绘捁鍋愰埀顒冾潐濞叉粍鏅跺Δ鍛畾闁哄啫鐗嗘儫闂侀潧锛忛崘銊ь唺闂傚倷鑳堕幊鎾诲触鐎n喗鍋╂い蹇撶墕缁€澶屸偓鍏夊亾闁逞屽墰閸掓帞鎷犲顔藉兊闁哄鐗勯崝宀勫几閹达附鐓欓柛蹇撳悑閸庢鏌i幘宕囧ⅵ鐎殿噮鍋呯换婵嬪炊閵娧冨箞闂備礁鎼ú銏ゅ礉瀹€鍕€堕柨鐔哄У閻撶喖鏌熼幆褜鍤熼柍钘夘槹閵囧嫰顢橀埄鍐€婇梺鍦嚀鐎氫即骞冨⿰鍐炬建闁糕剝锕槐鎺戔攽閻樺灚鏆╅柛瀣洴楠炲﹥鎯旈埈銉︾☉閳藉顫濋褎缍楅梻浣告贡閸庛倕顫忛崷顓涘亾濮橆厼鍝洪柡灞诲€楅崰濠囧础閻愬樊娼绘俊鐐€х徊浠嬪箹椤愶腹鈧棃宕橀鍢壯囧箹缁厜鍋撻懠顒傛晨缂傚倸鍊烽懗鍓佸垝椤栫偞鏅濋柕蹇嬪€楀畵渚€鏌″搴″箹闁圭鍩栭妵鍕箻鐠虹儤鐎婚梺鍝勵儏閸婂灝顫忓ú顏勫窛濠电姴鍟ˇ鈺呮⒑缁嬫鍎忔俊顐g箞瀵偄顓奸崼銏㈡澑濠电偞鍨堕悷銏ゅ箯缂佹ḿ绠鹃柟鐐綑閻掑綊鏌涚€n偅灏扮紒缁樼⊕閹峰懘宕橀幓鎺濅紑婵炲濮靛畝绋款潖缂佹ɑ濯撮柛娑㈡涧濠€閬嶅焵椤掍胶鈻撻柡鍛█楠炲啴鏁撻悩铏闂佺粯枪鐏忔瑩鎮惧ú顏呪拺婵懓娲ら悘顕€寮搁鍛簻妞ゆ劑鍨洪崵鍥煛鐏炵偓绀嬬€规洜鍘ч埞鎴﹀炊閼告妫撻梻鍌欑缂嶅﹪寮ㄩ崡鐑嗘富闁芥ê顦藉ḿ鏍ㄧ箾瀹割喕绨奸柛銈嗗浮閺屾洟宕煎┑鍥ф闂佽瀛╅崕鎶藉煘閹达附鍋愭い鏃囧亹娴犻箖姊洪幐搴″摵闁哄苯绉剁槐鎺懳熺拠鑼紦闂備胶纭堕弲顏嗘崲濠靛棛鏆﹂柕濞炬櫓閺佸﹪鏌熼鍡楀暟椤撳ジ姊婚崒姘偓椋庣矆娓氣偓楠炲鏁撻悩鎻掔€銈嗙墱閸嬫稓澹曡ぐ鎺撶厸鐎广儱楠告禍鎰版煕鐎n偅灏い顐g箞閹瑩顢楅埀顒勵敂閿燂拷 | 婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柛娑橈攻閸欏繘鏌i幋锝嗩棄闁哄绶氶弻娑樷槈濮楀牊鏁鹃梺鍛婄懃缁绘﹢寮婚敐澶婄闁挎繂妫Λ鍕⒑閸濆嫷鍎庣紒鑸靛哺瀵鈽夊Ο閿嬵潔濠殿喗顨呴悧濠囧极妤e啯鈷戦柛娑橈功閹冲啰绱掔紒姗堣€跨€殿喖顭烽弫鎰緞婵犲嫷鍚呴梻浣瑰缁诲倸螞椤撶倣娑㈠礋椤栨稈鎷洪梺鍛婄箓鐎氱兘宕曟惔锝囩<闁兼悂娼ч崫铏光偓娈垮枛椤兘骞冮姀銈呯閻忓繑鐗楃€氫粙姊虹拠鏌ュ弰婵炰匠鍕彾濠电姴浼i敐澶樻晩闁告挆鍜冪床闂備胶绮崝锕傚礈濞嗘挸绀夐柕鍫濇娴滄粍銇勯幘璺盒㈤柛妯侯嚟閳ь剚顔栭崰鏍€﹂悜钘夋瀬闁归偊鍘肩欢鐐测攽閻樻彃顏柡澶婃啞娣囧﹪鎮欓鍕ㄥ亾閺嶎偅鏆滃┑鐘叉处閸婂潡鏌ㄩ弴鐐测偓鍝ュ閸ф鐓欓柛鎾楀懎绗¢梺鎶芥敱閸ㄥ潡寮婚悢鍏煎殐闁宠桨妞掔划鑸电節绾版ǚ鍋撻悙钘変划闂佸搫鏈粙鎺旀崲濠靛纾兼繛鎴灻煎ǎ顕€鏌f惔銏╁晱闁哥姵鐩、姘愁樄闁糕斂鍎插鍕箛椤掑缍傞梻浣稿暱閹碱偊宕愰悷鎵虫瀺闁搞儺鍓氶埛鎺懨归敐鍥ㄥ殌妞ゆ洘绮庣槐鎺旀嫚閹绘巻鍋撳宀€浜辨繝鐢靛仦閸ㄧ喖骞婇悙鍝勭倞妞ゆ巻鍋撻崬顖炴偡濠婂啰绠冲瑙勬礋閹稿﹥绔熷┑鍡欑Ш闁轰焦鍔欏畷銊╊敊閽樺澹嶉梺璇茬箰缁绘劗鎹㈠Ο渚綎婵炲樊浜滃婵嗏攽閻樻彃顒㈤柣锝夋敱缁绘繈鎮介棃娑楃捕闂佹寧娲忛崐婵嬨€佸鑸垫櫜闁糕剝鐟ч惁鍫濃攽椤旀枻渚涢柛妯哄悑缁傚秴饪伴崼鐔叉嫼缂備礁顑堝▔鏇犵不娴煎瓨鐓熼柕濞у啫骞嬪Δ鐘靛仜缁绘垹鎹㈠┑鍡╂僵妞ゆ挾濮撮獮妤呮⒑绾懎顥嶉柟娲讳簽瀵板﹥銈i崘銊﹁緢闂佸啿鎼幊搴ㄥ礄閻樼偨浜滈煫鍥ㄦ尭椤忋倝鏌¢埀顒佺鐎n偆鍘撻梺闈涱槶閸斿矂鎯冨ú顏呯厽妞ゆ挾鍠撻幊鍕煙娓氬灝濡界紒缁樼箞瀹曟﹢鍩炴径姝屾闂佽姘﹂~澶娒洪敃鍌氱;濠电姴鍊婚弳锕傛煟閺冨倵鎷¢柡浣告閺屽秷顧侀柛鎾寸懇閸┿垹顓兼径濞⒀囨煕閵夈垺娅囬柨娑欑箖缁绘稒娼忛崜褎鍋ч梺鐑╁墲濡啫鐣烽棃娑掓瀻闁规儳顕崢钘夆攽鎺抽崐鎾绘倿閿斿彞鐒婃い鎾跺枂娴滄粓鏌¢崶鏈电敖缂佸宕电槐鎺旂磼濡偐鐣靛銈庡亝缁诲牓銆侀弽顓炵厴闁绘劦鍓氶悵姘舵⒑閸濆嫭婀版繛鍙壝銉╁礋椤栨岸鍞跺┑鐘绘涧閻楀懘鎯€椤忓牊鈷掑ù锝呮啞閹牓鏌涙繝鍕毈鐎规洘鍨块獮妯肩磼濡攱瀚介梻浣呵归張顒勬偡閵娾晛绀傜€光偓閳ь剟鎯€椤忓牜鏁囬柣鎰版涧閻撶喖鎮楃憴鍕缂侇喖鐭傞崺鐐哄箣閻橆偄浜鹃柨婵嗛娴滄繃绻涢崨顔解拻缂佽鲸鎹囧畷鎺戭潩椤戣棄浜鹃柣鎴eГ閸婂潡鏌ㄩ弴鐐测偓鍝ョ矆婢舵劖鐓涚€广儱楠搁獮妤呮煕鎼粹€愁劉闁靛洤瀚板浠嬪Ω閵夈儲鐦撴繝鐢靛仜閸氬鎮уΔ鍐╁床婵炴垶锕╅崯鍛亜閺冨洤鍚归柣鈺侀叄閹鎮烽悧鍫濇殘缂備浇顕ч崐鍧楀春閻愬搫绠i柨鏃囨娴滃綊姊洪崷顓犲笡閻㈩垪鏅犲畷婵囧緞閹邦厸鎷烘繛鏉戝悑閻熝囧箖婵傚憡鐓曢煫鍥ㄦ閼版寧顨ラ悙鎻掓殭閾绘牠鏌涘☉鍗炲箻妞は佸嫮绡€闁靛骏绲剧涵楣冩煥閺囶亞绋荤紒鏃傚枛瀵挳濮€閳锯偓閹风粯绻涙潏鍓у埌闁硅姤绮庣划鏃堟倻濡湱绠氬銈嗗姂閸庤尙娑甸崜浣虹<妞ゆ棁鍋愭晶娑㈡煙瀹勭増鍤囬柟鐓庣秺閺屽懎鈽夊杈ㄥ枓闂傚倸鍊风粈渚€骞栭銈囩煋闁哄被鍎辩粈澶愭倵閿濆骸澧€规洘鐓¢弻娑㈠焺閸愵亖濮囬梺缁樻尭缁绘﹢寮诲☉銏╂晝闁挎繂娲ㄩ悾鐢告⒑闁偛鑻晶顕€鏌熺拠褏纾跨紒顔碱儏椤撳ジ宕遍幇顑跨凹闂備礁鎲¢崝蹇涘棘娓氣偓楠炲繐煤椤忓懐鍘介柟鑲╄ˉ閸撴繄鎷归垾鏂ユ斀妞ゆ梻鍋撻弳顒勬寠閻斿鐔嗛悹杞拌閸庡秴霉濠婂嫮鐭掗柡灞诲姂瀵噣宕剁捄鐑橆唲闂備浇顕ф蹇曠不閹捐钃熸繛鎴欏灩閻撴﹢鏌涢…鎴濇灓濞寸姷鍘ч—鍐Χ閸℃ê纰嶉梺闈涚墢鏋柣锝囧厴瀹曪繝鎮欏鍥ф灈闁硅櫕鐗犻崺鐐侯敄閹€鍋撳┑鍡╂綎缂備焦岣块悷褰掓煃瑜滈崜娆忕幓閼愁垼妯侀梺闈╃到缂嶅﹤顫忓ú顏勫窛濠电姳鑳剁换渚€姊洪幖鐐插濠㈢懓妫濆顐︻敋閳ь剟鐛幒妤€绫嶉柛灞剧玻缁辨娊姊绘担鍛靛綊寮甸鍕殞濡わ絽鍟悞鍨亜閹烘垵顏存俊顐e灩缁辨帡顢欓懖鈺侇杸缂備焦顨堥崰鏍春閳ь剚銇勯幒鍡椾壕闂佷紮绲块崗姗€鐛崶顒€绾у璺烘憸閻愬﹪姊绘笟鈧ḿ褔鏁嶈箛娑樺窛妞ゆ牗鑹鹃懘顖炴⒒閸屾艾鈧绮堟担闈╄€块梺顒€绉甸幆鐐哄箹濞n剙濡肩紒鎰殜閺岀喖骞戦幇闈涙缂佺偓鍎抽…鐑藉蓟閻旇 鍋撳☉娆嬬細閻犳劏鏅濋幉鎼佹偋閸繄鐟ㄧ紓浣插亾闁稿瞼鍋為悡鏇㈢叓閸ャ劏澹樺ù婊冩贡缁辨帞鈧綆浜濋崰妯绘叏婵犲嫮甯涢柟宄版噽缁瑩鎳楅姘卞幋濠电姷鏁搁崑娑樜熸繝鍥х煑闁告劦鐓堥崵鏇炩攽閻樺磭顣查柡鍛絻椤法鎹勯悮瀛樻暰濡炪們鍎茬换鍫濐潖濞差亜鎹舵い鎾亾闁革富鍘搁崑鎾斥槈閹烘挻鐝氶悗瑙勬礃濞茬喖鐛Ο鑲╃<婵☆垵銆€閸嬫捇宕归銈囶啎闂佸壊鍋呯换鍕閵忋倖鐓涢悗锝庡墮閺嬪酣鏌嶇憴鍕伌闁诡喗鐟ч幏鐘侯槻濞村吋鍔曢—鍐Χ鎼粹€茬盎缂備胶绮敮鐐参i幇鏉跨闁瑰啿纾崰鎾诲箯閻樺樊鍟呮い鏃傛嚀娴滈箖鏌熼崜褏甯涢柍閿嬪灴閺岀喖顢涢崱妤佸櫧妞ゆ柨锕铏规兜閸涱喚褰ч梺鍦规晶浠嬪礆閹烘鏁囬柕蹇曞Х娴煎姊洪崫鍕偓鍫曞磿閺屻儱妫橀柍褜鍓熷缁樻媴閾忕懓绗¢梺鍛婃⒐閻楃偤濡甸幇鏉跨妞ゅ繐妫欓敍蹇涙偡濠婂嫭顥堢€殿喖顭烽弫鎰板川閸屾稒顥堢€规洘锕㈡俊鎼佸箛閳轰胶浼堥梺鍝勭焿缂嶄線寮幇鏉跨倞鐟滃秹鐛€n€棃鎮╅棃娑楃捕濠电偛妯婇崢濂割敋閿濆閱囬柡鍥╁仧椤斿洭鏌熼懝鐗堝涧缂佽鲸娲熸俊鍓佹崉鐞涒剝鏂€闂佹寧绋戠€氼剚绂嶆總鍛婄厱濠电姴鍟版晶鍨殽閻愭潙濮嶉柟绛圭節婵″爼宕堕埡鍐ㄥ箚闂傚倷鑳堕幊鎾活敋椤撱垹纾婚柣鏃傤儠閳ь剙鎳樺濠氬Ψ閿旀儳骞楅梻渚€鈧稑宓嗘繛浣冲嫭娅犳い鏍仦閻撴洘绻涢崱妤冪缂佺姵褰冭彁闁搞儜宥堝惈濡炪們鍨虹粙鎴︺偑娴兼潙绀冮柕濞垮€楃敮娑欑節閻㈤潧浠滈柣掳鍔庨崚鎺楀箻閸撲椒绗夐梺鍝勭▉閸樿偐绮婚弽銊ょ箚闁靛牆鍊告禍鎯ь渻閵堝骸浜濈紒璇茬墦楠炲啫鈻庨幙鍐╂櫌闂侀€炲苯澧存い銏℃閺佹捇鏁撻敓锟� | 闂傚倸鍊搁崐鎼佸磹閹间礁纾归柟闂寸绾惧綊鏌熼梻瀵割槮缁炬儳缍婇弻鐔兼⒒鐎靛壊妲紒鐐劤缂嶅﹪寮婚悢鍏尖拻閻庨潧澹婂Σ顔剧磼閻愵剙鍔ょ紓宥咃躬瀵鎮㈤崗灏栨嫽闁诲酣娼ф竟濠偽i鍓х<闁绘劦鍓欓崝銈嗙節閳ь剟鏌嗗鍛姦濡炪倖甯掗崐褰掑吹閳ь剟鏌f惔銏犲毈闁告瑥鍟悾宄扮暦閸パ屾闁诲函绲婚崝瀣уΔ鍛拺闁革富鍘奸崝瀣煕閵娿儳绉虹€规洘鍔欓幃娆撴倻濡桨鐢绘繝鐢靛Т閿曘倝宕幍顔句笉闁煎鍊愰崑鎾斥枔閸喗鐏嶆繝鐢靛仜閿曨亜顕i锕€绀冩い鏃囧亹閿涙粌鈹戦悙鏉戠仸闁煎綊绠栭悰顕€宕奸悢鍓佺畾闂佺粯鍔︽禍婊堝焵椤戞儳鈧繂鐣烽姀锛勵浄閻庯綆浜滈悗顓㈡⒑閸撹尙鍘涢柛瀣閵嗗懘宕f径宀€鐦堥梻鍌氱墛娓氭宕曢幇鐗堢厽闁规儳鐡ㄧ粈鍐磼缂佹ḿ娲寸€规洖宕灃闁告劦浜堕崬铏圭磽閸屾瑨鍏屽┑顔芥尦閳ワ箓鎮滈挊澶庢憰闂佺偨鍎辩壕顓㈠汲閸℃稒鐓冪憸婊堝礈閻旈鏆﹀ù鍏兼綑缁犲鏌ら崨濠庡晱婵炶偐鍠栧娲捶椤撶偛濡哄銈冨妼閹虫﹢鏁愰悙鍝勫窛閻庢稒岣块崢钘夆攽閳藉棗鐏ユ繛鍜冪秮閺佸秴顓奸崥銈囨嚀楗増鎯斿┑鍫熸櫦缂傚倷娴囨ご鎼佸箲閸パ呮殾闁圭儤鍨熼弸搴ㄦ煙閻戞ê鐏ラ悽顖e灠閳规垿鎮╅幇浣告櫛闂侀潻缍囩徊璺ㄥ垝婵犳艾鍐€妞ゆ挾鍠愬▍婊堟⒑缂佹ê濮堟繛鍏肩懅濞嗐垽鎮欓悜妯煎幍闂備緡鍙忕粻鎴﹀礉閿曞倹鐓ラ柡鍥╁仜閳ь剙缍婇幃锟犲即閵忥紕鍘搁梺鎼炲劘閸庤鲸淇婃總鍛婄厽闊洦娲栧暩缂備浇椴哥敮锟犲箖閳轰胶鏆﹂柛銉e妼閸ㄩ亶姊绘担鍛婃儓闁哄牜鍓熼幆鍕敍閻愵亖鍋撴笟鈧鎾閳╁啯鐝抽梻浣虹《閸撴繈鎮烽姣硷綁鎮ч崼婊呯畾闂佺粯鍔︽禍婊堝焵椤掍焦绀冩い銊e劦瀹曨偊濡疯閻撳姊洪懡銈呮灈闁稿锕ゅ玻鍧楀冀椤撶喓鍙勯棅顐㈡处閹歌崵鎷归敓鐘崇厽妞ゆ挾鍠撻幊鍕磼缂佹ḿ娲寸€规洖宕灒闁告繂瀚闂傚倷绀侀幉锟犲箰妤e啫纾婚柟鎹愬煐瀹曞弶绻涢幋鐐茬劰闁稿鎸搁埥澶娾枎鐎n剛绐楅梻浣规た閸樺綊宕愰弴銏$畳婵犵數濮撮敃銈囪姳閼测晞濮崇紓浣骨滄禍婊堟煛閸ユ湹绨介柟顔笺偢閺岀喐顦版惔鈱掋垽妫佹径鎰€甸柨婵嗛娴滆姤绻涢崗鍏碱棃婵﹦绮粭鐔煎焵椤掆偓宀h儻顦撮柟骞垮灲楠炴帡骞橀弶鎴濅紟闂備礁澹婇崑渚€宕曟潏銊ュ姅闂傚倷鐒︾€笛兾涙担鍓叉禆闁靛ě鍡椥℃繝鐢靛У绾板秹鍩涢幋锔界厱婵犻潧妫楅鈺呮煃瑜滈崜姘跺箖閸岀偛绠栨俊顖濄€€閺€浠嬫煕椤愮姴鐏い锔诲灦濮婃椽宕崟顓夌娀鏌涢弬璺ㄐх€规洩缍€缁犳稑鈽夊▎蹇庣敾婵犵數鍋涘Λ妤冩崲閹伴偊鏁傞悗娑欋缚缁犻箖鏌涢銈呮灁闁活厽甯¢弻鈥崇暆閳ь剟宕伴弽顓溾偓浣糕枎閹炬潙浜楅柟鑲╄ˉ閹筹綁鍩℃担鍕煥铻栧┑鐘辫兌閼虫椽姊洪崨濠庢當闁哥喎娼¢幃楣冩倻閽樺)鈺呮煃閸濆嫸鏀婚柡鍜冪秮閹嘲饪伴崘顕呪偓妤冩偖濞嗗浚鐔嗛柤鎼佹涧婵牓鏌嶉柨瀣仸闁逛究鍔戦幃鐑芥偋閸喐鍊烽梻浣虹帛鐢顪冩禒瀣摕婵炴垯鍨规儫闂佸疇銆€閸嬫捇鏌熼弻銉х暫闁哄本娲熷畷鍗炍旈埀顒勫汲閻愮數纾肩紓浣贯缚缁犵偟鈧娲樼敮鈩冧繆閸洖宸濇い鏇炴噹閹亪姊婚崒姘偓椋庣矆娓氣偓楠炴牠顢曢妶鍡椾粡濡炪倖鍔х粻鎴犲閸ф绾ч柛顐g濞呭洤鈽夐幘宕囆ч柡宀嬬秮閹垻绮欓幐搴e浇闁荤喐绮庢晶妤冩暜濡ゅ懎鐤鹃柡灞诲劜閻撴洘绻涢幋婵嗚埞闁哄濡囬惀顏堫敇濞戞ü澹曢梻鍌氬€搁崐椋庣矆娓氣偓楠炲鏁撻悩鍐蹭画闂侀潧顦崕娆忊槈濡攱鏂€闂佺硶妾ч弲婊呯礊鎼淬劍鈷戦柟顖嗗懐顔囧┑鐘亾閺夊牃鏅涢ˉ姘舵煕韫囨稒锛熺紒璇叉閵囧嫰寮介妸褏鐣甸梺鍛婁亢椤濡甸崟顖涙櫆闁告繂瀚慨锕€鈹戦纭烽練婵炲拑绲块崚鎺戔枎閹惧磭顦遍梺鐐藉劚閸樻牜妲愰敐鍡欑瘈闁汇垽娼цⅴ闂佺ǹ顑嗛幑鍥ь潖濞差亶鏁嗛柍褜鍓涚划鏃堝箻椤旇棄鈧潡鏌涢…鎴濅簴濞存粍绮撻弻鐔煎传閸曨厜銉╂煕韫囨挾鐒搁柡灞剧洴閹垽宕妷銉ョ哗闂備礁鎼惉濂稿窗閺嵮呮殾婵炲棙鎸稿洿闂佺硶鍓濋〃蹇斿閿燂拷

扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2025-3-15 14:57

Powered by ScienceNet.cn

Copyright © 2007-2025 中国科学报社

返回顶部