├── .gitignore ├── LICENSE ├── README.md ├── __init__.py ├── actions.py ├── config.yml ├── credentials.yml ├── data ├── dictionary_path │ ├── city.txt │ └── time.txt ├── nlu.md └── stories.md ├── domain.yml ├── endpoints.yml ├── extractors ├── __init__.py └── match_entity_extractor.py └── weather.py /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 XerCis 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Rasa-Weather 2 | Rasa天气查询机器人 3 | 4 | 特点: 5 | 1. 调用[WebService服务](http://www.webxml.com.cn/zh_cn/web_services.aspx),不使用API 6 | 7 | 8 | # 效果 9 | ![效果.gif](https://s1.ax1x.com/2020/06/11/tblRne.gif) 10 | 11 | # 使用方法 12 | 1. 安装Rasa 13 | ```bash 14 | pip install rasa-x -i https://pypi.rasa.com/simple 15 | ``` 16 | 2. 训练模型 17 | ```bash 18 | rasa train 19 | ``` 20 | 3. 启动自定义动作(此过程需要约30s) 21 | ```bash 22 | rasa run actions 23 | ``` 24 | 4. 启动对话 25 | ```bash 26 | rasa shell 27 | ``` -------------------------------------------------------------------------------- /__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vba34520/Rasa-Weather/ab109b9e9a856716a3b7170c55836c33742151f8/__init__.py -------------------------------------------------------------------------------- /actions.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Author : XerCis 3 | # @Time : 2020/6/11 9:21 4 | # @Function: Rasa自定义动作 5 | 6 | from datetime import date 7 | from weather import Weather 8 | from rasa_sdk import Action, Tracker 9 | from rasa_sdk.forms import FormAction 10 | from typing import Any, Text, Dict, List 11 | from dateutil.relativedelta import relativedelta 12 | from rasa_sdk.executor import CollectingDispatcher 13 | 14 | weather = Weather(verbose=1) 15 | 16 | 17 | def parseWeekday(x: str) -> int: 18 | '''解析中文的周几''' 19 | TODAY = date.today() 20 | if x in ['今天', '今日', '第一天']: 21 | return TODAY 22 | if x in ['明天', '明日', '第二天', '一天后']: 23 | return TODAY + relativedelta(days=+1) 24 | if x in ['后天', '后日', '第三天', '二天后', '两天后']: 25 | return TODAY + relativedelta(days=+2) 26 | if x in ['大后天', '大后日', '第四天', '三天后']: 27 | return TODAY + relativedelta(days=+3) 28 | if x in ['大大后天', '大大后日', '第五天', '四天后']: 29 | return TODAY + relativedelta(days=+4) 30 | if x in ['大大大后天', '大大大后日', '第六天', '五天后']: 31 | return TODAY + relativedelta(days=+5) 32 | TIME = { 33 | 1: ['1', '一'], 34 | 2: ['2', '二'], 35 | 3: ['3', '三'], 36 | 4: ['4', '四'], 37 | 5: ['5', '五'], 38 | 6: ['6', '六'], 39 | 7: ['7', '七', '日', '天'] 40 | } 41 | weeks = None 42 | if x.startswith('上') or x.startswith('前'): 43 | weeks = -1 44 | if x.startswith('下') or x.startswith('后') or x.startswith('明'): 45 | weeks = 0 46 | 47 | count = 0 48 | for k, v in TIME.items(): 49 | for i in v: 50 | if i in x: 51 | count += 1 52 | weekday = k 53 | 54 | if count != 1: 55 | return TODAY 56 | elif weeks == 0 or weeks == -1: 57 | return TODAY + relativedelta(weekday=weekday - 1, weeks=weeks) 58 | else: 59 | if TODAY.isoweekday() >= weekday: 60 | return TODAY + relativedelta(days=+1, weekday=weekday - 1, weeks=-1) 61 | else: 62 | return TODAY + relativedelta(days=+1, weekday=weekday - 1) 63 | 64 | 65 | class ActionDebug(Action): 66 | def name(self) -> Text: 67 | return "action_debug" 68 | 69 | def run(self, dispatcher: CollectingDispatcher, 70 | tracker: Tracker, 71 | domain: Dict[Text, Any]) -> List[Dict[Text, Any]]: 72 | city = tracker.get_slot('city') 73 | time = tracker.get_slot('time') 74 | dispatcher.utter_message(text='{} {}'.format(city, time)) 75 | return [] 76 | 77 | 78 | class CityTimeForm(FormAction): 79 | """自定义表单动作,填充所需插槽""" 80 | 81 | def name(self) -> Text: 82 | return "city_time_form" 83 | 84 | @staticmethod 85 | def required_slots(tracker: Tracker) -> List[Text]: 86 | return ["city", "time"] 87 | 88 | def slot_mappings(self) -> Dict[Text, Any]: 89 | """映射所需槽位""" 90 | return { 91 | "city": self.from_entity(entity="city"), 92 | "time": self.from_entity(entity="time") 93 | } 94 | 95 | def submit(self, 96 | dispatcher: CollectingDispatcher, 97 | tracker: Tracker, 98 | domain: Dict[Text, Any] 99 | ) -> List[Dict]: 100 | city = tracker.get_slot('city') 101 | time = tracker.get_slot('time') 102 | result = weather.getWeather(city=city) 103 | today = date.today() 104 | parse = parseWeekday(x=time) 105 | delta = relativedelta(parse, today).days 106 | index = delta + 1 if delta + 1 <= 5 else 1 # 获取五天内,否则获取今天 107 | dispatcher.utter_message(text='{} {} {}'.format(city, time, result['day{}'.format(index)])) 108 | return [] 109 | -------------------------------------------------------------------------------- /config.yml: -------------------------------------------------------------------------------- 1 | language: zh 2 | pipeline: 3 | - name: JiebaTokenizer # 结巴分词器 4 | dictionary_path: 'data/dictionary_path/' 5 | - name: RegexFeaturizer # 正则表达式特征提取器 6 | - name: LexicalSyntacticFeaturizer # 词法语法特征提取器 7 | - name: CountVectorsFeaturizer # 词袋模型特征提取器 8 | - name: DIETClassifier # 意图分类和实体提取的双向转换器 9 | epochs: 100 10 | - name: "extractors.match_entity_extractor.MatchEntityExtractor" # 绝对匹配实体提取器 11 | dictionary_path: "data/dictionary_path/" 12 | take_long: True 13 | - name: EntitySynonymMapper # 同义词匹配实体提取器 14 | 15 | policies: 16 | - name: FormPolicy # 表单策略,用于填充所需槽位 17 | # - name: TwoStageFallbackPolicy # 二阶回退策略,不直接回退而是让用户选,尝试消除输入歧义 18 | - name: MemoizationPolicy # 记忆策略,训练数据有的话以置信度1.0预测下一个动作 19 | - name: MappingPolicy # 映射策略,直接将意图映射到动作 20 | - name: TEDPolicy # 转换嵌入对话策略 21 | max_history: 5 22 | epochs: 100 23 | -------------------------------------------------------------------------------- /credentials.yml: -------------------------------------------------------------------------------- 1 | # This file contains the credentials for the voice & chat platforms 2 | # which your bot is using. 3 | # https://rasa.com/docs/rasa/user-guide/messaging-and-voice-channels/ 4 | 5 | rest: 6 | # # you don't need to provide anything here - this channel doesn't 7 | # # require any credentials 8 | 9 | 10 | #facebook: 11 | # verify: "" 12 | # secret: "" 13 | # page-access-token: "" 14 | 15 | #slack: 16 | # slack_token: "" 17 | # slack_channel: "" 18 | 19 | #socketio: 20 | # user_message_evt: 21 | # bot_message_evt: 22 | # session_persistence: 23 | 24 | #mattermost: 25 | # url: "https:///api/v4" 26 | # token: "" 27 | # webhook_url: "" 28 | 29 | # This entry is needed if you are using Rasa X. The entry represents credentials 30 | # for the Rasa X "channel", i.e. Talk to your bot and Share with guest testers. 31 | rasa: 32 | url: "http://localhost:5002/api" 33 | -------------------------------------------------------------------------------- /data/dictionary_path/city.txt: -------------------------------------------------------------------------------- 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 | 北票 116 | 本溪 117 | 本溪县 118 | 蚌埠 119 | 比如 120 | 毕节 121 | 璧山 122 | 泌阳 123 | 边坝 124 | 宾川 125 | 滨海 126 | 宾县 127 | 彬县 128 | 宾阳 129 | 滨州 130 | 波哥大 131 | 波密 132 | 波士顿 133 | 博爱 134 | 博白 135 | 博湖 136 | 博克图 137 | 博乐 138 | 勃利 139 | 柏林 140 | 博罗 141 | 博山 142 | 博兴 143 | 博野 144 | 亳州 145 | 布尔津 146 | 布里斯班 147 | 布鲁塞尔 148 | 布拖 149 | 布宜诺斯艾利斯 150 | 蔡甸 151 | 蔡家湖 152 | 苍南 153 | 苍山 154 | 苍梧 155 | 苍溪 156 | 沧县 157 | 沧源 158 | 沧州 159 | 曹县 160 | 册亨 161 | 策勒 162 | 岑巩 163 | 岑溪 164 | 察布查尔 165 | 查尔斯顿 166 | 察哈尔右翼后旗 167 | 察哈尔右翼前旗 168 | 察哈尔右翼中旗 169 | 茶陵 170 | 察雅 171 | 察隅 172 | 昌都 173 | 昌吉 174 | 昌江 175 | 昌乐 176 | 昌黎 177 | 昌宁 178 | 昌平 179 | 昌图 180 | 昌邑 181 | 长安 182 | 长春 183 | 常德 184 | 长乐 185 | 常宁 186 | 长沙 187 | 常山 188 | 长寿 189 | 常熟 190 | 长汀 191 | 长兴 192 | 常州 193 | 潮安 194 | 巢湖 195 | 潮阳 196 | 潮州 197 | 郴州 198 | 陈巴尔虎旗 199 | 辰溪 200 | 称多 201 | 成安 202 | 城步 203 | 澄城 204 | 承德 205 | 承德县 206 | 成都 207 | 呈贡 208 | 城固 209 | 澄海 210 | 澄江 211 | 城口 212 | 澄迈 213 | 成山头 214 | 成武 215 | 成县 216 | 茌平 217 | 池州 218 | 赤壁 219 | 赤城 220 | 赤峰 221 | 赤水 222 | 崇礼 223 | 崇明 224 | 重庆 225 | 崇仁 226 | 崇武 227 | 崇信 228 | 崇阳 229 | 崇义 230 | 崇州 231 | 崇左 232 | 滁州 233 | 楚雄 234 | 淳安 235 | 淳化 236 | 慈利 237 | 慈溪 238 | 磁县 239 | 从化 240 | 从江 241 | 措美 242 | 错那 243 | 措勤 244 | 达坂城 245 | 达尔罕茂明安联合旗 246 | 达喀尔 247 | 达拉特旗 248 | 达累斯萨拉姆 249 | 达日 250 | 达州 251 | 达孜 252 | 大安 253 | 大阪 254 | 大埔 255 | 大柴旦 256 | 大厂 257 | 大方 258 | 大丰 259 | 大关 260 | 大化 261 | 大理 262 | 大荔 263 | 大连 264 | 大马士革 265 | 大名 266 | 大宁 267 | 大庆 268 | 大佘太 269 | 大石桥 270 | 大田 271 | 大通 272 | 大同 273 | 大同县 274 | 大洼 275 | 大悟 276 | 大新 277 | 大兴 278 | 大兴安岭 279 | 大姚 280 | 大冶 281 | 大邑 282 | 大余 283 | 大竹 284 | 大足 285 | 大城 286 | 岱山 287 | 代县 288 | 丹巴 289 | 郸城 290 | 丹东 291 | 丹凤 292 | 丹佛 293 | 丹江口 294 | 丹棱 295 | 单县 296 | 丹阳 297 | 丹寨 298 | 儋州 299 | 当涂 300 | 当雄 301 | 当阳 302 | 宕昌 303 | 砀山 304 | 稻城 305 | 道孚 306 | 道县 307 | 道真 308 | 德安 309 | 德保 310 | 德昌 311 | 德格 312 | 德黑兰 313 | 德宏 314 | 德化 315 | 德惠 316 | 德江 317 | 德令哈 318 | 德钦 319 | 德清 320 | 德庆 321 | 得荣 322 | 德兴 323 | 德阳 324 | 德州 325 | 登封 326 | 灯塔 327 | 磴口 328 | 邓州 329 | 电白 330 | 垫江 331 | 钓鱼岛 332 | 迭部 333 | 丁青 334 | 定安 335 | 定边 336 | 定结 337 | 定南 338 | 定日 339 | 定陶 340 | 定西 341 | 定襄 342 | 定兴 343 | 定远 344 | 定州 345 | 东安 346 | 东川 347 | 东阿 348 | 东方 349 | 东丰 350 | 东岗 351 | 东港 352 | 东莞 353 | 东光 354 | 东海 355 | 东京 356 | 东兰 357 | 东丽 358 | 东辽 359 | 东明 360 | 东宁 361 | 东平 362 | 东山 363 | 东台 364 | 东乌珠穆沁旗 365 | 东乡 366 | 东兴 367 | 东阳 368 | 东营 369 | 东源 370 | 东至 371 | 洞口 372 | 洞头 373 | 都安 374 | 都昌 375 | 都兰 376 | 都匀 377 | 斗门 378 | 都江堰 379 | 独山 380 | 堆龙德庆 381 | 敦化 382 | 敦煌 383 | 多伦 384 | 多伦多 385 | 峨边 386 | 额尔古纳 387 | 额济纳旗 388 | 峨眉 389 | 峨眉山 390 | 额敏 391 | 峨山 392 | 鄂尔多斯 393 | 鄂伦春旗 394 | 鄂托克旗 395 | 鄂托克前旗 396 | 鄂温克旗 397 | 鄂州 398 | 恩平 399 | 恩施 400 | 洱源 401 | 二连浩特 402 | 法库 403 | 法兰克福 404 | 繁昌 405 | 繁峙 406 | 范县 407 | 方城 408 | 方山 409 | 方正 410 | 防城 411 | 防城港 412 | 房山 413 | 房县 414 | 肥城 415 | 肥东 416 | 肥西 417 | 肥乡 418 | 费县 419 | 分宜 420 | 汾西 421 | 汾阳 422 | 丰城 423 | 丰都 424 | 峰峰 425 | 封开 426 | 丰南 427 | 丰宁 428 | 封丘 429 | 丰润 430 | 丰顺 431 | 丰台 432 | 丰县 433 | 丰镇 434 | 凤城 435 | 凤冈 436 | 奉化 437 | 凤凰 438 | 奉节 439 | 凤庆 440 | 凤山 441 | 凤台 442 | 奉贤 443 | 凤县 444 | 凤翔 445 | 奉新 446 | 凤阳 447 | 佛山 448 | 福安 449 | 福鼎 450 | 扶风 451 | 佛冈 452 | 福冈 453 | 福贡 454 | 扶沟 455 | 福海 456 | 浮梁 457 | 涪陵 458 | 佛坪 459 | 福清 460 | 福泉 461 | 福山 462 | 浮山 463 | 扶绥 464 | 扶余 465 | 福州 466 | 府谷 467 | 抚宁 468 | 釜山 469 | 抚顺 470 | 抚松 471 | 抚远 472 | 抚州 473 | 阜城 474 | 富川 475 | 富锦 476 | 阜康 477 | 富民 478 | 阜南 479 | 阜宁 480 | 富宁 481 | 阜平 482 | 富平 483 | 富顺 484 | 富县 485 | 阜新 486 | 阜阳 487 | 富阳 488 | 富裕 489 | 富源 490 | 富蕴 491 | 伽师 492 | 改则 493 | 盖州 494 | 甘德 495 | 甘谷 496 | 甘洛 497 | 甘南 498 | 甘泉 499 | 甘孜 500 | 赣县 501 | 赣榆 502 | 赣州 503 | 刚察 504 | 岗巴 505 | 岗子 506 | 高安 507 | 高碑店 508 | 高淳 509 | 皋兰 510 | 高力板 511 | 高陵 512 | 高密 513 | 高平 514 | 高青 515 | 高台 516 | 高唐 517 | 高县 518 | 高雄 519 | 高阳 520 | 高要 521 | 高邑 522 | 高邮 523 | 高州 524 | 藁城 525 | 哥本哈根 526 | 格尔木 527 | 革吉 528 | 个旧 529 | 根河 530 | 耿马 531 | 公安 532 | 工布江达 533 | 恭城 534 | 公主岭 535 | 巩留 536 | 珙县 537 | 巩义 538 | 贡嘎 539 | 共和 540 | 贡觉 541 | 贡山 542 | 沽源 543 | 谷城 544 | 古浪 545 | 古蔺 546 | 古田 547 | 古县 548 | 古丈 549 | 固安 550 | 故城 551 | 固始 552 | 固阳 553 | 固原 554 | 固镇 555 | 瓜州 556 | 拐子湖 557 | 关岭 558 | 冠县 559 | 馆陶 560 | 灌南 561 | 灌阳 562 | 灌云 563 | 光山 564 | 光泽 565 | 广安 566 | 广昌 567 | 广德 568 | 广丰 569 | 广汉 570 | 广河 571 | 广灵 572 | 广南 573 | 广宁 574 | 广平 575 | 广饶 576 | 广水 577 | 广元 578 | 广州 579 | 广宗 580 | 贵德 581 | 贵定 582 | 桂东 583 | 贵港 584 | 桂林 585 | 贵南 586 | 桂平 587 | 贵溪 588 | 桂阳 589 | 贵阳 590 | 果洛 591 | 哈巴河 592 | 哈尔滨 593 | 哈密 594 | 海安 595 | 海北 596 | 海城 597 | 海淀 598 | 海东 599 | 海丰 600 | 海口 601 | 海拉尔 602 | 海力素 603 | 海林 604 | 海伦 605 | 海门 606 | 海南 607 | 海宁 608 | 海西 609 | 海兴 610 | 海盐 611 | 海晏 612 | 海阳 613 | 海原 614 | 韩城 615 | 邯郸 616 | 含山 617 | 汉堡 618 | 汉川 619 | 汉寿 620 | 汉阴 621 | 汉源 622 | 汉中 623 | 杭锦后旗 624 | 杭锦旗 625 | 杭州 626 | 浩尔吐 627 | 和布克赛尔 628 | 河池 629 | 合川 630 | 合肥 631 | 河间 632 | 合江 633 | 河津 634 | 和静 635 | 河口 636 | 和林格尔 637 | 和龙 638 | 河南 639 | 河内 640 | 和平 641 | 合浦 642 | 河曲 643 | 合山 644 | 合水 645 | 和顺 646 | 和硕 647 | 和田 648 | 和县 649 | 合阳 650 | 河源 651 | 菏泽 652 | 和政 653 | 合作 654 | 鹤壁 655 | 赫尔辛基-万塔 656 | 鹤峰 657 | 鹤岗 658 | 贺兰 659 | 鹤庆 660 | 鹤山 661 | 赫山区 662 | 赫章 663 | 贺州 664 | 黑河 665 | 黑山 666 | 黑水 667 | 衡东 668 | 横峰 669 | 衡南 670 | 横山 671 | 衡山 672 | 衡水 673 | 横县 674 | 衡阳 675 | 衡阳县 676 | 红安 677 | 洪洞 678 | 红河 679 | 洪湖 680 | 洪家 681 | 洪江 682 | 洪雅 683 | 红原 684 | 洪泽 685 | 侯马 686 | 呼和浩特 687 | 呼和浩特市郊区 688 | 呼兰 689 | 呼玛 690 | 呼图壁 691 | 呼中 692 | 胡尔勒 693 | 壶关 694 | 湖口 695 | 葫芦岛 696 | 湖州 697 | 虎林 698 | 户县 699 | 互助 700 | 花都 701 | 花莲 702 | 花溪 703 | 花垣 704 | 华安 705 | 华池 706 | 华宁 707 | 华坪 708 | 华容 709 | 华盛顿特区 710 | 华亭 711 | 滑县 712 | 华县 713 | 华阴 714 | 华蓥 715 | 桦川 716 | 化德 717 | 桦甸 718 | 化隆 719 | 桦南 720 | 化州 721 | 怀安 722 | 淮安 723 | 淮北 724 | 淮滨 725 | 怀化 726 | 怀集 727 | 怀来 728 | 淮南 729 | 怀宁 730 | 怀仁 731 | 怀柔 732 | 淮阳 733 | 淮阴县 734 | 怀远 735 | 环江 736 | 桓仁 737 | 桓台 738 | 环县 739 | 潢川 740 | 黄冈 741 | 黄骅 742 | 黄陵 743 | 黄龙 744 | 黄梅 745 | 黄南 746 | 黄平 747 | 黄陂 748 | 黄山 749 | 黄山区 750 | 黄山市 751 | 黄石 752 | 湟源 753 | 湟中 754 | 珲春 755 | 辉南 756 | 辉县 757 | 徽县 758 | 惠安 759 | 会昌 760 | 会东 761 | 惠东 762 | 惠来 763 | 会理 764 | 惠灵顿 765 | 惠民 766 | 会宁 767 | 惠农 768 | 惠水 769 | 会同 770 | 惠阳 771 | 会泽 772 | 惠州 773 | 浑源 774 | 火奴鲁鲁 775 | 霍城 776 | 霍尔果斯 777 | 获嘉 778 | 霍林郭勒 779 | 霍邱 780 | 霍山 781 | 霍州 782 | 鸡东 783 | 积石山 784 | 鸡西 785 | 绩溪 786 | 鸡泽 787 | 集安 788 | 吉安 789 | 吉兰太 790 | 吉林 791 | 吉隆 792 | 吉隆坡 793 | 即墨 794 | 吉木乃 795 | 吉木萨尔 796 | 集宁 797 | 吉首 798 | 吉水 799 | 集贤 800 | 吉县 801 | 济南 802 | 济宁 803 | 稷山 804 | 蓟县 805 | 济阳 806 | 济源 807 | 冀州 808 | 加查 809 | 嘉定 810 | 嘉禾 811 | 夹江 812 | 加拉加斯 813 | 嘉黎 814 | 佳木斯 815 | 嘉善 816 | 佳县 817 | 嘉祥 818 | 嘉兴 819 | 嘉义 820 | 嘉荫 821 | 嘉鱼 822 | 嘉峪关 823 | 郏县 824 | 尖草坪区 825 | 尖扎 826 | 简阳 827 | 建昌 828 | 剑川 829 | 建德 830 | 剑阁 831 | 剑河 832 | 建湖 833 | 监利 834 | 建宁 835 | 建瓯 836 | 建平县 837 | 建始 838 | 建水 839 | 建阳 840 | 江安 841 | 江城 842 | 江川 843 | 江达 844 | 江都 845 | 江华 846 | 江津 847 | 江口 848 | 将乐 849 | 江陵 850 | 江门 851 | 江宁 852 | 江浦 853 | 江山 854 | 江夏 855 | 姜堰 856 | 江阴 857 | 江永 858 | 江油 859 | 江孜 860 | 绛县 861 | 交城 862 | 蛟河 863 | 交口 864 | 蕉岭 865 | 胶南 866 | 胶州 867 | 焦作 868 | 揭东 869 | 揭西 870 | 揭阳 871 | 界首 872 | 介休 873 | 金昌 874 | 金川 875 | 金湖 876 | 金华 877 | 津南 878 | 金平 879 | 金沙 880 | 金山 881 | 金塔 882 | 金坛 883 | 金堂 884 | 金溪 885 | 金乡 886 | 金秀 887 | 金阳 888 | 金寨 889 | 金州 890 | 锦屏 891 | 锦州 892 | 晋城 893 | 晋江 894 | 晋宁 895 | 进贤 896 | 缙云 897 | 晋中 898 | 晋洲 899 | 泾川 900 | 旌德 901 | 京都 902 | 精河 903 | 荆门 904 | 京山 905 | 泾县 906 | 泾阳 907 | 泾源 908 | 荆州 909 | 景德镇 910 | 景东 911 | 井冈山 912 | 景谷 913 | 景洪 914 | 景宁 915 | 景泰 916 | 景县 917 | 井陉 918 | 井研 919 | 靖安 920 | 靖边 921 | 静海 922 | 靖江 923 | 静乐 924 | 静宁 925 | 靖西 926 | 靖宇 927 | 靖远 928 | 靖州 929 | 九华山 930 | 九江 931 | 九龙 932 | 酒泉 933 | 九台 934 | 九寨沟 935 | 久治 936 | 莒南 937 | 莒县 938 | 巨鹿 939 | 句容 940 | 巨野 941 | 鄄城 942 | 浚县 943 | 喀喇沁旗 944 | 喀什 945 | 喀左 946 | 卡尔加里 947 | 卡拉奇 948 | 开封 949 | 开化 950 | 开江 951 | 开鲁 952 | 开罗 953 | 开平 954 | 开普敦 955 | 开县 956 | 开阳 957 | 开原 958 | 开远 959 | 凯里 960 | 康保 961 | 康定 962 | 康乐 963 | 康马 964 | 康平 965 | 康县 966 | 科尔沁右翼中旗 967 | 科尔沁左翼后旗 968 | 科尔沁左翼中旗 969 | 科伦坡 970 | 柯坪 971 | 岢岚 972 | 克东 973 | 克拉玛依 974 | 克莱斯特彻奇 975 | 克山 976 | 克什克腾旗 977 | 垦利 978 | 库车 979 | 库尔勒 980 | 库伦旗 981 | 宽城 982 | 宽甸 983 | 魁北克 984 | 奎屯 985 | 昆明 986 | 昆山 987 | 拉各斯 988 | 拉萨 989 | 拉斯维加斯 990 | 拉孜 991 | 来安 992 | 来宾 993 | 来凤 994 | 涞水 995 | 莱芜 996 | 莱西 997 | 莱阳 998 | 涞源 999 | 莱州 1000 | 澜沧 1001 | 岚皋 1002 | 兰考 1003 | 兰坪 1004 | 蓝山 1005 | 蓝田 1006 | 兰西 1007 | 兰溪 1008 | 岚县 1009 | 兰州 1010 | 廊坊 1011 | 郎溪 1012 | 阆中 1013 | 朗县 1014 | 浪卡子 1015 | 崂山 1016 | 老河口 1017 | 乐安 1018 | 乐昌 1019 | 乐东 1020 | 乐都 1021 | 乐陵 1022 | 乐平 1023 | 乐山 1024 | 乐亭 1025 | 乐业 1026 | 乐至 1027 | 雷波 1028 | 雷山 1029 | 雷州 1030 | 耒阳 1031 | 类乌齐 1032 | 冷湖 1033 | 冷水江 1034 | 冷水滩 1035 | 黎城 1036 | 黎川 1037 | 黎平 1038 | 离石 1039 | 梨树 1040 | 丽水 1041 | 醴陵 1042 | 礼泉 1043 | 里斯本 1044 | 理塘 1045 | 蠡县 1046 | 礼县 1047 | 澧县 1048 | 理县 1049 | 里约热内卢 1050 | 荔波 1051 | 利川 1052 | 丽江 1053 | 利津 1054 | 利马 1055 | 荔浦 1056 | 溧水 1057 | 利辛 1058 | 利雅得 1059 | 溧阳 1060 | 连城 1061 | 莲花 1062 | 连江 1063 | 廉江 1064 | 连南 1065 | 连平 1066 | 连山 1067 | 涟水 1068 | 涟源 1069 | 连云港 1070 | 连州 1071 | 凉城 1072 | 梁河 1073 | 梁平 1074 | 梁山 1075 | 凉山 1076 | 两当 1077 | 聊城 1078 | 辽阳 1079 | 辽阳县 1080 | 辽源 1081 | 辽中 1082 | 临安 1083 | 临沧 1084 | 临城 1085 | 林甸 1086 | 临汾 1087 | 临高 1088 | 临桂 1089 | 临海 1090 | 临河 1091 | 临江 1092 | 林口 1093 | 临澧 1094 | 临清 1095 | 临朐 1096 | 临泉 1097 | 临沭 1098 | 邻水 1099 | 临潭 1100 | 临洮 1101 | 临潼 1102 | 临武 1103 | 林西 1104 | 临西 1105 | 临夏 1106 | 临县 1107 | 临湘 1108 | 临猗 1109 | 临沂 1110 | 临邑 1111 | 临颍 1112 | 麟游 1113 | 临泽 1114 | 临漳 1115 | 林芝 1116 | 林州 1117 | 林周 1118 | 临淄 1119 | 灵宝 1120 | 灵璧 1121 | 陵川 1122 | 灵川 1123 | 凌海 1124 | 灵邱 1125 | 灵山 1126 | 灵石 1127 | 灵寿 1128 | 陵水 1129 | 灵台 1130 | 灵武 1131 | 陵县 1132 | 凌源 1133 | 凌云 1134 | 留坝 1135 | 浏阳 1136 | 柳城 1137 | 柳河 1138 | 柳江 1139 | 柳林 1140 | 柳州 1141 | 六合 1142 | 六库 1143 | 六盘水 1144 | 六枝 1145 | 隆安 1146 | 隆昌 1147 | 龙川 1148 | 隆德 1149 | 龙海 1150 | 隆化 1151 | 隆回 1152 | 龙江 1153 | 龙井 1154 | 龙口 1155 | 龙里 1156 | 隆林 1157 | 龙陵 1158 | 龙门 1159 | 龙南 1160 | 龙泉 1161 | 龙泉驿 1162 | 龙山 1163 | 龙胜 1164 | 龙岩 1165 | 隆尧 1166 | 龙游 1167 | 龙州 1168 | 隆子 1169 | 陇川 1170 | 陇西 1171 | 陇县 1172 | 娄底 1173 | 娄烦 1174 | 泸定 1175 | 炉霍 1176 | 庐江 1177 | 卢龙 1178 | 庐山 1179 | 芦山 1180 | 卢氏 1181 | 泸溪 1182 | 芦溪 1183 | 泸西 1184 | 泸县 1185 | 泸州 1186 | 鲁甸 1187 | 鲁山 1188 | 六安 1189 | 潞城 1190 | 陆川 1191 | 陆丰 1192 | 禄丰 1193 | 陆河 1194 | 陆良 1195 | 碌曲 1196 | 鹿泉 1197 | 禄劝 1198 | 鹿邑 1199 | 鹿寨 1200 | 栾城 1201 | 栾川 1202 | 滦南 1203 | 滦平 1204 | 滦县 1205 | 伦敦 1206 | 轮台 1207 | 萝北 1208 | 罗城 1209 | 罗甸 1210 | 罗定 1211 | 罗江 1212 | 罗马 1213 | 罗平 1214 | 罗山 1215 | 罗田 1216 | 罗源 1217 | 洛川 1218 | 洛隆 1219 | 洛南 1220 | 洛宁 1221 | 洛浦 1222 | 洛杉矶 1223 | 洛阳 1224 | 洛扎 1225 | 吕梁 1226 | 旅顺 1227 | 绿春 1228 | 略阳 1229 | 麻城 1230 | 麻江 1231 | 麻栗坡 1232 | 麻阳 1233 | 马鞍山 1234 | 马边 1235 | 马德里 1236 | 玛多 1237 | 马尔康 1238 | 马关 1239 | 马龙 1240 | 玛纳斯 1241 | 马尼拉 1242 | 马坡岭 1243 | 玛沁 1244 | 玛曲 1245 | 马赛 1246 | 马山 1247 | 迈阿密 1248 | 麦盖提 1249 | 麦积 1250 | 满城 1251 | 满都拉 1252 | 满洲里 1253 | 曼彻斯特 1254 | 曼谷 1255 | 芒康 1256 | 茫崖 1257 | 茂名 1258 | 茂县 1259 | 梅河口 1260 | 眉山 1261 | 湄潭 1262 | 眉县 1263 | 梅县 1264 | 梅州 1265 | 美姑 1266 | 门头沟 1267 | 门源 1268 | 蒙城 1269 | 蒙山 1270 | 蒙特利尔 1271 | 蒙阴 1272 | 蒙自 1273 | 勐海 1274 | 猛腊 1275 | 孟村 1276 | 孟津 1277 | 孟连 1278 | 孟买 1279 | 孟州 1280 | 弥渡 1281 | 弥勒 1282 | 米兰 1283 | 米林 1284 | 米泉 1285 | 米易 1286 | 米脂 1287 | 汨罗 1288 | 密山 1289 | 密云 1290 | 绵阳 1291 | 绵竹 1292 | 渑池 1293 | 冕宁 1294 | 勉县 1295 | 苗栗 1296 | 民丰 1297 | 民和 1298 | 民勤 1299 | 民权 1300 | 岷县 1301 | 民乐 1302 | 闽侯 1303 | 闽清 1304 | 闵行 1305 | 明光 1306 | 名山 1307 | 明水 1308 | 明溪 1309 | 墨尔本 1310 | 漠河 1311 | 墨江 1312 | 莫力达瓦旗 1313 | 莫斯科 1314 | 莫索湾 1315 | 墨脱 1316 | 墨西哥城 1317 | 墨玉 1318 | 墨竹工卡 1319 | 牟定 1320 | 牡丹江 1321 | 沐川 1322 | 木兰 1323 | 木垒 1324 | 穆棱 1325 | 木里 1326 | 牟平 1327 | 那坡 1328 | 那曲 1329 | 那仁宝力格 1330 | 纳溪 1331 | 纳雍 1332 | 奈曼旗 1333 | 南安 1334 | 南澳 1335 | 南部 1336 | 南昌 1337 | 南昌县 1338 | 南城 1339 | 南充 1340 | 南川 1341 | 南丹 1342 | 南丰 1343 | 南宫 1344 | 南海 1345 | 南和 1346 | 南华 1347 | 南汇 1348 | 南涧 1349 | 南江 1350 | 南京 1351 | 南靖 1352 | 南康 1353 | 南乐 1354 | 南陵 1355 | 南木林 1356 | 南宁 1357 | 南皮 1358 | 南平 1359 | 南沙 1360 | 南通 1361 | 南投 1362 | 南溪 1363 | 南县 1364 | 南雄 1365 | 南阳 1366 | 南岳 1367 | 南漳 1368 | 南召 1369 | 南郑 1370 | 囊谦 1371 | 讷河 1372 | 内黄 1373 | 内江 1374 | 内罗毕 1375 | 内邱 1376 | 内乡 1377 | 嫩江 1378 | 尼勒克 1379 | 尼玛 1380 | 尼木 1381 | 聂拉木 1382 | 聂荣 1383 | 宁安 1384 | 宁波 1385 | 宁城 1386 | 宁德 1387 | 宁都 1388 | 宁洱 1389 | 宁冈 1390 | 宁国 1391 | 宁海 1392 | 宁河 1393 | 宁化 1394 | 宁津 1395 | 宁晋 1396 | 宁蒗 1397 | 宁陵 1398 | 宁明 1399 | 宁南 1400 | 宁强 1401 | 宁陕 1402 | 宁武 1403 | 宁县 1404 | 宁乡 1405 | 宁阳 1406 | 宁远 1407 | 纽约 1408 | 农安 1409 | 怒江 1410 | 帕里 1411 | 番禺 1412 | 攀枝花 1413 | 磐安 1414 | 盘锦 1415 | 盘山 1416 | 磐石 1417 | 盘县 1418 | 炮台 1419 | 沛县 1420 | 蓬安 1421 | 蓬莱 1422 | 彭山 1423 | 彭水 1424 | 蓬溪 1425 | 彭阳 1426 | 彭泽 1427 | 彭州 1428 | 邳州 1429 | 皮山 1430 | 郫县 1431 | 偏关 1432 | 平坝 1433 | 屏边 1434 | 平昌 1435 | 平顶山 1436 | 平定 1437 | 屏东 1438 | 平度 1439 | 平谷 1440 | 平果 1441 | 平和 1442 | 平湖 1443 | 平江 1444 | 平乐 1445 | 平利 1446 | 平凉 1447 | 平鲁 1448 | 平陆 1449 | 平罗 1450 | 屏南 1451 | 平南 1452 | 平泉 1453 | 平壤 1454 | 平山 1455 | 屏山 1456 | 平顺 1457 | 平潭 1458 | 平塘 1459 | 平武 1460 | 平乡 1461 | 萍乡 1462 | 凭祥 1463 | 平阳 1464 | 平遥 1465 | 平邑 1466 | 平阴 1467 | 平舆 1468 | 平原 1469 | 平远 1470 | 泊头 1471 | 鄱阳 1472 | 珀斯 1473 | 蒲城 1474 | 蒲江 1475 | 莆田 1476 | 蒲县 1477 | 濮阳 1478 | 普安 1479 | 浦北 1480 | 浦城 1481 | 普定 1482 | 浦东 1483 | 普洱 1484 | 普格 1485 | 浦江 1486 | 普兰 1487 | 普兰店 1488 | 普宁 1489 | 普陀 1490 | 七台河 1491 | 栖霞 1492 | 蕲春 1493 | 祁东 1494 | 齐河 1495 | 綦江 1496 | 祁连 1497 | 祁门 1498 | 齐齐哈尔 1499 | 岐山 1500 | 奇台 1501 | 淇县 1502 | 祁县 1503 | 祁阳 1504 | 启东 1505 | 杞县 1506 | 迁安 1507 | 迁西 1508 | 千阳 1509 | 乾安 1510 | 前郭 1511 | 潜江 1512 | 黔江 1513 | 潜山 1514 | 犍为 1515 | 黔西 1516 | 乾县 1517 | 巧家 1518 | 且末 1519 | 钦州 1520 | 秦安 1521 | 秦皇岛 1522 | 沁水 1523 | 沁县 1524 | 沁阳 1525 | 沁源 1526 | 青川 1527 | 青岛 1528 | 清丰 1529 | 青冈 1530 | 清河 1531 | 青河 1532 | 清涧 1533 | 清流 1534 | 青龙 1535 | 青龙山 1536 | 青浦 1537 | 青神 1538 | 清水 1539 | 清水河 1540 | 青田 1541 | 青铜峡 1542 | 青县 1543 | 清新 1544 | 清徐 1545 | 青阳 1546 | 清原 1547 | 清远 1548 | 清苑 1549 | 清镇 1550 | 青州 1551 | 晴隆 1552 | 庆安 1553 | 庆城 1554 | 庆阳 1555 | 庆元 1556 | 庆云 1557 | 琼海 1558 | 琼结 1559 | 邛崃 1560 | 琼中 1561 | 丘北 1562 | 邱县 1563 | 曲阜 1564 | 曲靖 1565 | 曲麻莱 1566 | 曲松 1567 | 曲沃 1568 | 曲阳 1569 | 曲周 1570 | 渠县 1571 | 衢州 1572 | 曲水 1573 | 全椒 1574 | 全南 1575 | 泉州 1576 | 全州 1577 | 确山 1578 | 壤塘 1579 | 饶河 1580 | 饶平 1581 | 饶阳 1582 | 仁布 1583 | 仁和 1584 | 仁化 1585 | 仁怀 1586 | 任丘 1587 | 仁寿 1588 | 任县 1589 | 日喀则 1590 | 日内瓦 1591 | 日土 1592 | 日照 1593 | 融安 1594 | 荣昌 1595 | 容城 1596 | 荣成 1597 | 榕江 1598 | 荣经 1599 | 融水 1600 | 荣县 1601 | 容县 1602 | 如东 1603 | 如皋 1604 | 汝城 1605 | 汝南 1606 | 乳山 1607 | 汝阳 1608 | 乳源 1609 | 汝州 1610 | 瑞安 1611 | 瑞昌 1612 | 芮城 1613 | 瑞金 1614 | 瑞丽 1615 | 若尔盖 1616 | 若羌 1617 | 萨嘎 1618 | 萨迦 1619 | 三都 1620 | 三河 1621 | 三江 1622 | 三门 1623 | 三门峡 1624 | 三明 1625 | 三水 1626 | 三穗 1627 | 三台 1628 | 三峡 1629 | 三亚 1630 | 三原 1631 | 桑日 1632 | 桑植 1633 | 色达 1634 | 莎车 1635 | 沙河 1636 | 沙湾 1637 | 沙县 1638 | 沙雅 1639 | 沙洋 1640 | 山丹 1641 | 山南 1642 | 山阳 1643 | 山阴 1644 | 陕县 1645 | 鄯善 1646 | 汕头 1647 | 汕尾 1648 | 商城 1649 | 商都 1650 | 商河 1651 | 商洛 1652 | 商南 1653 | 商丘 1654 | 商水 1655 | 上蔡 1656 | 上高 1657 | 上海 1658 | 上杭 1659 | 上栗 1660 | 上林 1661 | 上饶 1662 | 上饶县 1663 | 上思 1664 | 尚义 1665 | 上犹 1666 | 上虞 1667 | 尚志 1668 | 韶关 1669 | 韶山 1670 | 邵东 1671 | 邵武 1672 | 绍兴 1673 | 邵阳 1674 | 邵阳县 1675 | 舍伯吐 1676 | 射洪 1677 | 社旗 1678 | 涉县 1679 | 歙县 1680 | 射阳 1681 | 莘县 1682 | 深泽 1683 | 申扎 1684 | 深圳 1685 | 深州 1686 | 神池 1687 | 什邡 1688 | 神木 1689 | 神农架 1690 | 沈丘 1691 | 沈阳 1692 | 圣保罗 1693 | 圣地亚哥 1694 | 圣弗朗西斯科 1695 | 嵊泗 1696 | 圣约翰 1697 | 嵊州 1698 | 施秉 1699 | 施甸 1700 | 狮泉河 1701 | 师宗 1702 | 石城 1703 | 石岛 1704 | 石河子 1705 | 石家庄 1706 | 石景山 1707 | 石林 1708 | 石楼 1709 | 石门 1710 | 石棉 1711 | 石屏 1712 | 石阡 1713 | 石渠 1714 | 石泉 1715 | 石狮 1716 | 石首 1717 | 石台 1718 | 十堰 1719 | 石柱 1720 | 石嘴山 1721 | 始兴 1722 | 首尔 1723 | 寿光 1724 | 寿宁 1725 | 寿县 1726 | 寿阳 1727 | 舒城 1728 | 疏附 1729 | 舒兰 1730 | 疏勒 1731 | 沭阳 1732 | 双柏 1733 | 双城 1734 | 双峰 1735 | 双江 1736 | 双辽 1737 | 双流 1738 | 双牌 1739 | 双鸭山 1740 | 双阳 1741 | 水城 1742 | 水富 1743 | 顺昌 1744 | 顺德 1745 | 顺平 1746 | 顺义 1747 | 朔州 1748 | 斯德哥尔摩 1749 | 斯里巴加湾 1750 | 斯利那加 1751 | 思南 1752 | 泗洪 1753 | 四会 1754 | 四平 1755 | 泗水 1756 | 泗县 1757 | 泗阳 1758 | 四子王旗 1759 | 松江 1760 | 嵩明 1761 | 松潘 1762 | 松桃 1763 | 松溪 1764 | 嵩县 1765 | 松阳 1766 | 松原 1767 | 松滋 1768 | 苏黎世 1769 | 苏尼特右旗 1770 | 苏尼特左旗 1771 | 苏州 1772 | 肃北 1773 | 肃南 1774 | 肃宁 1775 | 宿迁 1776 | 宿松 1777 | 宿州 1778 | 睢宁 1779 | 濉溪 1780 | 睢县 1781 | 绥滨 1782 | 绥德 1783 | 绥芬河 1784 | 绥化 1785 | 绥江 1786 | 绥棱 1787 | 绥宁 1788 | 绥阳 1789 | 绥中 1790 | 随州 1791 | 遂昌 1792 | 遂川 1793 | 遂宁 1794 | 遂平 1795 | 遂溪 1796 | 孙吴 1797 | 索伦 1798 | 索县 1799 | 塔城 1800 | 塔河 1801 | 塔什库尔干 1802 | 塔什干 1803 | 塔中 1804 | 漯河 1805 | 台州 1806 | 台安 1807 | 台北 1808 | 台东 1809 | 台儿庄 1810 | 台江 1811 | 台南 1812 | 台前 1813 | 台山 1814 | 台中 1815 | 泰安 1816 | 太白 1817 | 太仓 1818 | 太谷 1819 | 太和 1820 | 泰和 1821 | 太湖 1822 | 太华山 1823 | 太康 1824 | 泰来 1825 | 泰宁 1826 | 太仆寺旗 1827 | 泰顺 1828 | 泰兴 1829 | 太原 1830 | 太原古交区 1831 | 泰州 1832 | 郯城 1833 | 汤阴 1834 | 汤原 1835 | 塘沽 1836 | 唐海 1837 | 唐河 1838 | 唐山 1839 | 唐县 1840 | 桃江 1841 | 陶乐 1842 | 洮南 1843 | 桃源 1844 | 桃园 1845 | 特克斯 1846 | 腾冲 1847 | 藤县 1848 | 滕州 1849 | 天池 1850 | 天等 1851 | 天峨 1852 | 天津 1853 | 天峻 1854 | 天门 1855 | 天全 1856 | 天水 1857 | 天台 1858 | 天长 1859 | 天镇 1860 | 天祝 1861 | 天柱 1862 | 田东 1863 | 田林 1864 | 田阳 1865 | 铁干里克 1866 | 铁力 1867 | 铁岭 1868 | 通城 1869 | 通道 1870 | 通海 1871 | 通河 1872 | 通化 1873 | 通化县 1874 | 通江 1875 | 通辽 1876 | 通山 1877 | 通渭 1878 | 通许 1879 | 通榆 1880 | 通州 1881 | 同安 1882 | 桐柏 1883 | 桐城 1884 | 铜川 1885 | 同德 1886 | 铜鼓 1887 | 潼关 1888 | 同江 1889 | 铜梁 1890 | 铜陵 1891 | 桐庐 1892 | 潼南 1893 | 铜仁 1894 | 铜山 1895 | 桐乡 1896 | 同心 1897 | 桐梓 1898 | 头道湖 1899 | 突尼斯 1900 | 突泉 1901 | 图里河 1902 | 图们 1903 | 吐鲁番 1904 | 土默特右旗 1905 | 土默特左旗 1906 | 团风 1907 | 屯昌 1908 | 屯留 1909 | 屯溪 1910 | 托克托 1911 | 托克逊 1912 | 托里 1913 | 瓦房店 1914 | 万安 1915 | 万年 1916 | 万宁 1917 | 万全 1918 | 万荣 1919 | 万山 1920 | 万盛 1921 | 万象 1922 | 万源 1923 | 万载 1924 | 万州 1925 | 汪清 1926 | 旺苍 1927 | 望城 1928 | 望都 1929 | 望江 1930 | 望奎 1931 | 望谟 1932 | 威海 1933 | 威宁 1934 | 微山 1935 | 巍山 1936 | 威县 1937 | 威信 1938 | 威远 1939 | 围场 1940 | 潍坊 1941 | 维西 1942 | 维也纳 1943 | 涠洲岛 1944 | 卫辉 1945 | 渭南 1946 | 尉氏 1947 | 魏县 1948 | 渭源 1949 | 温哥华 1950 | 温江 1951 | 温岭 1952 | 温泉 1953 | 温宿 1954 | 温县 1955 | 温州 1956 | 文安 1957 | 文昌 1958 | 文成 1959 | 文登 1960 | 文山 1961 | 文水 1962 | 闻喜 1963 | 文县 1964 | 汶川 1965 | 汶上 1966 | 翁牛特旗 1967 | 翁源 1968 | 瓮安 1969 | 涡阳 1970 | 渥太华 1971 | 乌当 1972 | 乌海 1973 | 乌兰 1974 | 乌兰巴托 1975 | 乌兰浩特 1976 | 乌鲁木齐 1977 | 乌鲁木齐牧试站 1978 | 乌恰 1979 | 巫山 1980 | 乌什 1981 | 乌审旗 1982 | 乌审召 1983 | 乌苏 1984 | 巫溪 1985 | 乌伊岭 1986 | 吴堡 1987 | 吴川 1988 | 无棣 1989 | 芜湖 1990 | 芜湖县 1991 | 无极 1992 | 吴江 1993 | 吴旗 1994 | 吴桥 1995 | 无为 1996 | 无锡 1997 | 吴中 1998 | 吴忠 1999 | 梧州 2000 | 武安 2001 | 五常 2002 | 武城 2003 | 武川 2004 | 五大连池 2005 | 武定 2006 | 武都 2007 | 五峰 2008 | 舞钢 2009 | 武冈 2010 | 武功 2011 | 武汉 2012 | 五河 2013 | 五华 2014 | 五莲 2015 | 武隆 2016 | 武鸣 2017 | 武宁 2018 | 武平 2019 | 武强 2020 | 武清 2021 | 武山 2022 | 武胜 2023 | 五台山 2024 | 五台县 2025 | 五台县豆村 2026 | 武威 2027 | 武乡 2028 | 武宣 2029 | 武穴 2030 | 舞阳 2031 | 武夷山 2032 | 武邑 2033 | 武义 2034 | 五营 2035 | 五原 2036 | 五寨 2037 | 五指山 2038 | 武陟 2039 | 务川 2040 | 乌拉盖 2041 | 乌拉特后旗 2042 | 乌拉特前旗 2043 | 乌拉特中旗 2044 | 婺源 2045 | 西安 2046 | 西昌 2047 | 西充 2048 | 西畴 2049 | 淅川 2050 | 西丰 2051 | 西峰 2052 | 息烽 2053 | 西和 2054 | 西华 2055 | 西吉 2056 | 希拉穆仁 2057 | 西林 2058 | 锡林高勒 2059 | 锡林浩特 2060 | 西盟 2061 | 悉尼 2062 | 西宁 2063 | 西平 2064 | 西青 2065 | 西沙 2066 | 浠水 2067 | 西乌珠穆沁旗 2068 | 西峡 2069 | 息县 2070 | 西乡 2071 | 西雅图 2072 | 昔阳 2073 | 习水 2074 | 隰县 2075 | 喜德 2076 | 峡江 2077 | 霞浦 2078 | 夏河 2079 | 夏津 2080 | 厦门 2081 | 夏县 2082 | 夏邑 2083 | 仙居 2084 | 仙桃 2085 | 仙游 2086 | 咸丰 2087 | 咸宁 2088 | 咸阳 2089 | 献县 2090 | 襄城 2091 | 乡城 2092 | 襄汾 2093 | 香港 2094 | 香河 2095 | 镶黄旗 2096 | 乡宁 2097 | 湘潭 2098 | 湘乡 2099 | 襄阳 2100 | 湘阴 2101 | 襄垣 2102 | 祥云 2103 | 响水 2104 | 项城 2105 | 象山 2106 | 象州 2107 | 萧山 2108 | 萧县 2109 | 小店区 2110 | 小二沟 2111 | 小金 2112 | 小渠子 2113 | 孝昌 2114 | 孝感 2115 | 孝义 2116 | 谢通门 2117 | 新安 2118 | 新巴尔虎右旗 2119 | 新巴尔虎左旗 2120 | 新宾 2121 | 新蔡 2122 | 新昌 2123 | 忻城 2124 | 新德里 2125 | 新都 2126 | 新丰 2127 | 新干 2128 | 新河 2129 | 新和 2130 | 新化 2131 | 新晃 2132 | 新会 2133 | 辛集 2134 | 新加坡 2135 | 新建 2136 | 新绛 2137 | 新界 2138 | 新津 2139 | 新乐 2140 | 新林 2141 | 新龙 2142 | 新密 2143 | 新民 2144 | 新宁 2145 | 新平 2146 | 新邵 2147 | 新泰 2148 | 新田 2149 | 新县 2150 | 新乡 2151 | 新兴 2152 | 新野 2153 | 新沂 2154 | 新余 2155 | 新源 2156 | 新郑 2157 | 忻州 2158 | 新洲 2159 | 新竹 2160 | 信丰 2161 | 信阳 2162 | 信宜 2163 | 兴安 2164 | 兴城 2165 | 兴国 2166 | 兴化 2167 | 兴隆 2168 | 兴平 2169 | 兴文 2170 | 兴业 2171 | 兴义 2172 | 星子 2173 | 邢台 2174 | 行唐 2175 | 荥阳 2176 | 兴海 2177 | 兴和 2178 | 兴宁 2179 | 兴仁 2180 | 兴山 2181 | 兴县 2182 | 雄县 2183 | 休宁 2184 | 修水 2185 | 休斯敦 2186 | 修文 2187 | 修武 2188 | 秀山 2189 | 岫岩 2190 | 秀屿港 2191 | 盱眙 2192 | 徐家汇 2193 | 徐水 2194 | 徐闻 2195 | 徐州 2196 | 许昌 2197 | 溆浦 2198 | 叙永 2199 | 宣城 2200 | 宣恩 2201 | 宣汉 2202 | 宣化 2203 | 宣威 2204 | 薛城 2205 | 寻甸 2206 | 循化 2207 | 寻乌 2208 | 旬阳 2209 | 旬邑 2210 | 逊克 2211 | 牙克石 2212 | 雅安 2213 | 雅典 2214 | 雅加达 2215 | 雅江 2216 | 亚特兰大 2217 | 鄢陵 2218 | 焉耆 2219 | 烟台 2220 | 延安 2221 | 盐边 2222 | 延长 2223 | 盐城 2224 | 盐池 2225 | 延川 2226 | 沿河 2227 | 延吉 2228 | 延津 2229 | 盐津 2230 | 炎陵 2231 | 延庆 2232 | 盐山 2233 | 铅山 2234 | 延寿 2235 | 盐亭 2236 | 盐源 2237 | 偃师 2238 | 兖州 2239 | 砚山 2240 | 阳城 2241 | 阳春 2242 | 阳东 2243 | 阳高 2244 | 阳谷 2245 | 阳江 2246 | 阳曲 2247 | 阳泉 2248 | 阳山 2249 | 阳朔 2250 | 阳西 2251 | 洋县 2252 | 阳新 2253 | 阳信 2254 | 阳原 2255 | 扬中 2256 | 扬州 2257 | 仰光 2258 | 漾鼻 2259 | 姚安 2260 | 耀县 2261 | 叶城 2262 | 叶县 2263 | 依安 2264 | 伊川 2265 | 伊春 2266 | 伊金霍洛旗 2267 | 伊克乌素 2268 | 依兰 2269 | 伊宁 2270 | 伊宁县 2271 | 伊斯兰堡 2272 | 伊斯坦布尔 2273 | 伊通 2274 | 伊吾 2275 | 黟县 2276 | 宜宾 2277 | 宜宾县 2278 | 宜昌 2279 | 宜城 2280 | 宜川 2281 | 宜春 2282 | 宜都 2283 | 宜丰 2284 | 宜黄 2285 | 宜君 2286 | 宜兰 2287 | 宜良 2288 | 彝良 2289 | 仪陇 2290 | 沂南 2291 | 沂水 2292 | 宜兴 2293 | 宜阳 2294 | 沂源 2295 | 宜章 2296 | 仪征 2297 | 宜州 2298 | 峄城 2299 | 翼城 2300 | 易门 2301 | 义乌 2302 | 义县 2303 | 易县 2304 | 益阳 2305 | 弋阳 2306 | 银川 2307 | 鄞州 2308 | 印江 2309 | 应城 2310 | 英德 2311 | 英吉沙 2312 | 英山 2313 | 鹰潭 2314 | 应县 2315 | 盈江 2316 | 营口 2317 | 营山 2318 | 颍上 2319 | 邕宁 2320 | 永安 2321 | 永昌 2322 | 永城 2323 | 永川 2324 | 永春 2325 | 永德 2326 | 永登 2327 | 永定 2328 | 永丰 2329 | 永福 2330 | 永和 2331 | 永吉 2332 | 永济 2333 | 永嘉 2334 | 永靖 2335 | 永康 2336 | 永年 2337 | 永宁 2338 | 永平 2339 | 永清 2340 | 永仁 2341 | 永善 2342 | 永胜 2343 | 永寿 2344 | 永顺 2345 | 永泰 2346 | 永新 2347 | 永兴 2348 | 永修 2349 | 永州 2350 | 攸县 2351 | 尤溪 2352 | 酉阳 2353 | 友谊 2354 | 右玉 2355 | 渝北 2356 | 虞城 2357 | 榆次 2358 | 于都 2359 | 余干 2360 | 余江 2361 | 榆林 2362 | 余庆 2363 | 榆社 2364 | 榆树 2365 | 鱼台 2366 | 于田 2367 | 盂县 2368 | 余姚 2369 | 榆中 2370 | 禹城 2371 | 禹州 2372 | 玉环 2373 | 尉犁 2374 | 玉林 2375 | 玉门镇 2376 | 裕民 2377 | 郁南 2378 | 玉屏 2379 | 玉山 2380 | 玉树 2381 | 玉田 2382 | 玉溪 2383 | 蔚县 2384 | 沅江 2385 | 元江 2386 | 沅陵 2387 | 元谋 2388 | 原平 2389 | 垣曲 2390 | 元氏 2391 | 原阳 2392 | 元阳 2393 | 远安 2394 | 约翰尼斯堡 2395 | 岳池 2396 | 岳普湖 2397 | 乐清 2398 | 岳西 2399 | 越西 2400 | 岳阳 2401 | 云安 2402 | 云浮 2403 | 云和 2404 | 筠连 2405 | 云林 2406 | 云龙 2407 | 云梦 2408 | 郧西 2409 | 郧县 2410 | 云县 2411 | 云霄 2412 | 云阳 2413 | 郓城 2414 | 运城 2415 | 杂多 2416 | 赞皇 2417 | 枣强 2418 | 枣阳 2419 | 枣庄 2420 | 泽库 2421 | 泽普 2422 | 泽州 2423 | 增城 2424 | 扎赉特旗 2425 | 扎兰屯 2426 | 扎鲁特旗 2427 | 札达 2428 | 札幌 2429 | 札囊 2430 | 柞水 2431 | 沾化 2432 | 沾益 2433 | 湛江 2434 | 张北 2435 | 章党 2436 | 彰化 2437 | 张家川 2438 | 张家港 2439 | 张家界 2440 | 张家口 2441 | 漳平 2442 | 漳浦 2443 | 章丘 2444 | 樟树 2445 | 彰武 2446 | 漳县 2447 | 张掖 2448 | 漳州 2449 | 长白 2450 | 长岛 2451 | 长丰 2452 | 长葛 2453 | 长海 2454 | 长岭 2455 | 长宁 2456 | 长清 2457 | 长顺 2458 | 长泰 2459 | 长武 2460 | 长阳 2461 | 长垣 2462 | 长治 2463 | 长子 2464 | 昭觉 2465 | 昭平 2466 | 昭苏 2467 | 昭通 2468 | 朝阳 2469 | 招远 2470 | 诏安 2471 | 肇东 2472 | 肇庆 2473 | 赵县 2474 | 肇源 2475 | 肇州 2476 | 柘城 2477 | 柘荣 2478 | 贞丰 2479 | 镇安 2480 | 镇巴 2481 | 镇江 2482 | 镇康 2483 | 镇赉 2484 | 镇宁 2485 | 镇平 2486 | 镇坪 2487 | 镇雄 2488 | 镇原 2489 | 镇沅 2490 | 镇远 2491 | 正安 2492 | 正定 2493 | 政和 2494 | 正兰旗 2495 | 正宁 2496 | 正镶白旗 2497 | 正阳 2498 | 郑州 2499 | 芝加哥 2500 | 枝江 2501 | 织金 2502 | 芷江 2503 | 志丹 2504 | 治多 2505 | 中甸 2506 | 中方 2507 | 中江 2508 | 中牟 2509 | 中宁 2510 | 中泉子 2511 | 中山 2512 | 钟山 2513 | 中卫 2514 | 忠县 2515 | 钟祥 2516 | 中阳 2517 | 仲巴 2518 | 周村 2519 | 周口 2520 | 周宁 2521 | 舟曲 2522 | 舟山 2523 | 周至 2524 | 诸城 2525 | 珠海 2526 | 诸暨 2527 | 朱日和 2528 | 株洲 2529 | 竹山 2530 | 竹溪 2531 | 驻马店 2532 | 庄河 2533 | 庄浪 2534 | 准格尔旗 2535 | 涿鹿 2536 | 涿州 2537 | 卓尼 2538 | 卓资 2539 | 淄博 2540 | 淄川 2541 | 资溪 2542 | 资兴 2543 | 资阳 2544 | 资源 2545 | 资中 2546 | 秭归 2547 | 紫金 2548 | 梓潼 2549 | 紫阳 2550 | 紫云 2551 | 自贡 2552 | 子长 2553 | 子洲 2554 | 枞阳 2555 | 邹城 2556 | 邹平 2557 | 遵化 2558 | 遵义 2559 | 遵义县 2560 | 左贡 2561 | 左权 2562 | 左云 2563 | -------------------------------------------------------------------------------- /data/dictionary_path/time.txt: -------------------------------------------------------------------------------- 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 | 周1 55 | 周2 56 | 周3 57 | 周4 58 | 周5 59 | 周6 60 | 周7 -------------------------------------------------------------------------------- /data/nlu.md: -------------------------------------------------------------------------------- 1 | ## intent:greet 2 | - hi 3 | - hey 4 | - hello 5 | - hey there 6 | - good morning 7 | - good evening 8 | - 嗨 9 | - 你好 10 | - 您好 11 | - 在么 12 | - 在吗 13 | - 小云 14 | - 早上好 15 | - 中午好 16 | - 晚上好 17 | - 小云小云 18 | - 小云在吗 19 | 20 | ## intent:goodbye 21 | - bye 22 | - goodbye 23 | - see you later 24 | - see you around 25 | - 拜 26 | - 谢谢 27 | - 拜拜 28 | - 再见 29 | - 退出 30 | - 结束 31 | 32 | ## intent:weather 33 | - [三天后](time)[台北](city)的天气 34 | - [三天后](time)[杭州](city)多云吗 35 | - [三天后](time)在[武汉](city)呢 36 | - [上海](city)[三天后](time)多少度 37 | - [上海](city)[前天](time)的天气 38 | - [上海](city)[明天](time)的天气 39 | - [上海](city)[昨天](time)的天气 40 | - [上海](city)什么天气 41 | - [上海](city)啥温度 42 | - [上海](city)多热 43 | - [下周一](time)的天气 44 | - [下周二](time)的天气 45 | - [下周三](time)的天气 46 | - [下周四](time)的天气 47 | - [下周五](time)的天气 48 | - [下周六](time)的天气 49 | - [下周日](time)的天气 50 | - [下个星期五](time)[台北](city)是不是天气好吗 51 | - [下个星期五](time)在[南京](city) 52 | - [下个星期五](time)我在[厦门](city)需要带伞吗 53 | - [下星期一](time)在[北京](city)呢 54 | - [下星期日](time)[北京](city)外边需要毛线帽吗 55 | - [下星期日](time)[马来西亚](city)的天气会很热吗 56 | - [两天前](time)[上海](city)的天气如何 57 | - [两天后](time)我需要不需要雨裤 58 | - [两天后](time)的天气会不会很寒冷吗 59 | - [今天](time)[上海](city)的天气 60 | - [今天](time)[上海](city)的气温如何 61 | - [今天](time)[北京](city)去外边要带羊毛袜吗 62 | - [今天](time)[台北](city)天气如何 63 | - [今天](time)[台北](city)的天气如何 64 | - [今天](time)[台北市](city)的天气如何 65 | - [今天](time)会不会晴朗吗 66 | - [今天](time)去外边要穿薄毛衣吗 67 | - [今天](time)台中天气如何 68 | - [今天](time)在[天津](city) 69 | - [今天](time)天气 70 | - [今天](time)天气很热耶 71 | - [今天](time)天气怎么样 72 | - [北京](city)[今天](time)的天气如何 73 | - [北京](city)里面会不会阴雨 74 | - [十月三号](time)[沈阳](city)会下雨吗 75 | - [厦门](city)啥天气 76 | - [台北市](city)温度 77 | - [台南市](city)南区几度 78 | - [大后天](time)天气怎么样 79 | - [明天](time) 80 | - [明天](time)[上海](city)的温度如何 81 | - [明天](time)[北京](city)我需要不需要雨衣 82 | - [明天](time)[台北](city)天气 83 | - [明天](time)[马来西亚](city)最近的天气是不是很冷 84 | - [明天](time)去外边要带雨伞吗 85 | - [明天](time)在[北京](city) 86 | - [明天](time)天气多少摄氏度 87 | - [明天](time)的天气会很温和吗 88 | - [明天](time)的天气是不是很暖吗 89 | - [明天](time)要不要手套 90 | - [昨天](time)什么天气 91 | - [昨天](time)几度 92 | - [杭州](city)[今天](time)的天气怎么样 93 | - [沈阳](city)[五天后](time) 94 | - [西安](city)[今天](time)的天气 95 | - [青岛](city)[明天](time) 96 | - 不好意思可以帮我查[香港](city)的天气 97 | - 为什么[下星期一](time)[马来西亚](city)天气那么凉快 98 | - 为什么天气那么寒冷 99 | - 会不会[前天](time) 100 | - 你知道[现在](time)外面冷不冷 101 | - 关于[两天后](time) 102 | - 关于[两天后](time)在[上海](city) 103 | - 去外边要带夹克吗 104 | - 去外边要穿外衣吗 105 | - 告诉我在[广州](city) 106 | - 告诉我在[广州](city)怎么样 107 | - 在[北京](city)呢 108 | - 在[杭州](city) 109 | - 在[辽宁](city)呢 110 | - 在[香港](city)呢 111 | - 外边需要雨伞吗 112 | - 天气 113 | - 天气会不会很热 114 | - 天气会很温和吗 115 | - 天气很冷 116 | - 天气是不是很凉快 117 | - 如何[厦门](city) 118 | - 小云[今天](time)天气怎么样 119 | - 小云小云[今天](time)天气怎么样 120 | - 就让你问他[今天](time)天气几度 121 | - 怎么能[下个星期日](time) 122 | - 我最近的天气是不是很冷 123 | - 我要[上海](city)[明天](time)的天气 124 | - 我该穿外套吗 125 | - 我还很想[一月一号](time) 126 | - 我还要[昨天](time) 127 | - 我需要不需要雨裤 128 | - 摄氏度天气预报 129 | - 现在[明天](time) 130 | - 用着摄氏度显示天气 131 | - 稍后[晚上](time)会下雨吗 132 | - 能不能[下星期五](time) 133 | - 还在[上海](city) 134 | - 还在[宁波](city) 135 | - 还在[武汉](city)呢 136 | - 还要[三天前](time) 137 | - 还要[下星期日](time)在[苏州](city) 138 | - 还要[明天](time) 139 | - 还需要[昨天](time) 140 | 141 | ## intent:inform 142 | - [今天](time) 143 | - [明天](time) 144 | - [后天](time) 145 | - [大后天](time) 146 | - [大大后天](time) 147 | - [早上](time) 148 | - [中午](time) 149 | - [晚上](time) 150 | - [傍晚](time) 151 | - [今日](time) 152 | - [第一天](time) 153 | - [明日](time) 154 | - [第二天](time) 155 | - [两天后](time) 156 | - [第三天](time) 157 | - [两天后](time) 158 | - [第三天](time) 159 | - [三天后](time) 160 | - [第四天](time) 161 | - [四天后](time) 162 | - [第五天](time) 163 | 164 | ## intent:debug 165 | - debug 166 | - 参数 167 | - 查看参数 168 | 169 | ## intent:out_of_scope 170 | - 又来 171 | - 饭店 172 | - 餐厅 173 | - 都不 174 | - 什么 175 | - 什么鬼 176 | - 啦啦啦 177 | - 我不管 178 | - 我饿了 179 | - 为什么 180 | - 不要停 181 | - 和我聊天 182 | - 哈哈哈哈 183 | - 呵呵呵呵 184 | - 给我吃的 185 | - 我要食物 186 | - 你喜欢吃啥 187 | - 那个链接不行 188 | - 我想吃法国菜 189 | - 我改变主意了 190 | - 你们已经有了 191 | - 我击垮你了吗 192 | - 停下来,我不管 193 | - 等等让我找一下 194 | - 我们能继续聊吗 195 | - 我不在乎你怎么样 196 | - 帮我拿一下冰淇淋 197 | - 给我看一张鸡的照片 198 | - 能给我介绍一个餐厅吗 199 | - 谁是你最喜欢的机器人 200 | - 这真是令人伤心的经历 201 | - 我要一个不滴水的冰淇淋 202 | - 我可以先问你几个问题吗 203 | - 你能帮我造一个机器人吗 204 | - 谁来报警我觉得机器人死了 205 | - 我给了你我的工作邮箱地址,我能改一下吗 -------------------------------------------------------------------------------- /data/stories.md: -------------------------------------------------------------------------------- 1 | ## weather path 2 | * greet 3 | - utter_greet 4 | * weather 5 | - city_time_form 6 | - form{"name": "city_time_form"} 7 | - form{"name": null} 8 | 9 | ## weather path2 10 | * weather 11 | - city_time_form 12 | - form{"name": "city_time_form"} 13 | - form{"name": null} 14 | 15 | ## weather path3 16 | * greet 17 | - utter_greet 18 | * inform 19 | - city_time_form 20 | - form{"name": "city_time_form"} 21 | - form{"name": null} 22 | 23 | ## say goodbye 24 | * goodbye 25 | - utter_goodbye 26 | 27 | ## debug 28 | * debug 29 | - action_debug -------------------------------------------------------------------------------- /domain.yml: -------------------------------------------------------------------------------- 1 | session_config: 2 | session_expiration_time: 60 3 | carry_over_slots_to_new_session: true 4 | intents: 5 | - greet 6 | - goodbye 7 | - weather 8 | - inform 9 | - out_of_scope 10 | - debug 11 | entities: 12 | - city 13 | - time 14 | slots: 15 | city: 16 | type: unfeaturized 17 | time: 18 | type: unfeaturized 19 | responses: 20 | utter_greet: 21 | - text: 您好,小云能帮你查哪个城市的天气? 22 | - text: 我是天气查询机器人小云,你想查哪个城市的天气? 23 | utter_goodbye: 24 | - text: 下次见~ 25 | - text: 期待下次与您再会! 26 | - text: 小云很高兴为您服务! 27 | utter_city: 28 | - text: '{city}' 29 | utter_time: 30 | - text: '{time}' 31 | utter_ask_city: 32 | - text: 查询城市? 33 | - text: 请问您在哪个城市? 34 | - text: 请问想查哪个城市? 35 | - text: 查哪个城市的天气? 36 | utter_ask_time: 37 | - buttons: 38 | - payload: '/inform{"time": "今天"}' 39 | title: 今天 40 | - payload: '/inform{"time": "明天"}' 41 | title: 明天 42 | - payload: '/inform{"time": "后天"}' 43 | title: 后天 44 | - payload: '/inform{"time": "大后天"}' 45 | title: 大后天 46 | - payload: '/inform{"time": "大大后天"}' 47 | title: 大大后天 48 | text: 查询时间? 49 | - buttons: 50 | - payload: '/inform{"time": "今天"}' 51 | title: 今天 52 | - payload: '/inform{"time": "明天"}' 53 | title: 明天 54 | - payload: '/inform{"time": "后天"}' 55 | title: 后天 56 | - payload: '/inform{"time": "大后天"}' 57 | title: 大后天 58 | - payload: '/inform{"time": "大大后天"}' 59 | title: 大大后天 60 | text: 请问想查哪一天? 61 | actions: 62 | - action_hello_world 63 | - action_debug 64 | - utter_ask_city 65 | - utter_ask_time 66 | - utter_greet 67 | - utter_cheer_up 68 | - utter_did_that_help 69 | - utter_happy 70 | - utter_goodbye 71 | - utter_city 72 | - utter_time 73 | forms: 74 | - city_time_form 75 | -------------------------------------------------------------------------------- /endpoints.yml: -------------------------------------------------------------------------------- 1 | action_endpoint: 2 | url: "http://localhost:5055/webhook" -------------------------------------------------------------------------------- /extractors/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vba34520/Rasa-Weather/ab109b9e9a856716a3b7170c55836c33742151f8/extractors/__init__.py -------------------------------------------------------------------------------- /extractors/match_entity_extractor.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Author : XerCis 3 | # @Time : 2020/5/18 16:13 4 | # @Function: 绝对匹配提取实体 5 | 6 | import os 7 | from itertools import combinations 8 | from typing import Any, Text, Dict 9 | from rasa.nlu.extractors.extractor import EntityExtractor 10 | 11 | 12 | class MatchEntityExtractor(EntityExtractor): 13 | """绝对匹配提取实体""" 14 | provides = ["entities"] 15 | 16 | defaults = { 17 | "dictionary_path": None, 18 | "take_long": None, 19 | "take_short": None 20 | } 21 | 22 | def __init__(self, component_config=None): 23 | super(MatchEntityExtractor, self).__init__(component_config) 24 | self.dictionary_path = self.component_config.get("dictionary_path") 25 | self.take_long = self.component_config.get("take_long") 26 | self.take_short = self.component_config.get("take_short") 27 | if self.take_long and self.take_short: 28 | raise ValueError("take_long and take_short can not be both True") 29 | self.data = {} # 用于绝对匹配的数据 30 | for file_path in os.listdir(self.dictionary_path): 31 | if file_path.endswith(".txt"): 32 | file_path = os.path.join(self.dictionary_path, file_path) 33 | file_name = os.path.basename(file_path)[:-4] 34 | with open(file_path, mode="r", encoding="utf-8") as f: 35 | self.data[file_name] = f.read().splitlines() 36 | 37 | def process(self, message, **kwargs): 38 | """绝对匹配提取实体词""" 39 | entities = [] 40 | for entity, value in self.data.items(): 41 | for i in value: 42 | start = message.text.find(i) 43 | if start != -1: 44 | entities.append({ 45 | "start": start, 46 | "end": start + len(i), 47 | "value": i, 48 | "entity": entity, 49 | "confidence": 1 50 | }) 51 | if self.take_long or self.take_short: 52 | for i in list(combinations(entities, 2)): 53 | v0, v1 = i[0]["value"], i[1]["value"] 54 | if v0 in v1 or v1 in v0: 55 | (long, short) = (i[0], i[1]) if len(v0) > len(v1) else (i[1], i[0]) 56 | if self.take_long == True and short in entities: 57 | entities.remove(short) 58 | if self.take_short == True and long in entities: 59 | entities.remove(long) 60 | extracted = self.add_extractor_name(entities) 61 | message.set("entities", extracted, add_to_output=True) 62 | 63 | @classmethod 64 | def load(cls, meta: Dict[Text, Any], model_dir=None, model_metadata=None, cached_component=None, **kwargs): 65 | return cls(meta) 66 | -------------------------------------------------------------------------------- /weather.py: -------------------------------------------------------------------------------- 1 | # -*- coding: utf-8 -*- 2 | # @Author : XerCis 3 | # @Time : 2020/6/10 14:15 4 | # @Function: 查询天气预报 5 | 6 | import os 7 | import json 8 | from typing import List, Text 9 | from suds.client import Client 10 | from collections import defaultdict 11 | from suds.xsd.doctor import ImportDoctor, Import 12 | 13 | 14 | class Weather: 15 | def __init__(self, verbose: int = 0): 16 | '''初始化获取支持的地区、城市 17 | 18 | :param verbose: Integer. 0, or 1. Verbosity mode. 0 = silent, 1 = start and end. 19 | ''' 20 | if verbose == 1: 21 | import time 22 | start = time.time() 23 | print('Building supported regions and cities ...') 24 | 25 | self.load() # 读取 26 | 27 | if verbose == 1: 28 | end = time.time() 29 | print('Built succesfully. Cost {:.3f} seconds.'.format(end - start)) 30 | 31 | def creat_client(self): 32 | '''创建suds.client对象''' 33 | imp = Import('http://www.w3.org/2001/XMLSchema', location='http://www.w3.org/2001/XMLSchema.xsd') 34 | imp.filter.add('http://WebXml.com.cn/') 35 | doctor = ImportDoctor(imp) 36 | self.client = Client('http://ws.webxml.com.cn/WebServices/WeatherWS.asmx?wsdl', doctor=doctor) 37 | 38 | def load(self, filepath='weather.json'): 39 | '''读取''' 40 | self.creat_client() 41 | 42 | # 加载JSON缓存 43 | if os.path.exists(filepath): 44 | with open(filepath, 'r', encoding='utf-8') as f: 45 | self.__dict__.update(json.load(f)) 46 | else: 47 | self.REGION = {} # 国家地区和省份 48 | native = self.client.service.getRegionProvince() # 国内 49 | foreign = self.client.service.getRegionCountry() # 国外 50 | for x in native[0]: 51 | region, _id = x.split(',') 52 | self.REGION[region] = _id 53 | for x in foreign[0]: 54 | region, _id = x.split(',') 55 | self.REGION[region] = _id 56 | 57 | self.CITY = {} # 城市 58 | self.REGION_CITY = defaultdict(list) # 地区支持的城市 59 | regions = list(self.REGION.keys()) 60 | for region in regions: 61 | cities = self.client.service.getSupportCityString(theRegionCode=region) 62 | for x in cities[0]: 63 | city, _id = x.split(',') 64 | if city == '无城市': 65 | del self.REGION[region] 66 | else: 67 | self.CITY[city] = _id 68 | self.REGION_CITY[region].append(city) 69 | self.persist() # 持久化 70 | 71 | def persist(self, filepath='weather.json'): 72 | '''持久化''' 73 | with open(filepath, 'w', encoding='utf-8') as f: 74 | data = self.__dict__.copy() 75 | del data['client'] 76 | json.dump(data, f, ensure_ascii=False, indent=2) 77 | 78 | def getCity(self) -> List[Text]: 79 | '''获取所有支持的城市''' 80 | return list(self.CITY.keys()) 81 | 82 | def getRegion(self) -> List[Text]: 83 | '''获取所有支持的地区''' 84 | return list(self.REGION.keys()) 85 | 86 | def getRegionCity(self, region: str) -> List[Text]: 87 | '''获取地区支持的城市 88 | 89 | >>> Weather().getRegionCity(region='巴西') 90 | ['里约热内卢', '圣保罗'] 91 | ''' 92 | return self.REGION_CITY[region] 93 | 94 | def getWeather(self, city: str) -> List[Text]: 95 | '''获取城市天气''' 96 | result = { 97 | 'city': city, 98 | 'status': 0 # 失败 99 | } 100 | if city in self.CITY: 101 | weather = self.client.service.getWeather(theCityCode=city) 102 | weather = weather[0] 103 | result = { 104 | 'city': weather[0], # 城市 105 | 'reporttime': weather[3], # 时间 106 | 'live': weather[4], # 实况 107 | 'brief': weather[5], # 紫外线和空气质量 108 | 'index': weather[6], # 各种指数 109 | 'today': ' '.join(weather[7:10]), # 今天天气 110 | 'tomorrow': ' '.join(weather[12:15]), # 明天天气 111 | 'day1': ' '.join(weather[7:10]), # 今天天气 112 | 'day2': ' '.join(weather[12:15]), # 明天天气 113 | 'day3': ' '.join(weather[17:20]), # 后天天气 114 | 'day4': ' '.join(weather[22:25]), # 大后天天气 115 | 'day5': ' '.join(weather[27:30]), # 大后天天气 116 | } 117 | return result 118 | 119 | 120 | if __name__ == '__main__': 121 | weather = Weather(verbose=1) 122 | region = weather.getRegion() # 支持的所有地区 123 | cities = weather.getCity() # 支持的所有城市 124 | support = weather.getRegionCity(region='巴西') # 支持的巴西的城市 125 | result = weather.getWeather(city='广州') # 查询广州的天气 126 | print('支持的地区数', len(region)) 127 | print('支持的城市数', len(cities)) 128 | print('支持的巴西城市', support) 129 | print('广州的天气', result) 130 | --------------------------------------------------------------------------------