From 136a8078964e28e33d11e560b8a0b0cf9ff86ec3 Mon Sep 17 00:00:00 2001 From: tcmofashi Date: Sun, 2 Mar 2025 03:45:23 +0800 Subject: [PATCH 01/26] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E4=BA=86?= =?UTF-8?q?=E8=AF=BB=E7=A9=BA=E6=B0=94=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/config.py | 1 + src/plugins/chat/llm_generator.py | 49 ++++++++++++++++++++++++++++- src/plugins/chat/prompt_builder.py | 12 ++++++- src/plugins/chat/willing_manager.py | 2 +- 4 files changed, 61 insertions(+), 3 deletions(-) diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index 05d492789..efaa96523 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -47,6 +47,7 @@ class BotConfig: MODEL_R1_DISTILL_PROBABILITY: float = 0.1 # R1蒸馏模型概率 enable_advance_output: bool = False # 是否启用高级输出 + enable_kuuki_read: bool = True # 是否启用读空气功能 @staticmethod def get_default_config_path() -> str: diff --git a/src/plugins/chat/llm_generator.py b/src/plugins/chat/llm_generator.py index 2ea4d7f24..137730ad5 100644 --- a/src/plugins/chat/llm_generator.py +++ b/src/plugins/chat/llm_generator.py @@ -91,7 +91,7 @@ class LLMResponseGenerator: relationship_value = 0.0 # 构建prompt - prompt = prompt_builder._build_prompt( + prompt,prompt_check = prompt_builder._build_prompt( message_txt=message.processed_plain_text, sender_name=sender_name, relationship_value=relationship_value, @@ -106,6 +106,14 @@ class LLMResponseGenerator: "max_tokens": 1024, "temperature": 0.7 } + + default_params_check = { + "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + "messages": [{"role": "user", "content": prompt_check}], + "stream": False, + "max_tokens": 1024, + "temperature": 0.7 + } # 更新参数 if model_params: @@ -114,7 +122,43 @@ class LLMResponseGenerator: def create_completion(): return self.client.chat.completions.create(**default_params) + def create_completion_check(): + return self.client.chat.completions.create(**default_params_check) + loop = asyncio.get_event_loop() + + # 读空气模块 + reasoning_content_check='' + content_check='' + if global_config.enable_kuuki_read: + response_check = await loop.run_in_executor(None, create_completion_check) + if response_check: + reasoning_content_check = "" + if hasattr(response_check.choices[0].message, "reasoning"): + reasoning_content_check = response_check.choices[0].message.reasoning or reasoning_content_check + elif hasattr(response_check.choices[0].message, "reasoning_content"): + reasoning_content_check = response_check.choices[0].message.reasoning_content or reasoning_content_check + content_check = response_check.choices[0].message.content + print(f"\033[1;32m[读空气]\033[0m 读空气结果为{content_check}") + if 'yes' not in content_check.lower(): + self.db.db.reasoning_logs.insert_one({ + 'time': time.time(), + 'group_id': message.group_id, + 'user': sender_name, + 'message': message.processed_plain_text, + 'model': model_name, + 'reasoning_check': reasoning_content_check, + 'response_check': content_check, + 'reasoning': "", + 'response': "", + 'prompt': prompt, + 'prompt_check': prompt_check, + 'model_params': default_params + }) + return None + + + response = await loop.run_in_executor(None, create_completion) # 检查响应内容 @@ -142,9 +186,12 @@ class LLMResponseGenerator: 'user': sender_name, 'message': message.processed_plain_text, 'model': model_name, + 'reasoning_check': reasoning_content_check, + 'response_check': content_check, 'reasoning': reasoning_content, 'response': content, 'prompt': prompt, + 'prompt_check': prompt_check, 'model_params': default_params }) diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index da9037cfa..215d926a9 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -186,8 +186,18 @@ class PromptBuilder: prompt += f"{prompt_personality}\n" prompt += f"{prompt_ger}\n" prompt += f"{extra_info}\n" + + activate_prompt_check=f"以上是群里正在进行的聊天,昵称为 '{sender_name}' 的用户说的:{message_txt}。引起了你的注意,你和他{relation_prompt},你想要{relation_prompt_2},但是这不一定是合适的时机,请你决定是否要回应这条消息。" + prompt_personality_check = '' + extra_check_info=f"请注意把握群里的聊天内容的基础上,综合群内的氛围,例如,和{global_config.BOT_NICKNAME}相关的话题要积极回复,如果是at自己的消息一定要回复,如果自己正在和别人聊天一定要回复,其他话题如果合适搭话也可以回复,如果认为应该回复请输出yes,否则输出no,请注意是决定是否需要回复,而不是编写回复内容,除了yes和no不要输出任何回复内容。" + if personality_choice < 4/6: # 第一种人格 + prompt_personality_check = f'''你的网名叫{global_config.BOT_NICKNAME},曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧,你正在浏览qq群,{promt_info_prompt} {activate_prompt_check} {extra_check_info}''' + elif personality_choice < 1: # 第二种人格 + prompt_personality_check = f'''你的网名叫{global_config.BOT_NICKNAME},是一个女大学生,你有黑色头发,你会刷小红书, 你正在浏览qq群,{promt_info_prompt} {activate_prompt_check} {extra_check_info}''' + + prompt_check_if_response=f"{prompt_info}\n{prompt_date}\n{chat_talking_prompt}\n{prompt_personality_check}" - return prompt + return prompt,prompt_check_if_response def get_prompt_info(self,message:str,threshold:float): related_info = '' diff --git a/src/plugins/chat/willing_manager.py b/src/plugins/chat/willing_manager.py index 037c2d517..8f3734a4f 100644 --- a/src/plugins/chat/willing_manager.py +++ b/src/plugins/chat/willing_manager.py @@ -58,7 +58,7 @@ class WillingManager: if group_id in config.talk_frequency_down_groups: reply_probability = reply_probability / 3.5 - if is_mentioned_bot and user_id == int(1026294844): + if is_mentioned_bot and user_id == int(964959351): reply_probability = 1 return reply_probability From 1cd7f80937293c2c3ee0eefb0625a0fe6e815666 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 15:00:12 +0800 Subject: [PATCH 02/26] =?UTF-8?q?v0.3.2=20=E6=9B=B4=E6=94=B9=E4=BA=86.env?= =?UTF-8?q?=20config=E7=9A=84=E9=80=BB=E8=BE=91=E5=92=8Cmemory=E4=BC=98?= =?UTF-8?q?=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit v0.3.2 更改了.env config的逻辑 memory优化 读空气优化 --- config/env.example => .env.prod | 11 +- .gitignore | 1 + README.md | 9 +- bot.py | 64 +++- run_maimai.bat | 3 +- src/plugins/chat/__init__.py | 16 +- src/plugins/chat/bot.py | 25 +- src/plugins/chat/config.py | 11 +- src/plugins/chat/cq_code.py | 14 +- src/plugins/chat/emoji_manager.py | 14 +- src/plugins/chat/llm_generator.py | 76 ++-- src/plugins/chat/prompt_builder.py | 19 +- src/plugins/chat/topic_identifier.py | 9 +- src/plugins/chat/utils.py | 8 +- src/plugins/chat/utils_image.py | 16 +- src/plugins/chat/willing_manager.py | 4 +- src/plugins/knowledege/knowledge_library.py | 16 +- src/plugins/memory_system/draw_memory.py | 92 ++++- src/plugins/memory_system/llm_module.py | 8 +- .../memory_system/llm_module_memory_make.py | 8 +- src/plugins/memory_system/memory.py | 56 +-- src/plugins/memory_system/memory_make.py | 346 ++++++++++-------- src/plugins/schedule/schedule_generator.py | 17 +- src/plugins/schedule/schedule_llm_module.py | 12 +- 24 files changed, 538 insertions(+), 317 deletions(-) rename config/env.example => .env.prod (73%) diff --git a/config/env.example b/.env.prod similarity index 73% rename from config/env.example rename to .env.prod index 9988d58f3..3d795978c 100644 --- a/config/env.example +++ b/.env.prod @@ -1,4 +1,3 @@ -ENVIRONMENT=dev HOST=127.0.0.1 PORT=8080 @@ -11,15 +10,15 @@ PLUGINS=["src2.plugins.chat"] MONGODB_HOST=127.0.0.1 MONGODB_PORT=27017 DATABASE_NAME=MegBot + MONGODB_USERNAME = "" # 默认空值 MONGODB_PASSWORD = "" # 默认空值 MONGODB_AUTH_SOURCE = "" # 默认空值 -#api配置项 +#key and url +CHAT_ANY_WHERE_KEY= SILICONFLOW_KEY= +CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ DEEP_SEEK_KEY= -DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 - - - +DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 265108181..c19b9ce33 100644 --- a/.gitignore +++ b/.gitignore @@ -14,6 +14,7 @@ reasoning_content.bat reasoning_window.bat queue_update.txt memory_graph.gml +.env.dev # Byte-compiled / optimized / DLL files diff --git a/README.md b/README.md index a85fcc4e8..1310d4879 100644 --- a/README.md +++ b/README.md @@ -28,7 +28,7 @@ > ⚠️ **警告**:请自行了解qqbot的风险,麦麦有时候一天被腾讯肘七八次 > ⚠️ **警告**:由于麦麦一直在迭代,所以可能存在一些bug,请自行测试,包括胡言乱语( -关于麦麦的开发和建议相关的讨论群(不建议发布无关消息)这里不会有麦麦发言! +关于麦麦的开发和建议相关的讨论群:766798517(不建议发布无关消息)这里不会有麦麦发言! ## 开发计划TODO:LIST @@ -41,16 +41,13 @@ - config自动生成和检测 - log别用print - 给发送消息写专门的类 +- 改进表情包发送逻辑l -
- -
- ## 📚 详细文档 - [项目详细介绍和架构说明](docs/doc1.md) - 包含完整的项目结构、文件说明和核心功能实现细节(由claude-3.5-sonnet生成) -### 安装方法(还没测试好,现在部署可能遇到未知问题!!!!) +### 安装方法(还没测试好,随时outdated ,现在部署可能遇到未知问题!!!!) #### Linux 使用 Docker Compose 部署 获取项目根目录中的```docker-compose.yml```文件,运行以下命令 diff --git a/bot.py b/bot.py index 8abdbbbe9..8741eca7f 100644 --- a/bot.py +++ b/bot.py @@ -4,27 +4,59 @@ from nonebot.adapters.onebot.v11 import Adapter from dotenv import load_dotenv from loguru import logger - # 加载全局环境变量 -root_dir = os.path.dirname(os.path.abspath(__file__)) -env_path=os.path.join(root_dir, "config",'.env') +'''彩蛋''' +from colorama import init, Fore +init() +text = "多年以后,面对行刑队,张三将会回想起他2023年在会议上讨论人工智能的那个下午" +rainbow_colors = [Fore.RED, Fore.YELLOW, Fore.GREEN, Fore.CYAN, Fore.BLUE, Fore.MAGENTA] +rainbow_text = "" +for i, char in enumerate(text): + rainbow_text += rainbow_colors[i % len(rainbow_colors)] + char +print(rainbow_text) +'''彩蛋''' -logger.info(f"尝试从 {env_path} 加载环境变量配置") -if os.path.exists(env_path): - load_dotenv(env_path) - logger.success("成功加载环境变量配置") +# 首先加载基础环境变量 +if os.path.exists(".env"): + load_dotenv(".env") + logger.success("成功加载基础环境变量配置") else: - logger.error(f"环境变量配置文件不存在: {env_path}") + logger.error("基础环境变量配置文件 .env 不存在") + exit(1) +# 根据 ENVIRONMENT 加载对应的环境配置 +env = os.getenv("ENVIRONMENT") +env_file = f".env.{env}" + +if env_file == ".env.dev" and os.path.exists(env_file): + logger.success("加载开发环境变量配置") + load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 +elif env_file == ".env.prod" and os.path.exists(env_file): + logger.success("加载环境变量配置") + load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 +else: + logger.error(f"{env}对应的环境配置文件{env_file}不存在,请修改.env文件中的ENVIRONMENT变量为 prod.") + exit(1) -# 初始化 NoneBot nonebot.init( - # napcat 默认使用 8080 端口 - websocket_port=8080, - # 设置日志级别 + # 从环境变量中读取配置 + websocket_port=os.getenv("PORT", 8080), + host=os.getenv("HOST", "127.0.0.1"), log_level="INFO", - # 设置超级用户 - superusers={"你的QQ号"}, - # TODO: 这样写会忽略环境变量需要优化 https://nonebot.dev/docs/appendices/config - _env_file=env_path + # 添加自定义配置 + mongodb_host=os.getenv("MONGODB_HOST", "127.0.0.1"), + mongodb_port=os.getenv("MONGODB_PORT", 27017), + database_name=os.getenv("DATABASE_NAME", "MegBot"), + mongodb_username=os.getenv("MONGODB_USERNAME", ""), + mongodb_password=os.getenv("MONGODB_PASSWORD", ""), + mongodb_auth_source=os.getenv("MONGODB_AUTH_SOURCE", ""), + # API相关配置 + chat_any_where_key=os.getenv("CHAT_ANY_WHERE_KEY", ""), + siliconflow_key=os.getenv("SILICONFLOW_KEY", ""), + chat_any_where_base_url=os.getenv("CHAT_ANY_WHERE_BASE_URL", "https://api.chatanywhere.tech/v1"), + siliconflow_base_url=os.getenv("SILICONFLOW_BASE_URL", "https://api.siliconflow.cn/v1/"), + deep_seek_key=os.getenv("DEEP_SEEK_KEY", ""), + deep_seek_base_url=os.getenv("DEEP_SEEK_BASE_URL", "https://api.deepseek.com/v1"), + # 插件配置 + plugins=os.getenv("PLUGINS", ["src2.plugins.chat"]) ) # 注册适配器 diff --git a/run_maimai.bat b/run_maimai.bat index 0e1bd7eb6..702d39edc 100644 --- a/run_maimai.bat +++ b/run_maimai.bat @@ -2,4 +2,5 @@ call conda activate niuniu cd . REM 执行nb run命令 -nb run \ No newline at end of file +nb run +pause \ No newline at end of file diff --git a/src/plugins/chat/__init__.py b/src/plugins/chat/__init__.py index 6fc896ac8..0f81d30d6 100644 --- a/src/plugins/chat/__init__.py +++ b/src/plugins/chat/__init__.py @@ -11,16 +11,18 @@ from .relationship_manager import relationship_manager from ..schedule.schedule_generator import bot_schedule from .willing_manager import willing_manager + # 获取驱动器 driver = get_driver() +config = driver.config Database.initialize( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") + host= config.mongodb_host, + port= int(config.mongodb_port), + db_name= config.database_name, + username= config.mongodb_username, + password= config.mongodb_password, + auth_source= config.mongodb_auth_source ) print("\033[1;32m[初始化数据库完成]\033[0m") @@ -37,7 +39,7 @@ emoji_manager.initialize() print(f"\033[1;32m正在唤醒{global_config.BOT_NICKNAME}......\033[0m") # 创建机器人实例 -chat_bot = ChatBot(global_config) +chat_bot = ChatBot() # 注册消息处理器 group_msg = on_message() # 创建定时任务 diff --git a/src/plugins/chat/bot.py b/src/plugins/chat/bot.py index 1b5201645..e68ae93f3 100644 --- a/src/plugins/chat/bot.py +++ b/src/plugins/chat/bot.py @@ -18,10 +18,9 @@ from .utils import is_mentioned_bot_in_txt, calculate_typing_time from ..memory_system.memory import memory_graph class ChatBot: - def __init__(self, config: BotConfig): - self.config = config + def __init__(self): self.storage = MessageStorage() - self.gpt = LLMResponseGenerator(config) + self.gpt = LLMResponseGenerator() self.bot = None # bot 实例引用 self._started = False @@ -39,11 +38,11 @@ class ChatBot: async def handle_message(self, event: GroupMessageEvent, bot: Bot) -> None: """处理收到的群消息""" - if event.group_id not in self.config.talk_allowed_groups: + if event.group_id not in global_config.talk_allowed_groups: return self.bot = bot # 更新 bot 实例 - if event.user_id in self.config.ban_user_id: + if event.user_id in global_config.ban_user_id: return # 打印原始消息内容 @@ -120,7 +119,7 @@ class ChatBot: event.group_id, topic[0] if topic else None, is_mentioned, - self.config, + global_config, event.user_id, message.is_emoji, interested_rate @@ -143,10 +142,14 @@ class ChatBot: response, emotion = await self.gpt.generate_response(message) # 如果生成了回复,发送并记录 - + + ''' + 生成回复后的内容 + + ''' if response: - message_set = MessageSet(event.group_id, self.config.BOT_QQ, think_id) + message_set = MessageSet(event.group_id, global_config.BOT_QQ, think_id) accu_typing_time = 0 for msg in response: print(f"当前消息: {msg}") @@ -157,7 +160,7 @@ class ChatBot: bot_message = Message( group_id=event.group_id, - user_id=self.config.BOT_QQ, + user_id=global_config.BOT_QQ, message_id=think_id, message_based_id=event.message_id, raw_message=msg, @@ -174,7 +177,7 @@ class ChatBot: bot_response_time = tinking_time_point - if random() < self.config.emoji_chance: + if random() < global_config.emoji_chance: emoji_path = await emoji_manager.get_emoji_for_emotion(emotion) if emoji_path: emoji_cq = CQCode.create_emoji_cq(emoji_path) @@ -186,7 +189,7 @@ class ChatBot: bot_message = Message( group_id=event.group_id, - user_id=self.config.BOT_QQ, + user_id=global_config.BOT_QQ, message_id=0, raw_message=emoji_cq, plain_text=emoji_cq, diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index 8c04e1126..0232219f8 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -7,6 +7,7 @@ import configparser import tomli import sys from loguru import logger +from nonebot import get_driver @@ -111,7 +112,6 @@ class BotConfig: # 获取配置文件路径 bot_config_path = BotConfig.get_default_config_path() config_dir = os.path.dirname(bot_config_path) -env_path = os.path.join(config_dir, '.env') logger.info(f"尝试从 {bot_config_path} 加载机器人配置") global_config = BotConfig.load_config(config_path=bot_config_path) @@ -126,10 +126,11 @@ class LLMConfig: DEEP_SEEK_BASE_URL: str = None llm_config = LLMConfig() -llm_config.SILICONFLOW_API_KEY = os.getenv('SILICONFLOW_KEY') -llm_config.SILICONFLOW_BASE_URL = os.getenv('SILICONFLOW_BASE_URL') -llm_config.DEEP_SEEK_API_KEY = os.getenv('DEEP_SEEK_KEY') -llm_config.DEEP_SEEK_BASE_URL = os.getenv('DEEP_SEEK_BASE_URL') +config = get_driver().config +llm_config.SILICONFLOW_API_KEY = config.siliconflow_key +llm_config.SILICONFLOW_BASE_URL = config.siliconflow_base_url +llm_config.DEEP_SEEK_API_KEY = config.deep_seek_key +llm_config.DEEP_SEEK_BASE_URL = config.deep_seek_base_url if not global_config.enable_advance_output: diff --git a/src/plugins/chat/cq_code.py b/src/plugins/chat/cq_code.py index 92ca20bd8..ae5d8a257 100644 --- a/src/plugins/chat/cq_code.py +++ b/src/plugins/chat/cq_code.py @@ -7,7 +7,7 @@ from PIL import Image import os from random import random from nonebot.adapters.onebot.v11 import Bot -from .config import global_config, llm_config +from .config import global_config import time import asyncio from .utils_image import storage_image,storage_emoji @@ -16,6 +16,10 @@ from .utils_user import get_user_nickname #包含CQ码类 import urllib3 from urllib3.util import create_urllib3_context +from nonebot import get_driver + +driver = get_driver() +config = driver.config # TLS1.3特殊处理 https://github.com/psf/requests/issues/6616 ctx = create_urllib3_context() @@ -179,7 +183,7 @@ class CQCode: """调用AI接口获取表情包描述""" headers = { "Content-Type": "application/json", - "Authorization": f"Bearer {llm_config.SILICONFLOW_API_KEY}" + "Authorization": f"Bearer {config.siliconflow_key}" } payload = { @@ -206,7 +210,7 @@ class CQCode: } response = requests.post( - f"{llm_config.SILICONFLOW_BASE_URL}chat/completions", + f"{config.siliconflow_base_url}chat/completions", headers=headers, json=payload, timeout=30 @@ -224,7 +228,7 @@ class CQCode: """调用AI接口获取普通图片描述""" headers = { "Content-Type": "application/json", - "Authorization": f"Bearer {llm_config.SILICONFLOW_API_KEY}" + "Authorization": f"Bearer {config.siliconflow_key}" } payload = { @@ -251,7 +255,7 @@ class CQCode: } response = requests.post( - f"{llm_config.SILICONFLOW_BASE_URL}chat/completions", + f"{config.siliconflow_base_url}chat/completions", headers=headers, json=payload, timeout=30 diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index a4352758d..c8c9dc814 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -10,10 +10,14 @@ import hashlib from datetime import datetime import base64 import shutil -from .config import global_config, llm_config import asyncio import time +from nonebot import get_driver + +driver = get_driver() +config = driver.config + class EmojiManager: _instance = None @@ -93,7 +97,7 @@ class EmojiManager: # 准备请求数据 headers = { "Content-Type": "application/json", - "Authorization": f"Bearer {llm_config.SILICONFLOW_API_KEY}" + "Authorization": f"Bearer {config.siliconflow_key}" } payload = { @@ -115,7 +119,7 @@ class EmojiManager: async with aiohttp.ClientSession() as session: async with session.post( - f"{llm_config.SILICONFLOW_BASE_URL}chat/completions", + f"{config.siliconflow_base_url}chat/completions", headers=headers, json=payload ) as response: @@ -249,7 +253,7 @@ class EmojiManager: async with aiohttp.ClientSession() as session: headers = { "Content-Type": "application/json", - "Authorization": f"Bearer {llm_config.SILICONFLOW_API_KEY}" + "Authorization": f"Bearer {config.siliconflow_key}" } payload = { @@ -276,7 +280,7 @@ class EmojiManager: } async with session.post( - f"{llm_config.SILICONFLOW_BASE_URL}chat/completions", + f"{config.siliconflow_base_url}chat/completions", headers=headers, json=payload ) as response: diff --git a/src/plugins/chat/llm_generator.py b/src/plugins/chat/llm_generator.py index 5ed12c9b6..bfff1d474 100644 --- a/src/plugins/chat/llm_generator.py +++ b/src/plugins/chat/llm_generator.py @@ -1,34 +1,34 @@ from typing import Dict, Any, List, Optional, Union, Tuple from openai import OpenAI import asyncio -import requests from functools import partial from .message import Message -from .config import BotConfig, global_config +from .config import global_config from ...common.database import Database import random import time -import os import numpy as np from .relationship_manager import relationship_manager -from ..schedule.schedule_generator import bot_schedule from .prompt_builder import prompt_builder -from .config import llm_config, global_config +from .config import global_config from .utils import process_llm_response +from nonebot import get_driver + +driver = get_driver() +config = driver.config class LLMResponseGenerator: - def __init__(self, config: BotConfig): - self.config = config - if self.config.API_USING == "siliconflow": + def __init__(self): + if global_config.API_USING == "siliconflow": self.client = OpenAI( - api_key=llm_config.SILICONFLOW_API_KEY, - base_url=llm_config.SILICONFLOW_BASE_URL + api_key=config.siliconflow_key, + base_url=config.siliconflow_base_url ) - elif self.config.API_USING == "deepseek": + elif global_config.API_USING == "deepseek": self.client = OpenAI( - api_key=llm_config.DEEP_SEEK_API_KEY, - base_url=llm_config.DEEP_SEEK_BASE_URL + api_key=config.deep_seek_key, + base_url=config.deep_seek_base_url ) self.db = Database.get_instance() @@ -52,6 +52,7 @@ class LLMResponseGenerator: else: self.current_model_type = 'r1_distill' # 默认使用 R1-Distill + print(f"+++++++++++++++++{global_config.BOT_NICKNAME}{self.current_model_type}思考中+++++++++++++++++") if self.current_model_type == 'r1': model_response = await self._generate_r1_response(message) @@ -83,8 +84,9 @@ class LLMResponseGenerator: print(f"\033[1;32m[关系管理]\033[0m 回复中_当前关系值: {relationship_value}") else: relationship_value = 0.0 + - # 构建prompt + ''' 构建prompt ''' prompt,prompt_check = prompt_builder._build_prompt( message_txt=message.processed_plain_text, sender_name=sender_name, @@ -92,6 +94,7 @@ class LLMResponseGenerator: group_id=message.group_id ) + # 设置默认参数 default_params = { "model": model_name, @@ -113,6 +116,7 @@ class LLMResponseGenerator: if model_params: default_params.update(model_params) + def create_completion(): return self.client.chat.completions.create(**default_params) @@ -122,6 +126,7 @@ class LLMResponseGenerator: loop = asyncio.get_event_loop() # 读空气模块 + air = 0 reasoning_content_check='' content_check='' if global_config.enable_kuuki_read: @@ -135,21 +140,26 @@ class LLMResponseGenerator: content_check = response_check.choices[0].message.content print(f"\033[1;32m[读空气]\033[0m 读空气结果为{content_check}") if 'yes' not in content_check.lower(): - self.db.db.reasoning_logs.insert_one({ - 'time': time.time(), - 'group_id': message.group_id, - 'user': sender_name, - 'message': message.processed_plain_text, - 'model': model_name, - 'reasoning_check': reasoning_content_check, - 'response_check': content_check, - 'reasoning': "", - 'response': "", - 'prompt': prompt, - 'prompt_check': prompt_check, - 'model_params': default_params - }) - return None + air = 1 + #稀释读空气的判定 + if air == 1 and random.random() < 0.3: + self.db.db.reasoning_logs.insert_one({ + 'time': time.time(), + 'group_id': message.group_id, + 'user': sender_name, + 'message': message.processed_plain_text, + 'model': model_name, + 'reasoning_check': reasoning_content_check, + 'response_check': content_check, + 'reasoning': "", + 'response': "", + 'prompt': prompt, + 'prompt_check': prompt_check, + 'model_params': default_params + }) + return None + + @@ -193,7 +203,7 @@ class LLMResponseGenerator: async def _generate_r1_response(self, message: Message) -> Optional[str]: """使用 DeepSeek-R1 模型生成回复""" - if self.config.API_USING == "deepseek": + if global_config.API_USING == "deepseek": return await self._generate_base_response( message, "deepseek-reasoner", @@ -208,7 +218,7 @@ class LLMResponseGenerator: async def _generate_v3_response(self, message: Message) -> Optional[str]: """使用 DeepSeek-V3 模型生成回复""" - if self.config.API_USING == "deepseek": + if global_config.API_USING == "deepseek": return await self._generate_base_response( message, "deepseek-chat", @@ -259,7 +269,7 @@ class LLMResponseGenerator: messages = [{"role": "user", "content": prompt}] loop = asyncio.get_event_loop() - if self.config.API_USING == "deepseek": + if global_config.API_USING == "deepseek": model = "deepseek-chat" else: model = "Pro/deepseek-ai/DeepSeek-V3" @@ -296,4 +306,4 @@ class LLMResponseGenerator: return processed_response, emotion_tags # 创建全局实例 -llm_response = LLMResponseGenerator(global_config) \ No newline at end of file +llm_response = LLMResponseGenerator() \ No newline at end of file diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index 49402dbfc..ba0e9b4cc 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -66,12 +66,15 @@ class PromptBuilder: overlapping_second_layer.update(overlap) # 合并所有需要的记忆 - if all_first_layer_items: - print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆1: {all_first_layer_items}") - if overlapping_second_layer: - print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆2: {list(overlapping_second_layer)}") + # if all_first_layer_items: + # print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆1: {all_first_layer_items}") + # if overlapping_second_layer: + # print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆2: {list(overlapping_second_layer)}") - all_memories = all_first_layer_items + list(overlapping_second_layer) + # 使用集合去重 + all_memories = list(set(all_first_layer_items) | set(overlapping_second_layer)) + if all_memories: + print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆: {all_memories}") if all_memories: # 只在列表非空时选择随机项 random_item = choice(all_memories) @@ -179,7 +182,11 @@ class PromptBuilder: # prompt += f"{activate_prompt}\n" prompt += f"{prompt_personality}\n" prompt += f"{prompt_ger}\n" - prompt += f"{extra_info}\n" + prompt += f"{extra_info}\n" + + + + '''读空气prompt处理''' activate_prompt_check=f"以上是群里正在进行的聊天,昵称为 '{sender_name}' 的用户说的:{message_txt}。引起了你的注意,你和他{relation_prompt},你想要{relation_prompt_2},但是这不一定是合适的时机,请你决定是否要回应这条消息。" prompt_personality_check = '' diff --git a/src/plugins/chat/topic_identifier.py b/src/plugins/chat/topic_identifier.py index 75593667b..81956ddc1 100644 --- a/src/plugins/chat/topic_identifier.py +++ b/src/plugins/chat/topic_identifier.py @@ -1,14 +1,17 @@ from typing import Optional, Dict, List from openai import OpenAI from .message import Message -from .config import global_config, llm_config import jieba +from nonebot import get_driver + +driver = get_driver() +config = driver.config class TopicIdentifier: def __init__(self): self.client = OpenAI( - api_key=llm_config.SILICONFLOW_API_KEY, - base_url=llm_config.SILICONFLOW_BASE_URL + api_key=config.siliconflow_key, + base_url=config.siliconflow_base_url ) def identify_topic_llm(self, text: str) -> Optional[str]: diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 4e2235805..91018ee08 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -4,11 +4,15 @@ from typing import List from .message import Message import requests import numpy as np -from .config import llm_config, global_config +from .config import global_config import re from typing import Dict from collections import Counter import math +from nonebot import get_driver + +driver = get_driver() +config = driver.config def combine_messages(messages: List[Message]) -> str: @@ -64,7 +68,7 @@ def get_embedding(text): "encoding_format": "float" } headers = { - "Authorization": f"Bearer {llm_config.SILICONFLOW_API_KEY}", + "Authorization": f"Bearer {config.siliconflow_key}", "Content-Type": "application/json" } diff --git a/src/plugins/chat/utils_image.py b/src/plugins/chat/utils_image.py index 097294010..68b2fa7f0 100644 --- a/src/plugins/chat/utils_image.py +++ b/src/plugins/chat/utils_image.py @@ -7,6 +7,10 @@ from ...common.database import Database import zlib # 用于 CRC32 import base64 from .config import global_config +from nonebot import get_driver + +driver = get_driver() +config = driver.config def storage_image(image_data: bytes,type: str, max_size: int = 200) -> bytes: @@ -37,12 +41,12 @@ def storage_compress_image(image_data: bytes, max_size: int = 200) -> bytes: # 连接数据库 db = Database( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") + host= config.mongodb_host, + port= int(config.mongodb_port), + db_name= config.database_name, + username= config.mongodb_username, + password= config.mongodb_password, + auth_source=config.mongodb_auth_source ) # 检查是否已存在相同哈希值的图片 diff --git a/src/plugins/chat/willing_manager.py b/src/plugins/chat/willing_manager.py index 8f3734a4f..e35743577 100644 --- a/src/plugins/chat/willing_manager.py +++ b/src/plugins/chat/willing_manager.py @@ -58,8 +58,8 @@ class WillingManager: if group_id in config.talk_frequency_down_groups: reply_probability = reply_probability / 3.5 - if is_mentioned_bot and user_id == int(964959351): - reply_probability = 1 + # if is_mentioned_bot and user_id == int(1026294844): + # reply_probability = 1 return reply_probability diff --git a/src/plugins/knowledege/knowledge_library.py b/src/plugins/knowledege/knowledge_library.py index cdb591dee..d8c2e1482 100644 --- a/src/plugins/knowledege/knowledge_library.py +++ b/src/plugins/knowledege/knowledge_library.py @@ -3,6 +3,10 @@ import sys import numpy as np import requests import time +from nonebot import get_driver + +driver = get_driver() +config = driver.config # 添加项目根目录到 Python 路径 root_path = os.path.abspath(os.path.join(os.path.dirname(__file__), "../../..")) @@ -13,12 +17,12 @@ from src.plugins.chat.config import llm_config # 直接配置数据库连接信息 Database.initialize( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") + host= config.mongodb_host, + port= int(config.mongodb_port), + db_name= config.database_name, + username= config.mongodb_username, + password= config.mongodb_password, + auth_source=config.mongodb_auth_source ) class KnowledgeLibrary: diff --git a/src/plugins/memory_system/draw_memory.py b/src/plugins/memory_system/draw_memory.py index a24f95a76..6b5dcd716 100644 --- a/src/plugins/memory_system/draw_memory.py +++ b/src/plugins/memory_system/draw_memory.py @@ -168,10 +168,12 @@ def main(): memory_graph.load_graph_from_db() # 展示两种不同的可视化方式 print("\n按连接数量着色的图谱:") - visualize_graph(memory_graph, color_by_memory=False) + # visualize_graph(memory_graph, color_by_memory=False) + visualize_graph_lite(memory_graph, color_by_memory=False) print("\n按记忆数量着色的图谱:") - visualize_graph(memory_graph, color_by_memory=True) + # visualize_graph(memory_graph, color_by_memory=True) + visualize_graph_lite(memory_graph, color_by_memory=True) # memory_graph.save_graph_to_db() @@ -262,7 +264,89 @@ def visualize_graph(memory_graph: Memory_graph, color_by_memory: bool = False): plt.title(title, fontsize=16, fontfamily='SimHei') plt.show() -if __name__ == "__main__": - main() +def visualize_graph_lite(memory_graph: Memory_graph, color_by_memory: bool = False): + # 设置中文字体 + plt.rcParams['font.sans-serif'] = ['SimHei'] # 用来正常显示中文标签 + plt.rcParams['axes.unicode_minus'] = False # 用来正常显示负号 + G = memory_graph.G + + # 创建一个新图用于可视化 + H = G.copy() + + # 移除只有一条记忆的节点和连接数少于3的节点 + nodes_to_remove = [] + for node in H.nodes(): + memory_items = H.nodes[node].get('memory_items', []) + memory_count = len(memory_items) if isinstance(memory_items, list) else (1 if memory_items else 0) + degree = H.degree(node) + if memory_count <= 2 or degree <= 2: + nodes_to_remove.append(node) + + H.remove_nodes_from(nodes_to_remove) + + # 如果过滤后没有节点,则返回 + if len(H.nodes()) == 0: + print("过滤后没有符合条件的节点可显示") + return + + # 保存图到本地 + nx.write_gml(H, "memory_graph.gml") # 保存为 GML 格式 + + # 根据连接条数或记忆数量设置节点颜色 + node_colors = [] + nodes = list(H.nodes()) # 获取图中实际的节点列表 + + if color_by_memory: + # 计算每个节点的记忆数量 + memory_counts = [] + for node in nodes: + memory_items = H.nodes[node].get('memory_items', []) + if isinstance(memory_items, list): + count = len(memory_items) + else: + count = 1 if memory_items else 0 + memory_counts.append(count) + max_memories = max(memory_counts) if memory_counts else 1 + + for count in memory_counts: + # 使用不同的颜色方案:红色表示记忆多,蓝色表示记忆少 + if max_memories > 0: + intensity = min(1.0, count / max_memories) + color = (intensity, 0, 1.0 - intensity) # 从蓝色渐变到红色 + else: + color = (0, 0, 1) # 如果没有记忆,则为蓝色 + node_colors.append(color) + else: + # 使用原来的连接数量着色方案 + max_degree = max(H.degree(), key=lambda x: x[1])[1] if H.degree() else 1 + for node in nodes: + degree = H.degree(node) + if max_degree > 0: + red = min(1.0, degree / max_degree) + blue = 1.0 - red + color = (red, 0, blue) + else: + color = (0, 0, 1) + node_colors.append(color) + + # 绘制图形 + plt.figure(figsize=(12, 8)) + pos = nx.spring_layout(H, k=1, iterations=50) + nx.draw(H, pos, + with_labels=True, + node_color=node_colors, + node_size=2000, + font_size=10, + font_family='SimHei', + font_weight='bold') + + title = '记忆图谱可视化 - ' + ('按记忆数量着色' if color_by_memory else '按连接数量着色') + plt.title(title, fontsize=16, fontfamily='SimHei') + plt.show() + + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/src/plugins/memory_system/llm_module.py b/src/plugins/memory_system/llm_module.py index 4c9174dac..bd7f60dc3 100644 --- a/src/plugins/memory_system/llm_module.py +++ b/src/plugins/memory_system/llm_module.py @@ -2,14 +2,18 @@ import os import requests from typing import Tuple, Union import time +from nonebot import get_driver + +driver = get_driver() +config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs): self.model_name = model_name self.params = kwargs - self.api_key = os.getenv("SILICONFLOW_KEY") - self.base_url = os.getenv("SILICONFLOW_BASE_URL") + self.api_key = config.siliconflow_key + self.base_url = config.siliconflow_base_url def generate_response(self, prompt: str) -> Tuple[str, str]: """根据输入的提示生成模型的响应""" diff --git a/src/plugins/memory_system/llm_module_memory_make.py b/src/plugins/memory_system/llm_module_memory_make.py index 07cecae9d..04ab6dbc6 100644 --- a/src/plugins/memory_system/llm_module_memory_make.py +++ b/src/plugins/memory_system/llm_module_memory_make.py @@ -3,14 +3,18 @@ import requests from typing import Tuple, Union import time from ..chat.config import BotConfig +from nonebot import get_driver + +driver = get_driver() +config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs): self.model_name = model_name self.params = kwargs - self.api_key = os.getenv("SILICONFLOW_KEY") - self.base_url = os.getenv("SILICONFLOW_BASE_URL") + self.api_key = config.siliconflow_key + self.base_url = config.siliconflow_base_url if not self.api_key or not self.base_url: raise ValueError("环境变量未正确加载:SILICONFLOW_KEY 或 SILICONFLOW_BASE_URL 未设置") diff --git a/src/plugins/memory_system/memory.py b/src/plugins/memory_system/memory.py index 4deb28d63..f2b162afb 100644 --- a/src/plugins/memory_system/memory.py +++ b/src/plugins/memory_system/memory.py @@ -198,8 +198,6 @@ class Hippocampus: time_frequency = {'near':1,'mid':2,'far':2} memory_sample = self.get_memory_sample(chat_size,time_frequency) # print(f"\033[1;32m[记忆构建]\033[0m 获取记忆样本: {memory_sample}") - - for i, input_text in enumerate(memory_sample, 1): #加载进度可视化 progress = (i / len(memory_sample)) * 100 @@ -207,24 +205,25 @@ class Hippocampus: filled_length = int(bar_length * i // len(memory_sample)) bar = '█' * filled_length + '-' * (bar_length - filled_length) print(f"\n进度: [{bar}] {progress:.1f}% ({i}/{len(memory_sample)})") - - # 生成压缩后记忆 - first_memory = set() - first_memory = self.memory_compress(input_text, 2.5) - # 延时防止访问超频 - # time.sleep(5) - #将记忆加入到图谱中 - for topic, memory in first_memory: - topics = segment_text(topic) - print(f"\033[1;34m话题\033[0m: {topic},节点: {topics}, 记忆: {memory}") - for split_topic in topics: - self.memory_graph.add_dot(split_topic,memory) - for split_topic in topics: - for other_split_topic in topics: - if split_topic != other_split_topic: - self.memory_graph.connect_dot(split_topic, other_split_topic) - - self.memory_graph.save_graph_to_db() + if input_text: + # 生成压缩后记忆 + first_memory = set() + first_memory = self.memory_compress(input_text, 2.5) + # 延时防止访问超频 + # time.sleep(5) + #将记忆加入到图谱中 + for topic, memory in first_memory: + topics = segment_text(topic) + print(f"\033[1;34m话题\033[0m: {topic},节点: {topics}, 记忆: {memory}") + for split_topic in topics: + self.memory_graph.add_dot(split_topic,memory) + for split_topic in topics: + for other_split_topic in topics: + if split_topic != other_split_topic: + self.memory_graph.connect_dot(split_topic, other_split_topic) + else: + print(f"空消息 跳过") + self.memory_graph.save_graph_to_db() def memory_compress(self, input_text, rate=1): information_content = calculate_information_content(input_text) @@ -260,16 +259,19 @@ def topic_what(text, topic): return prompt - +from nonebot import get_driver +driver = get_driver() +config = driver.config + start_time = time.time() Database.initialize( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") + host= config.mongodb_host, + port= int(config.mongodb_port), + db_name= config.database_name, + username= config.mongodb_username, + password= config.mongodb_password, + auth_source=config.mongodb_auth_source ) #创建记忆图 memory_graph = Memory_graph() diff --git a/src/plugins/memory_system/memory_make.py b/src/plugins/memory_system/memory_make.py index 0c1c0d219..7fb8af15a 100644 --- a/src/plugins/memory_system/memory_make.py +++ b/src/plugins/memory_system/memory_make.py @@ -13,7 +13,38 @@ import os sys.path.append("C:/GitHub/MaiMBot") # 添加项目根目录到 Python 路径 from src.common.database import Database # 使用正确的导入语法 from src.plugins.memory_system.llm_module import LLMModel - + +def calculate_information_content(text): + """计算文本的信息量(熵)""" + # 统计字符频率 + char_count = Counter(text) + total_chars = len(text) + + # 计算熵 + entropy = 0 + for count in char_count.values(): + probability = count / total_chars + entropy -= probability * math.log2(probability) + + return entropy + +def get_cloest_chat_from_db(db, length: int, timestamp: str): + """从数据库中获取最接近指定时间戳的聊天记录""" + chat_text = '' + closest_record = db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) + + if closest_record: + closest_time = closest_record['time'] + group_id = closest_record['group_id'] # 获取groupid + # 获取该时间戳之后的length条消息,且groupid相同 + chat_record = list(db.db.messages.find({"time": {"$gt": closest_time}, "group_id": group_id}).sort('time', 1).limit(length)) + for record in chat_record: + time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(record['time']))) + chat_text += f'[{time_str}] {record["user_nickname"] or "用户" + str(record["user_id"])}: {record["processed_plain_text"]}\n' + return chat_text + + return '' + class Memory_graph: def __init__(self): self.G = nx.Graph() # 使用 networkx 的图结构 @@ -102,7 +133,8 @@ class Memory_graph: # 从数据库中根据时间戳获取离其最近的聊天记录 chat_text = '' closest_record = self.db.db.messages.find_one({"time": {"$lte": timestamp}}, sort=[('time', -1)]) # 调试输出 - print(f"距离time最近的消息时间: {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(closest_record['time'])))}") + + # print(f"距离time最近的消息时间: {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(closest_record['time'])))}") if closest_record: closest_time = closest_record['time'] @@ -110,8 +142,9 @@ class Memory_graph: # 获取该时间戳之后的length条消息,且groupid相同 chat_record = list(self.db.db.messages.find({"time": {"$gt": closest_time}, "group_id": group_id}).sort('time', 1).limit(length)) for record in chat_record: - time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(record['time']))) - chat_text += f'[{time_str}] {record["user_nickname"] or "用户" + str(record["user_id"])}: {record["processed_plain_text"]}\n' # 添加发送者和时间信息 + if record: + time_str = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(record['time']))) + chat_text += f'[{time_str}] {record["user_nickname"] or "用户" + str(record["user_id"])}: {record["processed_plain_text"]}\n' # 添加发送者和时间信息 return chat_text return [] # 如果没有找到记录,返回空列表 @@ -187,155 +220,80 @@ class Memory_graph: for edge in edges: self.G.add_edge(edge['source'], edge['target'], num=edge.get('num', 1)) -def calculate_information_content(text): - - """计算文本的信息量(熵)""" - # 统计字符频率 - char_count = Counter(text) - total_chars = len(text) - - # 计算熵 - entropy = 0 - for count in char_count.values(): - probability = count / total_chars - entropy -= probability * math.log2(probability) - - return entropy - - -# Database.initialize( -# global_config.MONGODB_HOST, -# global_config.MONGODB_PORT, -# global_config.DATABASE_NAME -# ) -# memory_graph = Memory_graph() - -# llm_model = LLMModel() -# llm_model_small = LLMModel(model_name="deepseek-ai/DeepSeek-V2.5") - -# memory_graph.load_graph_from_db() - - - -def main(): - # 初始化数据库 - Database.initialize( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") - ) - - memory_graph = Memory_graph() - # 创建LLM模型实例 - llm_model = LLMModel() - llm_model_small = LLMModel(model_name="deepseek-ai/DeepSeek-V2.5") - - # 使用当前时间戳进行测试 - current_timestamp = datetime.datetime.now().timestamp() - chat_text = [] - - chat_size =25 - - for _ in range(30): # 循环10次 - random_time = current_timestamp - random.randint(1, 3600*10) # 随机时间 - print(f"随机时间戳对应的时间: {time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(random_time))}") - chat_ = memory_graph.get_random_chat_from_db(chat_size, random_time) - chat_text.append(chat_) # 拼接所有text - # time.sleep(1) - - - - for i, input_text in enumerate(chat_text, 1): +# 海马体 +class Hippocampus: + def __init__(self,memory_graph:Memory_graph): + self.memory_graph = memory_graph + self.llm_model = LLMModel() + self.llm_model_small = LLMModel(model_name="deepseek-ai/DeepSeek-V2.5") - progress = (i / len(chat_text)) * 100 - bar_length = 30 - filled_length = int(bar_length * i // len(chat_text)) - bar = '█' * filled_length + '-' * (bar_length - filled_length) - print(f"\n进度: [{bar}] {progress:.1f}% ({i}/{len(chat_text)})") + def get_memory_sample(self,chat_size=20,time_frequency:dict={'near':2,'mid':4,'far':3}): + current_timestamp = datetime.datetime.now().timestamp() + chat_text = [] + #短期:1h 中期:4h 长期:24h + for _ in range(time_frequency.get('near')): # 循环10次 + random_time = current_timestamp - random.randint(1, 3600) # 随机时间 + chat_ = get_cloest_chat_from_db(db=self.memory_graph.db, length=chat_size, timestamp=random_time) + chat_text.append(chat_) + for _ in range(time_frequency.get('mid')): # 循环10次 + random_time = current_timestamp - random.randint(3600, 3600*4) # 随机时间 + chat_ = get_cloest_chat_from_db(db=self.memory_graph.db, length=chat_size, timestamp=random_time) + chat_text.append(chat_) + for _ in range(time_frequency.get('far')): # 循环10次 + random_time = current_timestamp - random.randint(3600*4, 3600*24) # 随机时间 + chat_ = get_cloest_chat_from_db(db=self.memory_graph.db, length=chat_size, timestamp=random_time) + chat_text.append(chat_) + return chat_text + + def build_memory(self,chat_size=12): + #最近消息获取频率 + time_frequency = {'near':1,'mid':2,'far':2} + memory_sample = self.get_memory_sample(chat_size,time_frequency) - # print(input_text) - first_memory = set() - first_memory = memory_compress(input_text, llm_model_small, llm_model_small, rate=2.5) - # time.sleep(5) - - #将记忆加入到图谱中 - for topic, memory in first_memory: - topics = segment_text(topic) - print(f"\033[1;34m话题\033[0m: {topic},节点: {topics}, 记忆: {memory}") - for split_topic in topics: - memory_graph.add_dot(split_topic,memory) - for split_topic in topics: - for other_split_topic in topics: - if split_topic != other_split_topic: - memory_graph.connect_dot(split_topic, other_split_topic) - - # memory_graph.store_memory() - - # 展示两种不同的可视化方式 - print("\n按连接数量着色的图谱:") - visualize_graph(memory_graph, color_by_memory=False) - - print("\n按记忆数量着色的图谱:") - visualize_graph(memory_graph, color_by_memory=True) - - memory_graph.save_graph_to_db() - # memory_graph.load_graph_from_db() - - while True: - query = input("请输入新的查询概念(输入'退出'以结束):") - if query.lower() == '退出': - break - items_list = memory_graph.get_related_item(query) - if items_list: - # print(items_list) - for memory_item in items_list: - print(memory_item) - else: - print("未找到相关记忆。") + #加载进度可视化 + for i, input_text in enumerate(memory_sample, 1): + progress = (i / len(memory_sample)) * 100 + bar_length = 30 + filled_length = int(bar_length * i // len(memory_sample)) + bar = '█' * filled_length + '-' * (bar_length - filled_length) + print(f"\n进度: [{bar}] {progress:.1f}% ({i}/{len(memory_sample)})") + # print(f"第{i}条消息: {input_text}") + if input_text: + # 生成压缩后记忆 + first_memory = set() + first_memory = self.memory_compress(input_text, 2.5) + #将记忆加入到图谱中 + for topic, memory in first_memory: + topics = segment_text(topic) + print(f"\033[1;34m话题\033[0m: {topic},节点: {topics}, 记忆: {memory}") + for split_topic in topics: + self.memory_graph.add_dot(split_topic,memory) + for split_topic in topics: + for other_split_topic in topics: + if split_topic != other_split_topic: + self.memory_graph.connect_dot(split_topic, other_split_topic) + else: + print(f"空消息 跳过") - while True: - query = input("请输入问题:") - - if query.lower() == '退出': - break - - topic_prompt = find_topic(query, 3) - topic_response = llm_model.generate_response(topic_prompt) + self.memory_graph.save_graph_to_db() + + def memory_compress(self, input_text, rate=1): + information_content = calculate_information_content(input_text) + print(f"文本的信息量(熵): {information_content:.4f} bits") + topic_num = max(1, min(5, int(information_content * rate / 4))) + topic_prompt = find_topic(input_text, topic_num) + topic_response = self.llm_model.generate_response(topic_prompt) # 检查 topic_response 是否为元组 if isinstance(topic_response, tuple): topics = topic_response[0].split(",") # 假设第一个元素是我们需要的字符串 else: topics = topic_response.split(",") - print(topics) - - for keyword in topics: - items_list = memory_graph.get_related_item(keyword) - if items_list: - print(items_list) - -def memory_compress(input_text, llm_model, llm_model_small, rate=1): - information_content = calculate_information_content(input_text) - print(f"文本的信息量(熵): {information_content:.4f} bits") - topic_num = max(1, min(5, int(information_content * rate / 4))) - print(topic_num) - topic_prompt = find_topic(input_text, topic_num) - topic_response = llm_model.generate_response(topic_prompt) - # 检查 topic_response 是否为元组 - if isinstance(topic_response, tuple): - topics = topic_response[0].split(",") # 假设第一个元素是我们需要的字符串 - else: - topics = topic_response.split(",") - print(topics) - compressed_memory = set() - for topic in topics: - topic_what_prompt = topic_what(input_text,topic) - topic_what_response = llm_model_small.generate_response(topic_what_prompt) - compressed_memory.add((topic.strip(), topic_what_response[0])) # 将话题和记忆作为元组存储 - return compressed_memory - + compressed_memory = set() + for topic in topics: + topic_what_prompt = topic_what(input_text,topic) + topic_what_response = self.llm_model_small.generate_response(topic_what_prompt) + compressed_memory.add((topic.strip(), topic_what_response[0])) # 将话题和记忆作为元组存储 + return compressed_memory def segment_text(text): seg_text = list(jieba.cut(text)) @@ -356,18 +314,37 @@ def visualize_graph(memory_graph: Memory_graph, color_by_memory: bool = False): G = memory_graph.G + # 创建一个新图用于可视化 + H = G.copy() + + # 移除只有一条记忆的节点和连接数少于3的节点 + nodes_to_remove = [] + for node in H.nodes(): + memory_items = H.nodes[node].get('memory_items', []) + memory_count = len(memory_items) if isinstance(memory_items, list) else (1 if memory_items else 0) + degree = H.degree(node) + if memory_count <= 1 or degree <= 2: + nodes_to_remove.append(node) + + H.remove_nodes_from(nodes_to_remove) + + # 如果过滤后没有节点,则返回 + if len(H.nodes()) == 0: + print("过滤后没有符合条件的节点可显示") + return + # 保存图到本地 - nx.write_gml(G, "memory_graph.gml") # 保存为 GML 格式 + nx.write_gml(H, "memory_graph.gml") # 保存为 GML 格式 # 根据连接条数或记忆数量设置节点颜色 node_colors = [] - nodes = list(G.nodes()) # 获取图中实际的节点列表 + nodes = list(H.nodes()) # 获取图中实际的节点列表 if color_by_memory: # 计算每个节点的记忆数量 memory_counts = [] for node in nodes: - memory_items = G.nodes[node].get('memory_items', []) + memory_items = H.nodes[node].get('memory_items', []) if isinstance(memory_items, list): count = len(memory_items) else: @@ -385,9 +362,9 @@ def visualize_graph(memory_graph: Memory_graph, color_by_memory: bool = False): node_colors.append(color) else: # 使用原来的连接数量着色方案 - max_degree = max(G.degree(), key=lambda x: x[1])[1] if G.degree() else 1 + max_degree = max(H.degree(), key=lambda x: x[1])[1] if H.degree() else 1 for node in nodes: - degree = G.degree(node) + degree = H.degree(node) if max_degree > 0: red = min(1.0, degree / max_degree) blue = 1.0 - red @@ -398,8 +375,8 @@ def visualize_graph(memory_graph: Memory_graph, color_by_memory: bool = False): # 绘制图形 plt.figure(figsize=(12, 8)) - pos = nx.spring_layout(G, k=1, iterations=50) - nx.draw(G, pos, + pos = nx.spring_layout(H, k=1, iterations=50) + nx.draw(H, pos, with_labels=True, node_color=node_colors, node_size=2000, @@ -411,6 +388,71 @@ def visualize_graph(memory_graph: Memory_graph, color_by_memory: bool = False): plt.title(title, fontsize=16, fontfamily='SimHei') plt.show() +def main(): + # 初始化数据库 + Database.initialize( + host= os.getenv("MONGODB_HOST"), + port= int(os.getenv("MONGODB_PORT")), + db_name= os.getenv("DATABASE_NAME"), + username= os.getenv("MONGODB_USERNAME"), + password= os.getenv("MONGODB_PASSWORD"), + auth_source=os.getenv("MONGODB_AUTH_SOURCE") + ) + + start_time = time.time() + + # 创建记忆图 + memory_graph = Memory_graph() + # 加载数据库中存储的记忆图 + memory_graph.load_graph_from_db() + # 创建海马体 + hippocampus = Hippocampus(memory_graph) + + end_time = time.time() + print(f"\033[32m[加载海马体耗时: {end_time - start_time:.2f} 秒]\033[0m") + + # 构建记忆 + hippocampus.build_memory(chat_size=25) + + # 展示两种不同的可视化方式 + print("\n按连接数量着色的图谱:") + visualize_graph(memory_graph, color_by_memory=False) + + print("\n按记忆数量着色的图谱:") + visualize_graph(memory_graph, color_by_memory=True) + + # 交互式查询 + while True: + query = input("请输入新的查询概念(输入'退出'以结束):") + if query.lower() == '退出': + break + items_list = memory_graph.get_related_item(query) + if items_list: + for memory_item in items_list: + print(memory_item) + else: + print("未找到相关记忆。") + + while True: + query = input("请输入问题:") + + if query.lower() == '退出': + break + + topic_prompt = find_topic(query, 3) + topic_response = hippocampus.llm_model.generate_response(topic_prompt) + # 检查 topic_response 是否为元组 + if isinstance(topic_response, tuple): + topics = topic_response[0].split(",") # 假设第一个元素是我们需要的字符串 + else: + topics = topic_response.split(",") + print(topics) + + for keyword in topics: + items_list = memory_graph.get_related_item(keyword) + if items_list: + print(items_list) + if __name__ == "__main__": main() diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index 097a89de8..a33c4b279 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -4,14 +4,19 @@ from typing import List, Dict from .schedule_llm_module import LLMModel from ...common.database import Database # 使用正确的导入语法 from ..chat.config import global_config +from nonebot import get_driver + +driver = get_driver() +config = driver.config + Database.initialize( - host= os.getenv("MONGODB_HOST"), - port= int(os.getenv("MONGODB_PORT")), - db_name= os.getenv("DATABASE_NAME"), - username= os.getenv("MONGODB_USERNAME"), - password= os.getenv("MONGODB_PASSWORD"), - auth_source=os.getenv("MONGODB_AUTH_SOURCE") + host= config.mongodb_host, + port= int(config.mongodb_port), + db_name= config.database_name, + username= config.mongodb_username, + password= config.mongodb_password, + auth_source=config.mongodb_auth_source ) class ScheduleGenerator: diff --git a/src/plugins/schedule/schedule_llm_module.py b/src/plugins/schedule/schedule_llm_module.py index ebf039c7e..408e7d546 100644 --- a/src/plugins/schedule/schedule_llm_module.py +++ b/src/plugins/schedule/schedule_llm_module.py @@ -1,20 +1,24 @@ import os import requests from typing import Tuple, Union +from nonebot import get_driver + +driver = get_driver() +config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-R1",api_using=None, **kwargs): if api_using == "deepseek": - self.api_key = os.getenv("DEEP_SEEK_KEY") - self.base_url = os.getenv("DEEP_SEEK_BASE_URL") + self.api_key = config.deep_seek_key + self.base_url = config.deep_seek_base_url if model_name != "Pro/deepseek-ai/DeepSeek-R1": self.model_name = model_name else: self.model_name = "deepseek-reasoner" else: - self.api_key = os.getenv("SILICONFLOW_KEY") - self.base_url = os.getenv("SILICONFLOW_BASE_URL") + self.api_key = config.siliconflow_key + self.base_url = config.siliconflow_base_url self.model_name = model_name self.params = kwargs From 10c3f907209c5c0ff6d7faf18d2434f16f6064d5 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 15:04:23 +0800 Subject: [PATCH 03/26] Update README.md --- README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1310d4879..00afd83e8 100644 --- a/README.md +++ b/README.md @@ -75,8 +75,9 @@ NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart - 在Napcat的网络设置中添加ws反向代理:ws://localhost:8080/onebot/v11/ws 4. **配置文件设置** - - 将.env文件打开,填上你的apikey(硅基流动或deepseekapi) - - 将bot_config.toml文件打开,并填写相关内容,不然无法正常运行 + - 修改.env的 变量值为 prod + - 将.env.prod文件打开,填上你的apikey(硅基流动或deepseekapi) + - 将bot_config_toml改名为bot_config.toml,打开并填写相关内容,不然无法正常运行 #### .env 文件配置说明 ```ini From b98314da4fca0181a53049c406fb409a72a3d893 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 18:36:36 +0800 Subject: [PATCH 04/26] =?UTF-8?q?v0.3.3=20=E5=BC=82=E6=AD=A5=E5=A4=84?= =?UTF-8?q?=E7=90=86=E8=AE=B0=E5=BF=86=EF=BC=8C=E4=BF=AE=E5=A4=8D=E4=BA=86?= =?UTF-8?q?GUI?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/gui/reasoning_gui.py | 34 ++++++++++++-- src/plugins/chat/__init__.py | 2 +- src/plugins/chat/config.py | 1 + src/plugins/chat/prompt_builder.py | 11 +++-- src/plugins/memory_system/llm_module.py | 42 +++++++++--------- .../memory_system/llm_module_memory_make.py | 40 +++++++++-------- src/plugins/memory_system/memory.py | 44 +++++++++---------- src/plugins/schedule/schedule_llm_module.py | 26 ++++++----- 8 files changed, 116 insertions(+), 84 deletions(-) diff --git a/src/gui/reasoning_gui.py b/src/gui/reasoning_gui.py index f12b59798..61fb34560 100644 --- a/src/gui/reasoning_gui.py +++ b/src/gui/reasoning_gui.py @@ -7,6 +7,23 @@ import threading import queue import sys import os +from dotenv import load_dotenv + +# 获取当前文件的目录 +current_dir = os.path.dirname(os.path.abspath(__file__)) +# 获取项目根目录 +root_dir = os.path.abspath(os.path.join(current_dir, '..', '..')) + +# 加载环境变量 +if os.path.exists(os.path.join(root_dir, '.env.dev')): + load_dotenv(os.path.join(root_dir, '.env.dev')) + print("成功加载开发环境配置") +elif os.path.exists(os.path.join(root_dir, '.env.prod')): + load_dotenv(os.path.join(root_dir, '.env.prod')) + print("成功加载生产环境配置") +else: + print("未找到环境配置文件") + sys.exit(1) from pymongo import MongoClient from typing import Optional @@ -14,14 +31,23 @@ from typing import Optional class Database: _instance: Optional["Database"] = None - def __init__(self, host: str, port: int, db_name: str): - self.client = MongoClient(host, port) + def __init__(self, host: str, port: int, db_name: str, username: str = None, password: str = None, auth_source: str = None): + if username and password: + self.client = MongoClient( + host=host, + port=port, + username=username, + password=password, + authSource=auth_source or 'admin' + ) + else: + self.client = MongoClient(host, port) self.db = self.client[db_name] @classmethod - def initialize(cls, host: str, port: int, db_name: str) -> "Database": + def initialize(cls, host: str, port: int, db_name: str, username: str = None, password: str = None, auth_source: str = None) -> "Database": if cls._instance is None: - cls._instance = cls(host, port, db_name) + cls._instance = cls(host, port, db_name, username, password, auth_source) return cls._instance @classmethod diff --git a/src/plugins/chat/__init__.py b/src/plugins/chat/__init__.py index 0f81d30d6..3fdcec922 100644 --- a/src/plugins/chat/__init__.py +++ b/src/plugins/chat/__init__.py @@ -90,7 +90,7 @@ async def monitor_relationships(): async def build_memory_task(): """每30秒执行一次记忆构建""" print("\033[1;32m[记忆构建]\033[0m 开始构建记忆...") - hippocampus.build_memory(chat_size=12) + await hippocampus.build_memory(chat_size=30) print("\033[1;32m[记忆构建]\033[0m 记忆构建完成") diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index 0232219f8..dc7c14203 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -136,3 +136,4 @@ llm_config.DEEP_SEEK_BASE_URL = config.deep_seek_base_url if not global_config.enable_advance_output: # logger.remove() pass + diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index ba0e9b4cc..01fe3e82d 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -72,12 +72,15 @@ class PromptBuilder: # print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆2: {list(overlapping_second_layer)}") # 使用集合去重 - all_memories = list(set(all_first_layer_items) | set(overlapping_second_layer)) + # 从每个来源随机选择2条记忆(如果有的话) + selected_first_layer = random.sample(all_first_layer_items, min(2, len(all_first_layer_items))) if all_first_layer_items else [] + selected_second_layer = random.sample(list(overlapping_second_layer), min(2, len(overlapping_second_layer))) if overlapping_second_layer else [] + + # 合并并去重 + all_memories = list(set(selected_first_layer + selected_second_layer)) if all_memories: print(f"\033[1;32m[前额叶]\033[0m 合并所有需要的记忆: {all_memories}") - - if all_memories: # 只在列表非空时选择随机项 - random_item = choice(all_memories) + random_item = " ".join(all_memories) memory_prompt = f"看到这些聊天,你想起来{random_item}\n" else: memory_prompt = "" # 如果没有记忆,则返回空字符串 diff --git a/src/plugins/memory_system/llm_module.py b/src/plugins/memory_system/llm_module.py index bd7f60dc3..34e4e4af1 100644 --- a/src/plugins/memory_system/llm_module.py +++ b/src/plugins/memory_system/llm_module.py @@ -3,6 +3,8 @@ import requests from typing import Tuple, Union import time from nonebot import get_driver +import aiohttp +import asyncio driver = get_driver() config = driver.config @@ -15,7 +17,7 @@ class LLMModel: self.api_key = config.siliconflow_key self.base_url = config.siliconflow_base_url - def generate_response(self, prompt: str) -> Tuple[str, str]: + async def generate_response(self, prompt: str) -> Tuple[str, str]: """根据输入的提示生成模型的响应""" headers = { "Authorization": f"Bearer {self.api_key}", @@ -34,32 +36,32 @@ class LLMModel: api_url = f"{self.base_url.rstrip('/')}/chat/completions" max_retries = 3 - base_wait_time = 15 # 基础等待时间(秒) + base_wait_time = 15 for retry in range(max_retries): try: - response = requests.post(api_url, headers=headers, json=data) + async with aiohttp.ClientSession() as session: + async with session.post(api_url, headers=headers, json=data) as response: + if response.status == 429: + wait_time = base_wait_time * (2 ** retry) # 指数退避 + print(f"遇到请求限制(429),等待{wait_time}秒后重试...") + await asyncio.sleep(wait_time) + continue + + response.raise_for_status() # 检查其他响应状态 + + result = await response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content + return "没有返回结果", "" - if response.status_code == 429: - wait_time = base_wait_time * (2 ** retry) # 指数退避 - print(f"遇到请求限制(429),等待{wait_time}秒后重试...") - time.sleep(wait_time) - continue - - response.raise_for_status() # 检查其他响应状态 - - result = response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content - return "没有返回结果", "" - - except requests.exceptions.RequestException as e: + except Exception as e: if retry < max_retries - 1: # 如果还有重试机会 wait_time = base_wait_time * (2 ** retry) print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") - time.sleep(wait_time) + await asyncio.sleep(wait_time) else: return f"请求失败: {str(e)}", "" diff --git a/src/plugins/memory_system/llm_module_memory_make.py b/src/plugins/memory_system/llm_module_memory_make.py index 04ab6dbc6..5b01a2917 100644 --- a/src/plugins/memory_system/llm_module_memory_make.py +++ b/src/plugins/memory_system/llm_module_memory_make.py @@ -4,6 +4,8 @@ from typing import Tuple, Union import time from ..chat.config import BotConfig from nonebot import get_driver +import aiohttp +import asyncio driver = get_driver() config = driver.config @@ -21,7 +23,7 @@ class LLMModel: print(f"API URL: {self.base_url}") # 打印 base_url 用于调试 - def generate_response(self, prompt: str) -> Tuple[str, str]: + async def generate_response(self, prompt: str) -> Tuple[str, str]: """根据输入的提示生成模型的响应""" headers = { "Authorization": f"Bearer {self.api_key}", @@ -44,28 +46,28 @@ class LLMModel: for retry in range(max_retries): try: - response = requests.post(api_url, headers=headers, json=data) + async with aiohttp.ClientSession() as session: + async with session.post(api_url, headers=headers, json=data) as response: + if response.status == 429: + wait_time = base_wait_time * (2 ** retry) # 指数退避 + print(f"遇到请求限制(429),等待{wait_time}秒后重试...") + await asyncio.sleep(wait_time) + continue + + response.raise_for_status() # 检查其他响应状态 + + result = await response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content + return "没有返回结果", "" - if response.status_code == 429: - wait_time = base_wait_time * (2 ** retry) # 指数退避 - print(f"遇到请求限制(429),等待{wait_time}秒后重试...") - time.sleep(wait_time) - continue - - response.raise_for_status() # 检查其他响应状态 - - result = response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content - return "没有返回结果", "" - - except requests.exceptions.RequestException as e: + except Exception as e: if retry < max_retries - 1: # 如果还有重试机会 wait_time = base_wait_time * (2 ** retry) print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") - time.sleep(wait_time) + await asyncio.sleep(wait_time) else: return f"请求失败: {str(e)}", "" diff --git a/src/plugins/memory_system/memory.py b/src/plugins/memory_system/memory.py index f2b162afb..cab41f903 100644 --- a/src/plugins/memory_system/memory.py +++ b/src/plugins/memory_system/memory.py @@ -193,7 +193,25 @@ class Hippocampus: chat_text.append(chat_) return chat_text - def build_memory(self,chat_size=12): + async def memory_compress(self, input_text, rate=1): + information_content = calculate_information_content(input_text) + print(f"文本的信息量(熵): {information_content:.4f} bits") + topic_num = max(1, min(5, int(information_content * rate / 4))) + topic_prompt = find_topic(input_text, topic_num) + topic_response = await self.llm_model.generate_response(topic_prompt) + # 检查 topic_response 是否为元组 + if isinstance(topic_response, tuple): + topics = topic_response[0].split(",") # 假设第一个元素是我们需要的字符串 + else: + topics = topic_response.split(",") + compressed_memory = set() + for topic in topics: + topic_what_prompt = topic_what(input_text,topic) + topic_what_response = await self.llm_model_small.generate_response(topic_what_prompt) + compressed_memory.add((topic.strip(), topic_what_response[0])) # 将话题和记忆作为元组存储 + return compressed_memory + + async def build_memory(self,chat_size=12): #最近消息获取频率 time_frequency = {'near':1,'mid':2,'far':2} memory_sample = self.get_memory_sample(chat_size,time_frequency) @@ -208,9 +226,7 @@ class Hippocampus: if input_text: # 生成压缩后记忆 first_memory = set() - first_memory = self.memory_compress(input_text, 2.5) - # 延时防止访问超频 - # time.sleep(5) + first_memory = await self.memory_compress(input_text, 2.5) #将记忆加入到图谱中 for topic, memory in first_memory: topics = segment_text(topic) @@ -224,26 +240,6 @@ class Hippocampus: else: print(f"空消息 跳过") self.memory_graph.save_graph_to_db() - - def memory_compress(self, input_text, rate=1): - information_content = calculate_information_content(input_text) - print(f"文本的信息量(熵): {information_content:.4f} bits") - topic_num = max(1, min(5, int(information_content * rate / 4))) - # print(topic_num) - topic_prompt = find_topic(input_text, topic_num) - topic_response = self.llm_model.generate_response(topic_prompt) - # 检查 topic_response 是否为元组 - if isinstance(topic_response, tuple): - topics = topic_response[0].split(",") # 假设第一个元素是我们需要的字符串 - else: - topics = topic_response.split(",") - # print(topics) - compressed_memory = set() - for topic in topics: - topic_what_prompt = topic_what(input_text,topic) - topic_what_response = self.llm_model_small.generate_response(topic_what_prompt) - compressed_memory.add((topic.strip(), topic_what_response[0])) # 将话题和记忆作为元组存储 - return compressed_memory def segment_text(text): diff --git a/src/plugins/schedule/schedule_llm_module.py b/src/plugins/schedule/schedule_llm_module.py index 408e7d546..cf88a8653 100644 --- a/src/plugins/schedule/schedule_llm_module.py +++ b/src/plugins/schedule/schedule_llm_module.py @@ -1,5 +1,6 @@ import os import requests +import aiohttp from typing import Tuple, Union from nonebot import get_driver @@ -22,7 +23,7 @@ class LLMModel: self.model_name = model_name self.params = kwargs - def generate_response(self, prompt: str) -> Tuple[str, str]: + async def generate_response(self, prompt: str) -> Tuple[str, str]: """根据输入的提示生成模型的响应""" headers = { "Authorization": f"Bearer {self.api_key}", @@ -41,17 +42,18 @@ class LLMModel: api_url = f"{self.base_url.rstrip('/')}/chat/completions" try: - response = requests.post(api_url, headers=headers, json=data) - response.raise_for_status() # 检查响应状态 - - result = response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content # 返回内容和推理内容 - return "没有返回结果", "" # 返回两个值 - - except requests.exceptions.RequestException as e: + async with aiohttp.ClientSession() as session: + async with session.post(api_url, headers=headers, json=data) as response: + response.raise_for_status() # 检查响应状态 + + result = await response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content # 返回内容和推理内容 + return "没有返回结果", "" # 返回两个值 + + except Exception as e: return f"请求失败: {str(e)}", "" # 返回错误信息和空字符串 # 示例用法 From a7e6bc14dc9a71ad7eaea0eaae9b950f5d2919cd Mon Sep 17 00:00:00 2001 From: NepPure Date: Sun, 2 Mar 2025 19:17:05 +0800 Subject: [PATCH 05/26] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=8E=AF=E5=A2=83?= =?UTF-8?q?=E5=8F=98=E9=87=8F=E4=BD=8D=E7=BD=AE=E5=B9=B6=E6=8C=82=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 +-- docker-compose.yml | 7 ++++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Dockerfile b/Dockerfile index 111466ff3..6a7aa09c0 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,7 @@ FROM nonebot/nb-cli:latest WORKDIR / COPY . /MaiMBot/ WORKDIR /MaiMBot -RUN mv config/env.example config/.env \ -&& mv config/bot_config_toml config/bot_config.toml +RUN mv config/bot_config_toml config/bot_config.toml RUN pip install --upgrade -r requirements.txt VOLUME [ "/MaiMBot/config" ] EXPOSE 8080 diff --git a/docker-compose.yml b/docker-compose.yml index 4c136b284..cfe787c04 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -27,7 +27,7 @@ services: - mongodb:/data/db - mongodbCONFIG:/data/configdb image: mongo:latest - + maimbot: container_name: maimbot environment: @@ -41,8 +41,8 @@ services: volumes: - maimbotCONFIG:/MaiMBot/config - maimbotDATA:/MaiMBot/data + - ./.env.prod:/MaiMBot/.env.prod image: sengokucola/maimbot:latest - volumes: maimbotCONFIG: @@ -51,4 +51,5 @@ volumes: napcatCONFIG: mongodb: mongodbCONFIG: - + + From 352a10d4ee53663b339cfdd607cb60b80f36e0d0 Mon Sep 17 00:00:00 2001 From: NepPure Date: Sun, 2 Mar 2025 19:27:53 +0800 Subject: [PATCH 06/26] add colorama --- requirements.txt | Bin 520 -> 540 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/requirements.txt b/requirements.txt index 3f0fe05ddd8064040ea79e51e0a7998bbc477374..11536d12ac13cd06045bcb620cb223d5e19ba7ec 100644 GIT binary patch delta 28 gcmeBRnZvSygGq#!fr}xTA)g@!h>I8!8FGOb08&^5U;qFB delta 7 OcmbQk(!sKUg9!i$Jptzc From c1f2b6a0eb942b0ae1f659dd4fb352e8fbae04f6 Mon Sep 17 00:00:00 2001 From: NepPure Date: Sun, 2 Mar 2025 19:36:04 +0800 Subject: [PATCH 07/26] =?UTF-8?q?#=20=E6=82=A8=E4=B8=8D=E5=BA=94=E8=AF=A5?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=BB=98=E8=AE=A4=E5=80=BC=EF=BC=8C=E8=BF=99?= =?UTF-8?q?=E4=B8=AA=E6=96=87=E4=BB=B6=E8=A2=AB=E4=BB=93=E5=BA=93=E7=B4=A2?= =?UTF-8?q?=E5=BC=95=EF=BC=8C=E8=AF=B7=E4=BF=AE=E6=94=B9.env.prod?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env | 25 +++++++++++++++++++++++++ .gitignore | 3 +-- 2 files changed, 26 insertions(+), 2 deletions(-) create mode 100644 .env diff --git a/.env b/.env new file mode 100644 index 000000000..2c8e76c18 --- /dev/null +++ b/.env @@ -0,0 +1,25 @@ +# 您不应该修改默认值,这个文件被仓库索引,请修改.env.prod +HOST=127.0.0.1 +PORT=8080 + +COMMAND_START=["/"] + +# 插件配置 +PLUGINS=["src2.plugins.chat"] + +# 默认配置 +MONGODB_HOST=127.0.0.1 +MONGODB_PORT=27017 +DATABASE_NAME=MegBot + +MONGODB_USERNAME = "" # 默认空值 +MONGODB_PASSWORD = "" # 默认空值 +MONGODB_AUTH_SOURCE = "" # 默认空值 + +#key and url +CHAT_ANY_WHERE_KEY= +SILICONFLOW_KEY= +CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 +SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ +DEEP_SEEK_KEY= +DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 \ No newline at end of file diff --git a/.gitignore b/.gitignore index c19b9ce33..097126da9 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ reasoning_content.bat reasoning_window.bat queue_update.txt memory_graph.gml -.env.dev +.env.* # Byte-compiled / optimized / DLL files @@ -147,7 +147,6 @@ celerybeat.pid *.sage.py # Environments -.env .venv env/ venv/ From 3db73fe03c6ea4874503defdcd7b7a4ed7e398ab Mon Sep 17 00:00:00 2001 From: NepPure Date: Sun, 2 Mar 2025 19:37:32 +0800 Subject: [PATCH 08/26] ENVIRONMENT=prod --- .env | 1 + 1 file changed, 1 insertion(+) diff --git a/.env b/.env index 2c8e76c18..6e242e1f5 100644 --- a/.env +++ b/.env @@ -1,4 +1,5 @@ # 您不应该修改默认值,这个文件被仓库索引,请修改.env.prod +ENVIRONMENT=prod HOST=127.0.0.1 PORT=8080 From 304562d93a7831bf1f63e4e6d096d011136db714 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 19:43:14 +0800 Subject: [PATCH 09/26] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E6=97=A5?= =?UTF-8?q?=E7=A8=8B=E5=BC=82=E6=AD=A5bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/schedule/schedule_llm_module.py | 23 ++++++++++----------- 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/src/plugins/schedule/schedule_llm_module.py b/src/plugins/schedule/schedule_llm_module.py index cf88a8653..1fcad52d2 100644 --- a/src/plugins/schedule/schedule_llm_module.py +++ b/src/plugins/schedule/schedule_llm_module.py @@ -23,7 +23,7 @@ class LLMModel: self.model_name = model_name self.params = kwargs - async def generate_response(self, prompt: str) -> Tuple[str, str]: + def generate_response(self, prompt: str) -> Tuple[str, str]: """根据输入的提示生成模型的响应""" headers = { "Authorization": f"Bearer {self.api_key}", @@ -42,17 +42,16 @@ class LLMModel: api_url = f"{self.base_url.rstrip('/')}/chat/completions" try: - async with aiohttp.ClientSession() as session: - async with session.post(api_url, headers=headers, json=data) as response: - response.raise_for_status() # 检查响应状态 - - result = await response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content # 返回内容和推理内容 - return "没有返回结果", "" # 返回两个值 - + response = requests.post(api_url, headers=headers, json=data) + response.raise_for_status() # 检查响应状态 + + result = response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content # 返回内容和推理内容 + return "没有返回结果", "" # 返回两个值 + except Exception as e: return f"请求失败: {str(e)}", "" # 返回错误信息和空字符串 From f48f33a999904c5fe2ce6ec0aec07ee5af4b6821 Mon Sep 17 00:00:00 2001 From: HYY1116 Date: Sun, 2 Mar 2025 19:48:25 +0800 Subject: [PATCH 10/26] =?UTF-8?q?fix:=20=E6=A8=A1=E5=9E=8B=E4=BC=98?= =?UTF-8?q?=E5=85=88=E4=BD=BF=E7=94=A8=E6=97=A0=E9=9C=80=E4=BB=98=E8=B4=B9?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=EF=BC=8C=E5=B9=B6=E6=A8=A1=E5=9E=8B=E5=90=8D?= =?UTF-8?q?=E7=A7=B0=E5=85=A8=E5=B1=80=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/bot_config_toml | 45 ------------------- src/plugins/chat/config.py | 8 ++++ src/plugins/chat/llm_generator.py | 14 +++--- src/plugins/chat/topic_identifier.py | 3 +- src/plugins/memory_system/llm_module.py | 4 +- .../memory_system/llm_module_memory_make.py | 4 +- src/plugins/schedule/schedule_generator.py | 6 +-- src/plugins/schedule/schedule_llm_module.py | 9 ++-- 8 files changed, 27 insertions(+), 66 deletions(-) delete mode 100644 config/bot_config_toml diff --git a/config/bot_config_toml b/config/bot_config_toml deleted file mode 100644 index 83a3c4971..000000000 --- a/config/bot_config_toml +++ /dev/null @@ -1,45 +0,0 @@ -[bot] -qq = 123456 #填入你的机器人QQ -nickname = "麦麦" #你希望bot被称呼的名字 - -[message] -min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 -max_context_size = 15 # 麦麦获得的上下文数量,超出数量后自动丢弃 -emoji_chance = 0.2 # 麦麦使用表情包的概率 - -[emoji] -check_interval = 120 -register_interval = 10 - -[cq_code] -enable_pic_translate = false - - -[response] -api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek,建议使用siliconflow,因为识图api目前只支持siliconflow的deepseek-vl2模型 -model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 -model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 -model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 - -[memory] -build_memory_interval = 300 # 记忆构建间隔 - - - -[others] -enable_advance_output = true # 开启后输出更多日志,false关闭true开启 - - -[groups] - -talk_allowed = [ - 123456,12345678 -] #可以回复消息的群 - -talk_frequency_down = [ - 123456,12345678 -] #降低回复频率的群 - -ban_user_id = [ - 123456,12345678 -] #禁止回复消息的QQ号 diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index dc7c14203..68ec6784b 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -33,6 +33,11 @@ class BotConfig: EMOJI_REGISTER_INTERVAL: int = 10 # 表情包注册间隔(分钟) API_USING: str = "siliconflow" # 使用的API + DEEPSEEK_MODEL_R1: str = "deepseek-reasoner" # deepseek-R1模型 + DEEPSEEK_MODEL_V3: str = "deepseek-chat" # deepseek-V3模型 + SILICONFLOW_MODEL_R1: str = "deepseek-ai/DeepSeek-R1" # siliconflow-R1模型 + SILICONFLOW_MODEL_R1_DISTILL: str = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" # siliconflow-R1蒸馏模型 + SILICONFLOW_MODEL_V3: str = "deepseek-ai/DeepSeek-V3" # siliconflow-V3模型 MODEL_R1_PROBABILITY: float = 0.8 # R1模型概率 MODEL_V3_PROBABILITY: float = 0.1 # V3模型概率 MODEL_R1_DISTILL_PROBABILITY: float = 0.1 # R1蒸馏模型概率 @@ -82,6 +87,9 @@ class BotConfig: config.MODEL_V3_PROBABILITY = response_config.get("model_v3_probability", config.MODEL_V3_PROBABILITY) config.MODEL_R1_DISTILL_PROBABILITY = response_config.get("model_r1_distill_probability", config.MODEL_R1_DISTILL_PROBABILITY) config.API_USING = response_config.get("api_using", config.API_USING) + if response_config.get("api_using", config.API_PAID): + config.SILICONFLOW_MODEL_R1 = "Pro/deepseek-ai/DeepSeek-R1" + config.SILICONFLOW_MODEL_V3 = "Pro/deepseek-ai/DeepSeek-V3" # 消息配置 if "message" in toml_dict: diff --git a/src/plugins/chat/llm_generator.py b/src/plugins/chat/llm_generator.py index bfff1d474..682be8a87 100644 --- a/src/plugins/chat/llm_generator.py +++ b/src/plugins/chat/llm_generator.py @@ -206,13 +206,13 @@ class LLMResponseGenerator: if global_config.API_USING == "deepseek": return await self._generate_base_response( message, - "deepseek-reasoner", + global_config.DEEPSEEK_MODEL_R1, {"temperature": 0.7, "max_tokens": 1024} ) else: return await self._generate_base_response( message, - "Pro/deepseek-ai/DeepSeek-R1", + global_config.SILICONFLOW_MODEL_R1, {"temperature": 0.7, "max_tokens": 1024} ) @@ -221,13 +221,13 @@ class LLMResponseGenerator: if global_config.API_USING == "deepseek": return await self._generate_base_response( message, - "deepseek-chat", + global_config.DEEPSEEK_MODEL_V3, {"temperature": 0.8, "max_tokens": 1024} ) else: return await self._generate_base_response( message, - "Pro/deepseek-ai/DeepSeek-V3", + global_config.SILICONFLOW_MODEL_V3, {"temperature": 0.8, "max_tokens": 1024} ) @@ -235,7 +235,7 @@ class LLMResponseGenerator: """使用 DeepSeek-R1-Distill-Qwen-32B 模型生成回复""" return await self._generate_base_response( message, - "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", + global_config.SILICONFLOW_MODEL_R1_DISTILL, {"temperature": 0.7, "max_tokens": 1024} ) @@ -270,9 +270,9 @@ class LLMResponseGenerator: loop = asyncio.get_event_loop() if global_config.API_USING == "deepseek": - model = "deepseek-chat" + model = global_config.DEEPSEEK_MODEL_V3 else: - model = "Pro/deepseek-ai/DeepSeek-V3" + model = global_config.SILICONFLOW_MODEL_V3 create_completion = partial( self.client.chat.completions.create, model=model, diff --git a/src/plugins/chat/topic_identifier.py b/src/plugins/chat/topic_identifier.py index 81956ddc1..34ac4e714 100644 --- a/src/plugins/chat/topic_identifier.py +++ b/src/plugins/chat/topic_identifier.py @@ -3,6 +3,7 @@ from openai import OpenAI from .message import Message import jieba from nonebot import get_driver +from .config import global_config driver = get_driver() config = driver.config @@ -24,7 +25,7 @@ class TopicIdentifier: 消息内容:{text}""" response = self.client.chat.completions.create( - model="Pro/deepseek-ai/DeepSeek-V3", + model=global_config.SILICONFLOW_MODEL_V3, messages=[{"role": "user", "content": prompt}], temperature=0.8, max_tokens=10 diff --git a/src/plugins/memory_system/llm_module.py b/src/plugins/memory_system/llm_module.py index 34e4e4af1..c2b6cf042 100644 --- a/src/plugins/memory_system/llm_module.py +++ b/src/plugins/memory_system/llm_module.py @@ -5,13 +5,13 @@ import time from nonebot import get_driver import aiohttp import asyncio - +from src.plugins.chat.config import global_config driver = get_driver() config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): - def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs): + def __init__(self, model_name=global_config.SILICONFLOW_MODEL_V3, **kwargs): self.model_name = model_name self.params = kwargs self.api_key = config.siliconflow_key diff --git a/src/plugins/memory_system/llm_module_memory_make.py b/src/plugins/memory_system/llm_module_memory_make.py index 5b01a2917..f59354570 100644 --- a/src/plugins/memory_system/llm_module_memory_make.py +++ b/src/plugins/memory_system/llm_module_memory_make.py @@ -2,17 +2,17 @@ import os import requests from typing import Tuple, Union import time -from ..chat.config import BotConfig from nonebot import get_driver import aiohttp import asyncio +from src.plugins.chat.config import BotConfig, global_config driver = get_driver() config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): - def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-V3", **kwargs): + def __init__(self, model_name=global_config.SILICONFLOW_MODEL_V3, **kwargs): self.model_name = model_name self.params = kwargs self.api_key = config.siliconflow_key diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index a33c4b279..63e3235a3 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -3,7 +3,7 @@ import os from typing import List, Dict from .schedule_llm_module import LLMModel from ...common.database import Database # 使用正确的导入语法 -from ..chat.config import global_config +from src.plugins.chat.config import global_config from nonebot import get_driver driver = get_driver() @@ -22,9 +22,9 @@ Database.initialize( class ScheduleGenerator: def __init__(self): if global_config.API_USING == "siliconflow": - self.llm_scheduler = LLMModel(model_name="Pro/deepseek-ai/DeepSeek-V3") + self.llm_scheduler = LLMModel(model_name=global_config.SILICONFLOW_MODEL_V3) elif global_config.API_USING == "deepseek": - self.llm_scheduler = LLMModel(model_name="deepseek-chat",api_using="deepseek") + self.llm_scheduler = LLMModel(model_name=global_config.DEEPSEEK_MODEL_V3) self.db = Database.get_instance() today = datetime.datetime.now() diff --git a/src/plugins/schedule/schedule_llm_module.py b/src/plugins/schedule/schedule_llm_module.py index cf88a8653..34dad6fec 100644 --- a/src/plugins/schedule/schedule_llm_module.py +++ b/src/plugins/schedule/schedule_llm_module.py @@ -3,20 +3,17 @@ import requests import aiohttp from typing import Tuple, Union from nonebot import get_driver - +from src.plugins.chat.config import global_config driver = get_driver() config = driver.config class LLMModel: # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): - def __init__(self, model_name="Pro/deepseek-ai/DeepSeek-R1",api_using=None, **kwargs): + def __init__(self, model_name=global_config.SILICONFLOW_MODEL_R1,api_using=None, **kwargs): if api_using == "deepseek": self.api_key = config.deep_seek_key self.base_url = config.deep_seek_base_url - if model_name != "Pro/deepseek-ai/DeepSeek-R1": - self.model_name = model_name - else: - self.model_name = "deepseek-reasoner" + self.model_name = global_config.DEEPSEEK_MODEL_R1 else: self.api_key = config.siliconflow_key self.base_url = config.siliconflow_base_url From 0bcd18c821e5fc351d73b39c17fbab92d2123774 Mon Sep 17 00:00:00 2001 From: HYY1116 Date: Sun, 2 Mar 2025 19:51:14 +0800 Subject: [PATCH 11/26] =?UTF-8?q?=E6=BC=8F=E6=94=B9=E4=B8=80=E5=B0=8F?= =?UTF-8?q?=E5=A4=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/plugins/chat/config.py | 1 + 1 file changed, 1 insertion(+) diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index 68ec6784b..54d125408 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -33,6 +33,7 @@ class BotConfig: EMOJI_REGISTER_INTERVAL: int = 10 # 表情包注册间隔(分钟) API_USING: str = "siliconflow" # 使用的API + API_PAID: bool = False # 是否使用付费API DEEPSEEK_MODEL_R1: str = "deepseek-reasoner" # deepseek-R1模型 DEEPSEEK_MODEL_V3: str = "deepseek-chat" # deepseek-V3模型 SILICONFLOW_MODEL_R1: str = "deepseek-ai/DeepSeek-R1" # siliconflow-R1模型 From 6e2d229cb74d98f21d3f3a91356173776c2353e8 Mon Sep 17 00:00:00 2001 From: HYY1116 Date: Sun, 2 Mar 2025 19:59:00 +0800 Subject: [PATCH 12/26] =?UTF-8?q?=E5=9B=9E=E6=9D=A5=E5=90=A7=EF=BC=8C?= =?UTF-8?q?=E6=88=91=E7=9A=84config?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 1 - config/bot_config.toml | 46 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 config/bot_config.toml diff --git a/.gitignore b/.gitignore index 097126da9..94b4bb855 100644 --- a/.gitignore +++ b/.gitignore @@ -3,7 +3,6 @@ mongodb/ NapCat.Framework.Windows.Once/ log/ src/plugins/memory -config/bot_config.toml /test message_queue_content.txt message_queue_content.bat diff --git a/config/bot_config.toml b/config/bot_config.toml new file mode 100644 index 000000000..d668fcf59 --- /dev/null +++ b/config/bot_config.toml @@ -0,0 +1,46 @@ +[bot] +qq = 123456 #填入你的机器人QQ +nickname = "麦麦" #你希望bot被称呼的名字 + +[message] +min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 +max_context_size = 15 # 麦麦获得的上下文数量,超出数量后自动丢弃 +emoji_chance = 0.2 # 麦麦使用表情包的概率 + +[emoji] +check_interval = 120 +register_interval = 10 + +[cq_code] +enable_pic_translate = false + + +[response] +api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek,建议使用siliconflow,因为识图api目前只支持siliconflow的deepseek-vl2模型 +api_paid = false #是否使用付费api,目前此选项只影响siliconflow,其deepseek模型的api分为可用赠送余额和不可以用的,此选项为false时使用赠送余额 +model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 +model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 +model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 + +[memory] +build_memory_interval = 300 # 记忆构建间隔 + + + +[others] +enable_advance_output = true # 开启后输出更多日志,false关闭true开启 + + +[groups] + +talk_allowed = [ + 123456,12345678 +] #可以回复消息的群 + +talk_frequency_down = [ + 123456,12345678 +] #降低回复频率的群 + +ban_user_id = [ + 123456,12345678 +] #禁止回复消息的QQ号 From 5e9401c27aa1a026fbe5041c1bb7d74d4d88e0b3 Mon Sep 17 00:00:00 2001 From: HYY <95246895+HYY1116@users.noreply.github.com> Date: Sun, 2 Mar 2025 20:00:21 +0800 Subject: [PATCH 13/26] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index 94b4bb855..8df5d72a8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ NapCat.Framework.Windows.Once/ log/ src/plugins/memory /test +config/bot_config.toml message_queue_content.txt message_queue_content.bat message_queue_window.bat From f04ae091e285d28e23e926fb5aaffecd79835e84 Mon Sep 17 00:00:00 2001 From: NepPure Date: Sun, 2 Mar 2025 20:34:40 +0800 Subject: [PATCH 14/26] =?UTF-8?q?=E4=B8=8D=E5=86=8D=E9=9C=80=E8=A6=81?= =?UTF-8?q?=E9=87=8D=E5=91=BD=E5=90=8Dconfig?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Dockerfile b/Dockerfile index 6a7aa09c0..225a90a1b 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,8 +2,7 @@ FROM nonebot/nb-cli:latest WORKDIR / COPY . /MaiMBot/ WORKDIR /MaiMBot -RUN mv config/bot_config_toml config/bot_config.toml RUN pip install --upgrade -r requirements.txt VOLUME [ "/MaiMBot/config" ] EXPOSE 8080 -ENTRYPOINT [ "nb","run" ] \ No newline at end of file +ENTRYPOINT [ "nb","run" ] From 12e759f3ad5a3c4d9b782aa01b55ec73aa88ad80 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 20:56:38 +0800 Subject: [PATCH 15/26] =?UTF-8?q?=E5=B1=8E=E5=B1=B1=E4=BF=AE=E8=A1=A5?= =?UTF-8?q?=E6=9C=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改了bot_toml加载逻辑 --- .gitignore | 2 +- config/bot_config.toml | 11 ++--- src/plugins/chat/config.py | 72 +++++++++++++++++++++++++----- src/plugins/chat/cq_code.py | 2 +- src/plugins/chat/prompt_builder.py | 4 +- 5 files changed, 72 insertions(+), 19 deletions(-) diff --git a/.gitignore b/.gitignore index 8df5d72a8..a9cdc192f 100644 --- a/.gitignore +++ b/.gitignore @@ -15,7 +15,7 @@ reasoning_window.bat queue_update.txt memory_graph.gml .env.* - +config/bot_config_dev.toml # Byte-compiled / optimized / DLL files __pycache__/ diff --git a/config/bot_config.toml b/config/bot_config.toml index d668fcf59..4863da245 100644 --- a/config/bot_config.toml +++ b/config/bot_config.toml @@ -1,5 +1,5 @@ [bot] -qq = 123456 #填入你的机器人QQ +qq = 123 #填入你的机器人QQ nickname = "麦麦" #你希望bot被称呼的名字 [message] @@ -17,7 +17,7 @@ enable_pic_translate = false [response] api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek,建议使用siliconflow,因为识图api目前只支持siliconflow的deepseek-vl2模型 -api_paid = false #是否使用付费api,目前此选项只影响siliconflow,其deepseek模型的api分为可用赠送余额和不可以用的,此选项为false时使用赠送余额 +api_paid = true #是否使用付费api,目前此选项只影响siliconflow,其deepseek模型的api分为可用赠送余额和不可以用的,此选项为false时使用赠送余额 model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 @@ -34,13 +34,14 @@ enable_advance_output = true # 开启后输出更多日志,false关闭true开启 [groups] talk_allowed = [ - 123456,12345678 + 123, + 123, ] #可以回复消息的群 talk_frequency_down = [ - 123456,12345678 + ] #降低回复频率的群 ban_user_id = [ - 123456,12345678 + ] #禁止回复消息的QQ号 diff --git a/src/plugins/chat/config.py b/src/plugins/chat/config.py index 54d125408..b85cbc2e6 100644 --- a/src/plugins/chat/config.py +++ b/src/plugins/chat/config.py @@ -47,20 +47,59 @@ class BotConfig: enable_kuuki_read: bool = True # 是否启用读空气功能 @staticmethod - def get_default_config_path() -> str: - """获取默认配置文件路径""" + def get_config_dir() -> str: + """获取配置文件目录""" current_dir = os.path.dirname(os.path.abspath(__file__)) root_dir = os.path.abspath(os.path.join(current_dir, '..', '..', '..')) config_dir = os.path.join(root_dir, 'config') - return os.path.join(config_dir, 'bot_config.toml') + if not os.path.exists(config_dir): + os.makedirs(config_dir) + return config_dir + + @staticmethod + def create_default_config(config_path: str) -> None: + """创建默认配置文件""" + default_config = """[bot] +qq = 1 # 填入你的机器人QQ +nickname = "麦麦" # 你希望bot被称呼的名字 + +[message] +min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 +max_context_size = 15 # 麦麦获得的上下文数量,超出数量后自动丢弃 +emoji_chance = 0.2 # 麦麦使用表情包的概率 + +[emoji] +check_interval = 120 +register_interval = 10 + +[cq_code] +enable_pic_translate = false + +[response] +api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek +api_paid = false # 是否使用付费api +model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 +model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 +model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 + +[memory] +build_memory_interval = 300 # 记忆构建间隔 + +[others] +enable_advance_output = false # 开启后输出更多日志 + +[groups] +talk_allowed = [] # 可以回复消息的群 +talk_frequency_down = [] # 降低回复频率的群 +ban_user_id = [] # 禁止回复消息的QQ号 +""" + with open(config_path, "w", encoding="utf-8") as f: + f.write(default_config) + logger.success(f"已创建默认配置文件: {config_path}") @classmethod def load_config(cls, config_path: str = None) -> "BotConfig": """从TOML配置文件加载配置""" - if config_path is None: - config_path = cls.get_default_config_path() - logger.info(f"使用默认配置文件路径: {config_path}") - config = cls() if os.path.exists(config_path): with open(config_path, "rb") as f: @@ -119,12 +158,25 @@ class BotConfig: return config # 获取配置文件路径 -bot_config_path = BotConfig.get_default_config_path() -config_dir = os.path.dirname(bot_config_path) -logger.info(f"尝试从 {bot_config_path} 加载机器人配置") +bot_config_floder_path = BotConfig.get_config_dir() +print(f"正在品鉴配置文件目录: {bot_config_floder_path}") +bot_config_path = os.path.join(bot_config_floder_path, "bot_config_dev.toml") +if not os.path.exists(bot_config_path): + # 如果开发环境配置文件不存在,则使用默认配置文件 + bot_config_path = os.path.join(bot_config_floder_path, "bot_config.toml") + logger.info("使用默认配置文件") +else: + logger.info("已找到开发环境配置文件") + global_config = BotConfig.load_config(config_path=bot_config_path) + +# config_dir = os.path.dirname(bot_config_path) + +# logger.info(f"尝试从 {bot_config_path} 加载机器人配置") +# global_config = BotConfig.load_config(config_path=bot_config_path) + @dataclass class LLMConfig: """机器人配置类""" diff --git a/src/plugins/chat/cq_code.py b/src/plugins/chat/cq_code.py index ae5d8a257..386124c92 100644 --- a/src/plugins/chat/cq_code.py +++ b/src/plugins/chat/cq_code.py @@ -349,7 +349,7 @@ class CQCode: # 创建Message对象 from .message import Message if self.reply_message == None: - print(f"\033[1;31m[错误]\033[0m 回复消息为空") + # print(f"\033[1;31m[错误]\033[0m 回复消息为空") return '[回复某人消息]' if self.reply_message.sender.user_id: diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index 01fe3e82d..272229416 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -150,9 +150,9 @@ class PromptBuilder: prompt_personality = '' personality_choice = random.random() if personality_choice < 4/6: # 第一种人格 - prompt_personality = f'''{activate_prompt}你的网名叫{global_config.BOT_NICKNAME},曾经是一个学习地质的女大学生,现在学习心理学和脑科学,你会刷贴吧,你正在浏览qq群,{promt_info_prompt}, + prompt_personality = f'''{activate_prompt}你的网名叫{global_config.BOT_NICKNAME},现在学习心理学和脑科学,你会刷贴吧,你正在浏览qq群,{promt_info_prompt}, 现在请你给出日常且口语化的回复,平淡一些,尽量简短一些。{is_bot_prompt} - 请注意把握群里的聊天内容,不要回复的太有条理,可以有个性。''' + 请注意把握群里的聊天内容,不要刻意突出自身学科背景,不要回复的太有条理,可以有个性。''' elif personality_choice < 1: # 第二种人格 prompt_personality = f'''{activate_prompt}你的网名叫{global_config.BOT_NICKNAME},是一个女大学生,你有黑色头发,你会刷小红书, 你正在浏览qq群,{promt_info_prompt}, From 927ae4484f86cdda55f23e2ef08c94df03cab463 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 20:59:50 +0800 Subject: [PATCH 16/26] Update .gitignore --- .gitignore | 5 ----- 1 file changed, 5 deletions(-) diff --git a/.gitignore b/.gitignore index a9cdc192f..48c0c13c3 100644 --- a/.gitignore +++ b/.gitignore @@ -2,16 +2,11 @@ data/ mongodb/ NapCat.Framework.Windows.Once/ log/ -src/plugins/memory /test -config/bot_config.toml message_queue_content.txt message_queue_content.bat message_queue_window.bat message_queue_window.txt -reasoning_content.txt -reasoning_content.bat -reasoning_window.bat queue_update.txt memory_graph.gml .env.* From 65d983f37f9c1f6eec120ee7b1ca93edb2330b24 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 21:03:56 +0800 Subject: [PATCH 17/26] =?UTF-8?q?=E8=B0=A2=E8=B0=A2=E5=A4=A7=E5=AE=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 --- .env | 2 +- bot.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.env b/.env index 6e242e1f5..709d22d34 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ # 您不应该修改默认值,这个文件被仓库索引,请修改.env.prod -ENVIRONMENT=prod +ENVIRONMENT=dev HOST=127.0.0.1 PORT=8080 diff --git a/bot.py b/bot.py index 8741eca7f..489ab1c36 100644 --- a/bot.py +++ b/bot.py @@ -29,7 +29,7 @@ env_file = f".env.{env}" if env_file == ".env.dev" and os.path.exists(env_file): logger.success("加载开发环境变量配置") load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 -elif env_file == ".env.prod" and os.path.exists(env_file): +elif os.path.exists(".env.prod"): logger.success("加载环境变量配置") load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 else: From 6462c3b3606d1bedc62fc7818a7d32c3d1e182a6 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Sun, 2 Mar 2025 23:51:47 +0800 Subject: [PATCH 18/26] =?UTF-8?q?v0.4.0=20=E6=94=AF=E6=8C=81=E4=BB=BB?= =?UTF-8?q?=E6=84=8F=E6=9B=BF=E6=8D=A2=E7=9A=84=E6=A8=A1=E5=9E=8B=EF=BC=8C?= =?UTF-8?q?=E6=94=B9=E8=BF=9B=E9=85=8D=E7=BD=AE=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 好好好好好好好好好 --- .env.prod | 8 +- bot.py | 35 +-- config/auto_format.py | 46 ++++ config/bot_config.toml | 62 +++-- docs/qq.png | Bin 195176 -> 0 bytes src/plugins/chat/__init__.py | 1 + src/plugins/chat/bot.py | 4 +- src/plugins/chat/config.py | 81 ++---- src/plugins/chat/cq_code.py | 106 ++------ src/plugins/chat/emoji_manager.py | 107 ++------ src/plugins/chat/llm_generator.py | 287 +++++--------------- src/plugins/memory_system/llm_module.py | 68 ----- src/plugins/memory_system/memory.py | 9 +- src/plugins/models/utils_model.py | 199 ++++++++++++++ src/plugins/schedule/schedule_generator.py | 29 +- src/plugins/schedule/schedule_llm_module.py | 61 ----- 16 files changed, 459 insertions(+), 644 deletions(-) create mode 100644 config/auto_format.py delete mode 100644 docs/qq.png delete mode 100644 src/plugins/memory_system/llm_module.py create mode 100644 src/plugins/models/utils_model.py delete mode 100644 src/plugins/schedule/schedule_llm_module.py diff --git a/.env.prod b/.env.prod index 3d795978c..f00cd5169 100644 --- a/.env.prod +++ b/.env.prod @@ -16,9 +16,11 @@ MONGODB_PASSWORD = "" # 默认空值 MONGODB_AUTH_SOURCE = "" # 默认空值 #key and url -CHAT_ANY_WHERE_KEY= -SILICONFLOW_KEY= + CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ +DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 + DEEP_SEEK_KEY= -DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 \ No newline at end of file +CHAT_ANY_WHERE_KEY= +SILICONFLOW_KEY= \ No newline at end of file diff --git a/bot.py b/bot.py index 489ab1c36..cf1b82ff6 100644 --- a/bot.py +++ b/bot.py @@ -36,28 +36,18 @@ else: logger.error(f"{env}对应的环境配置文件{env_file}不存在,请修改.env文件中的ENVIRONMENT变量为 prod.") exit(1) -nonebot.init( - # 从环境变量中读取配置 - websocket_port=os.getenv("PORT", 8080), - host=os.getenv("HOST", "127.0.0.1"), - log_level="INFO", - # 添加自定义配置 - mongodb_host=os.getenv("MONGODB_HOST", "127.0.0.1"), - mongodb_port=os.getenv("MONGODB_PORT", 27017), - database_name=os.getenv("DATABASE_NAME", "MegBot"), - mongodb_username=os.getenv("MONGODB_USERNAME", ""), - mongodb_password=os.getenv("MONGODB_PASSWORD", ""), - mongodb_auth_source=os.getenv("MONGODB_AUTH_SOURCE", ""), - # API相关配置 - chat_any_where_key=os.getenv("CHAT_ANY_WHERE_KEY", ""), - siliconflow_key=os.getenv("SILICONFLOW_KEY", ""), - chat_any_where_base_url=os.getenv("CHAT_ANY_WHERE_BASE_URL", "https://api.chatanywhere.tech/v1"), - siliconflow_base_url=os.getenv("SILICONFLOW_BASE_URL", "https://api.siliconflow.cn/v1/"), - deep_seek_key=os.getenv("DEEP_SEEK_KEY", ""), - deep_seek_base_url=os.getenv("DEEP_SEEK_BASE_URL", "https://api.deepseek.com/v1"), - # 插件配置 - plugins=os.getenv("PLUGINS", ["src2.plugins.chat"]) -) +# 获取所有环境变量 +env_config = {key: os.getenv(key) for key in os.environ} + +# 设置基础配置 +base_config = { + "websocket_port": int(env_config.get("PORT", 8080)), + "host": env_config.get("HOST", "127.0.0.1"), + "log_level": "INFO", +} + +# 合并配置 +nonebot.init(**base_config, **env_config) # 注册适配器 driver = nonebot.get_driver() @@ -67,4 +57,5 @@ driver.register_adapter(Adapter) nonebot.load_plugins("src/plugins") if __name__ == "__main__": + nonebot.run() \ No newline at end of file diff --git a/config/auto_format.py b/config/auto_format.py new file mode 100644 index 000000000..9bc27da29 --- /dev/null +++ b/config/auto_format.py @@ -0,0 +1,46 @@ +import tomli +import tomli_w +import sys +from pathlib import Path +import os + +def sync_configs(): + # 读取两个配置文件 + try: + with open('bot_config_dev.toml', 'rb') as f: # tomli需要使用二进制模式读取 + dev_config = tomli.load(f) + + with open('bot_config.toml', 'rb') as f: + prod_config = tomli.load(f) + except FileNotFoundError as e: + print(f"错误:找不到配置文件 - {e}") + sys.exit(1) + except tomli.TOMLDecodeError as e: + print(f"错误:TOML格式解析失败 - {e}") + sys.exit(1) + + # 递归合并配置 + def merge_configs(source, target): + for key, value in source.items(): + if key not in target: + target[key] = value + elif isinstance(value, dict) and isinstance(target[key], dict): + merge_configs(value, target[key]) + + # 将dev配置的新属性合并到prod配置中 + merge_configs(dev_config, prod_config) + + # 保存更新后的配置 + try: + with open('bot_config.toml', 'wb') as f: # tomli_w需要使用二进制模式写入 + tomli_w.dump(prod_config, f) + print("配置文件同步完成!") + except Exception as e: + print(f"错误:保存配置文件失败 - {e}") + sys.exit(1) + +if __name__ == '__main__': + # 确保在正确的目录下运行 + script_dir = Path(__file__).parent + os.chdir(script_dir) + sync_configs() diff --git a/config/bot_config.toml b/config/bot_config.toml index 4863da245..83526945c 100644 --- a/config/bot_config.toml +++ b/config/bot_config.toml @@ -1,11 +1,11 @@ [bot] -qq = 123 #填入你的机器人QQ -nickname = "麦麦" #你希望bot被称呼的名字 +qq = 123 +nickname = "麦麦" [message] -min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 -max_context_size = 15 # 麦麦获得的上下文数量,超出数量后自动丢弃 -emoji_chance = 0.2 # 麦麦使用表情包的概率 +min_text_length = 2 +max_context_size = 15 +emoji_chance = 0.2 [emoji] check_interval = 120 @@ -14,34 +14,48 @@ register_interval = 10 [cq_code] enable_pic_translate = false - [response] -api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek,建议使用siliconflow,因为识图api目前只支持siliconflow的deepseek-vl2模型 -api_paid = true #是否使用付费api,目前此选项只影响siliconflow,其deepseek模型的api分为可用赠送余额和不可以用的,此选项为false时使用赠送余额 -model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 -model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 -model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 +api_using = "siliconflow" +api_paid = true +model_r1_probability = 0.8 +model_v3_probability = 0.1 +model_r1_distill_probability = 0.1 [memory] -build_memory_interval = 300 # 记忆构建间隔 - - +build_memory_interval = 300 [others] -enable_advance_output = true # 开启后输出更多日志,false关闭true开启 - +enable_advance_output = true [groups] - talk_allowed = [ - 123, - 123, -] #可以回复消息的群 + 123, + 123, +] +talk_frequency_down = [] +ban_user_id = [] -talk_frequency_down = [ +[model.llm_reasoning] +name = "Pro/deepseek-ai/DeepSeek-R1" +base_url = "SILICONFLOW_BASE_URL" +key = "SILICONFLOW_KEY" -] #降低回复频率的群 +[model.llm_reasoning_minor] +name = "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B" +base_url = "SILICONFLOW_BASE_URL" +key = "SILICONFLOW_KEY" -ban_user_id = [ +[model.llm_normal] +name = "Pro/deepseek-ai/DeepSeek-V3" +base_url = "SILICONFLOW_BASE_URL" +key = "SILICONFLOW_KEY" -] #禁止回复消息的QQ号 +[model.llm_normal_minor] +name = "deepseek-ai/DeepSeek-V2.5" +base_url = "SILICONFLOW_BASE_URL" +key = "SILICONFLOW_KEY" + +[model.vlm] +name = "deepseek-ai/deepseek-vl2" +base_url = "SILICONFLOW_BASE_URL" +key = "SILICONFLOW_KEY" diff --git a/docs/qq.png b/docs/qq.png deleted file mode 100644 index 3c31347b658e6977f3cda32125b1b4d55f907c9f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 195176 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
}ceFVX5Q^=be9AO1|* zNaW$&Ayt~jq*1?pujPq;odRgeMu3TrG)Q?v?-CF??PkcCJ=V-cYVWjniGyjin7JJO zY8U|X`N?pgm(uGdFxqbzInnad-Czb&*YguBnN~Y6$_gDe_K!?M_`GIz!YtMcCCNtk z+9DTc$Bw%dSSna;R|3DIB&w1E>S85gUi}A|ezy38#FKLe8^lc-aMF^=0kJ)P2O&Dg4c!vw2>= z5PS<)<1S#W^yVeR_48f>>sEer^sDRdt80t+sUgcu6y{T{T#FOE??*iq1#kZ7p;I5V z)Dz)Y%{oI4-uJYbo!Z(bvuqF11ikLNB)-|gY=*X6#@k(nxkLpTbks<8rPJ$cr3SyK zPAKfH9sVRVfbc3L2<;SHiAm&7N7QzCSw9&xN1oHLLnQ}o{ek{0=lu>Z_m+|zPgQup z5hQ1lSn%cA9RxRi5@XERwz?&21AA4Rwgm9ZRyMCnq^i4Yqmxr6rhu^g;j0s?sKR&e zzTD1kXio*;m+b<_%*_*)6i{x%Z&a*<&@n-HS>qNL8$gKeo&+-NSIcBQslPX@Xg zMbHQ*)v8CQ_!C1Oc31%cMtqd9p^27aYP>Fh=yZZ4Q&NhJK&X zY@X*tRZCurFAxIk!11J?Mp~l<3Nt)D2g&>4?GU{eQVtSO-W0P3bcBk$!v#9{LsN~n zjDG^$^?zaw3w6A{i3YPxt8uzvq^e_I!R?oNlRX1 z{_|fJ9(gF|jp+R`&V$TFTrLL?1bnXWp$K%NZ=83W@)$O+ z&ip8mRo{b0u=1z3>4*;;CQ4SrkQ()`mt1GC+9@_j z0s5%TGhZMSkfllT9ZOFChHIlqUA%ZHIl5RM5rtV){dT*BWz|C>Rn=dzXQih`s1F4d z8+O=RXsitc_P{Jwpq|Rt<_J0DA+6NN6rke(EnyAp1iB9YGCAonqrU5^h?{Ze+-xeG z90Z81D(IZ2EaNrvM5mP@k!*rFrWKt$+@)rmp*Qm)b zx-gXcX(baE?JijqO!@^c$mm8|_3x}DY7T^-ue@v$N|!>fHMe^0zRo%Kg5iPy^UY5x zRw^g$GTw&r51*i{`2s76nXJ|yj#szXvJm|(maA&Mqo9~o5S1qcCF>v;cY(s(pyVHc ziXh;=18qwAcRTdwcbx3bQO5Pq=5?3W{46wo`y29fQ;HU0T6Wd|EPYoY^?q%SH2dr3 z_AA~m?}Gg1&${>cQ>J)BRm_u~kBJ@%`8#$R5viv!v~nnAWkl(r5{ZB#qBnhMkH4ns zdIP=iB}jb&BZNs9En0+r$?OIKKG}5of~w66ASQO`^7pfTw{nARbJT%l>3|M zVUSY-If#p+B@03d{F1Kn89b9L!X4g3a1`y*YTt`6dedHOts51@>a-Rqvpvuw*lv~t z0A!`RTEVQilhui(F(C&fW|`ITG7h5I&JKOnMypwtT?Uu9z^Fe`#+voA|08;+5R+Wm zem_v$bi^Dq0IGqK4XQ)0(_TKwKV)%iqWE6x=3u+Az|oge==o|rR84oi2uK!PG?%0| z-eelp)S1j)Q~m9!YQ5HF0-Z*yUHZNEvJ|z_C{proaemI{Udl^#tr%IkJQC6<-$z_b zt`f1z5rJCr{O86oUrlcRJ&~5lwtCfd_w!}};p7)G5M`!1_GH%u^iP1;` z0G89!gAPoO&G=PYJ=RoYn*XTc)ixL_!MKDOE6GZQ2ANgvm~u+TxP{r*eu!jkIPI^H z6RJS+a*%=uefLYeX?%U=P+h@Dt;K-o5oVpNuo=K3r2Ph23*Z4m5Ah_K?+|(F2DQM8=XF0y#i4kcrl3btCvnvzMn={kh!s&Z%5*1P}xb0>kWTe>Ls5f&QDUPIgR$(;$A_Tm%1sr6kufnm3fb~tkd)*XNlKki0hE0<)gdL371?!5`}3nd%yC znr8IF;$MNFCnc^?bnq5m{}Pspuo8k9D6SCI(vKqQ+s|)Dz)SNypCq07t`hqL9I6Sb z_4|Xdn4KEZUfp?pu$pL*XRTMzdn7EdIT%*5hILvhd%HL3o;thLFxwe+HL-k5G;NfTN#AGvKdkOP^s^G=7U|WjF=zgV3fPXipFog-ys2+|B z9U&Ab@{mUM1W1n%)|cs?E(!ua05^p#TLD|)TW|omn+)8zkm+}c$2B0N6NL&)Oc;xt zy`Hn}zP}3I(EncYu_RWq78Dl~BUi0buP%lNX|UO7&C}?UeQGae#ohl1Q<&qbgD z4r0+w)fP;i3Qd%r8K#*h5=Vh3nc>Dq0}=37vK&@xh#p&OI!8st@)`XHkKncQX*oe^ zj!0sDM2J%Kd*}8<7$9V_MxJ}CYls&k=lwQc?!|eBXHUn(uACteu($)_wd<5KG;Shw zduit@hB^*is3bv)IK;_3k<4g86*!f_c1k7AhnCCXe3H9ltI^ z%A&BP0tEq@&<)D|KT>9%^v<28V}(f|9RQkmtxtO|BA@; z&r^834y|O)a;A~wI^O`UhtBHq_UoP9>6yL}$XVB};3{LRUN-xq`SkTV#Uy-2dORhu zm09Skaq5UJ?y2T}!W0R!{xo8BIg`$Cq#VZd-YSNVzs?`se@U=%IoweL@6iQ4PKYgC zX2hyB;GFFhCl|V*B2p~{CB6Uk+D5Nh%Jf0%`cq)EZ$7LuMx2XGD%Io7|D30k`s6`iuw7cWqpUdhnyLIC%vxG@& z_p;?o1yKV+z?}jobReoYqQRs%`(M&z<W4$J;{ORNghLCpItTRL_t zPgb3A97cp^nw&Ka2O8umZQtKx{Z)pZg802xrpb6;t0n;jNoD+I*@#~)8FJG9<|4+m zHSYWXa5yDn5r*=k!yL_E!qG%M%h;E9vfv|Dg1(?5fyZ(|*3=KM+YW&pYGp4ERC2*}N&xC5Gy;rK0U>z$jOPAWTNy!ns z6dBpEs0IY3g#K}>ee5sgRO-E(JO$K}_u2V24Zm7~wrEsO^oIhsJ}MGNSTOE+GAwcR z1{^vSvj)tJIT&F@IWr*5Z;@pI=3HISk_eE4U_7QKp5NPM;G=9%16>llH6lC|ran$IhYs=YQ*le&@KFmx=yXs zODw!VQ;6zY&=nVP4;mkgDMy=MjMh(m_yf@icy>6y44-47tGq>$0&UjGkXE$aEs!E&9@G1?~oB6UzHGtZ4@XYizy3O0F%r%PII7aZeWR&-s>on!q^T5EFtGF1+E zB{xr|Za?X+y4@aRT&q5oPv;2;+r<;#rFnDYRXim*(@~*0xg2~^$0$FJnQ#w0gK6IPE$&w}A!rz*l!U|gTm`luOqvsamjr~z#PXw4|# zYc$@Eh^zv7|3m^kp5Xx&R^gId^h*+CvP3?UBSKlxZ$YN4jYNDQ?!jC$4sz~Nm~;Nu z$hqL=l%aKT(6L*0cy={+bB#twa26#A02*}Vi43-1WjrZsQ4qAWLL;jfzMcETVoBWq z+ZU!mi6@nM5=QH~?}29iW#mAbT;9Mty7GZ&6+EZz)}^LHcapca+~wv0S%cF)g&MiM3+!FCU{#_J&u+m%Nic1Lra_9I zi|hadwO~#t`LM&z3S%a_BWBD*+IFoaR&uqbf0EU*;n*H&|Ai8*lBOtlsYJef|KI{M z%uu~`!q6R>RIFK-om~+_b*JA4F7m2uBBqaOj%XJvQA3CZNv1|?S-4*t!gD=UOAj6~ z#?SPi_Kagve2BHQ%Q`}eIIGQ0X!9OdyQN&7ynsP9P!De?$CC7I>#Q84SIkcO;)?yq zDXP3&Y1G#3S$`&Z(3IRx5+0X4uM_qRiS`5h(_ZzT?ULJS=gwNG$ZGw<;q0#W1!y*B zQ!q2p;kmiR!1b$EP@d1M(Lyfyrv|7EaPdOV*g`y&mo{?AB1KwBF%hK11n~uS7TFMe zTeWxLgD%?M&H7Z2(4(q``~PMF-x4cYAWB2N8ENXO(_-#v>gTC!Tf_h8qeJEb7;>?| zRSbGeGI=?I+9U|GPDGGM7cxQO+bO^<=RrqZXaty6qhL;$sVpE&P81c#C-l<^V}Ip%gp2*acRoCQqoeDP{R0N%>X8)NlGvjaFl%C7TsLZC<-G`FRcE5&faA`I1nF zn;WD^S!s(WGdDYU@wZYia0N>31CFS|43?o*h6qm^+(mteGGmN?X}a!A0Q=UXBBl7} zMrcR4{?w=8o!r9)EOH&$g;qly6fzHR$%g+XOqc7lNf}}|`LZHFQFxvNIKe*CB`$8K z#(CfhX_Tez%3;-A%bezien%ORH^>x2&Mmg#ziz-7v~swF*QcW||I%qUCxXC$@84{P zmaw20n`NF6DO0pS1*wlirkQWI`1H)=VZ#1#;WrTMC~l(g9^c{Yv2NSd;R;36)H#3Kf38qOSP=)X=w?A_UY-wWP0HE~2Mdx$m> zSZ)`B&{JT=H;|oLKs?b%(WJ>0)N1t1b77UcrP-6LBLs+)qQVSD>iQb$r-|0Qv^B`B zkvIj)Fbxf%{qu!>e;TI9@g?y{}Dfu@R{AUoO~ zqiFiF`7J$iF>6q$)utKQ=kxiB~M|`Qtr94+FwJD75r7#EW zfxfYC%}F>O{3F99K?HB;*@t5632Qu zAhXkVny-L-9{f88jg0s+snO zynwMe1zb)?ag4gnc5j?F47&KIgHA8G-Bmf%IDMMV&hqFoN}bHI0tTM2hx{NQPhU(+ z3-m0gSnJg6{sVROlj6IdfnFuHkZo|fEpJ?&A4hJ(c6>y4hM%Iz_DfKzYWYH!lyXg- zQBe!;@0TmkO+)-ak&qNq(R)$eDD0fff%SeD?Is$|CRQK^l*YkH9q=gOt)A_47wNikkz_lc&LdAG8BWURKiJ+C}HN||K@$w+sd(WjeCpXoflD^e;rAXz>wOPmnxSi z)J*@*ac1c+xat@UXYvC&xDdt@tAKZ4LahQp^s`JG@JWlJ`=INgKFAZUjs%U2Z_Hx42F<(OS%LmNTxj>o!UoSvd5M}d{ zCF0VVjDEEjNYfdXab|w)K_$~gQ0@H|FQf(VTwNWU?iOAywGu`wc`AHf3tN>)6fO-S zQ}&{8LAsK_@RZ?s@+Bq*R|t8IJ2KzPS4<;c-~{^4)6b9$B;N}W4W@c20CLH|<0}~B zW-uXU|D~<~lh+$Y=SS0;1%2Lk(tAU0w%v~I3x?gj;qG6f#O5lCUgY2?0T~CmNdQNH zj1B`~=Lj|FYDi7v3beFAFEb`{{`v=Ued+_8?ow!TkbmBmqEr7MIXYx%*J$UIcUi6K z`*UhFo$7z}4pZfamEEF#<;!Qqj+zDOhK-$;XiaY#sIVoC(-NC#xeuK3)g_ENw0TF# z|Bt&q89A+}Bv!@9~j9kCTm&$1R_g+%QUrp@=gz^4< z$XwoAHOn2WtnH3a5~8ekIFY72U(Y~8EryzEOT zj$C}y3#$+FT8bZIkW2?r?v^+)Lm8ZFRf~mme=J6Uk9|{T90iOaLA@W3hqXkm59|W~pN}QS%vzIMr$}DL0bt)Hj)OgU(B+#j; zveGa6ZWy7=h6xr*hIgbFiVk63LoHm_2M2_SgNi8C5nLSE!r4ViBiNqb4{JI&2dGBV9+NjMZV3 zj$7aGE*p*>!xQ4bks3yqHU+=&=6m&M(;h-?o0QYesnm94wPL2W#s2tb`O^SWfG5n6 zF-Vao;NKYhW45IJ(GR2%IoCWzbYvQ))1n9twtzw*74EwMiv@2iT}#!oK4;Se@p3A$ zmZv$`r4~_mHF~`kLzom=4ba}hNYK#?X<3ldrt?2Gg=Cuu&vw=9DPC@~${1)43 zqa-PfRw`w%ES$`NoI7I?hz> zGq=KMaD`U*O(Gv%B23m;y5{8wV3|<*m@+$p@U8+dwj+xn&si zvFFsrXmF(U-$CngOu8Rts9wkv&(EMhUNv*Lh6WkJp@uM@kwkY#G0?CnI^j6bt_3k=<5HoZOyO5@4ZNx2ds2$Fzfui=m^3iZK z%Ks=2<>_JrMLN7ed}jgI382^Sn<-tlgC++};%R_Hr4%4V@OQ986QIl69#^iHGip$* zG@b^*;39+EzQF}P7Hm^J=yC$U6kaS&!6eFIUJ%bX2}oz)WQ0x)b&4}Kj=@`-1> zSKup!(>yeIe8me&-v|L?)>(Irk->WEB|__u!HxmqiFuKMxywUI+%1glL8Mlq^wwG^ z!K$ZFX;*X@H|Xfa}} z^vTS~m|@&w?)%IPsh*7Bi7IILu+*CfI2zw`th!*g*B0I9bOf3#f9`u`YKJwZr!BFl z+@xt=E!JeAk3W#A5lqnD5zmho&6Qz{^PBT5#o5@B`5%!(&93+A^l^vP4_G9<8=yCF zM~2Pa!zXMR(CE2>{=$NA407FhE_XP`%}KOL(RXh`o9>kt?dFC!YGHZr|8f726hB)0 z5DvdV2x32-rlY-fR2pJJh%A^R2vnLy1@z>aK_cU)w9AYJ#iyB2BsN%JnTen*Iyg2U z$z4_K%$ABeJcAppz3q$%QN_h18evGwN$Xbw-X5Db)ya^mQb(zot<&&8b*P$P4*l1* zEJ6)$(Q4}U68CZ@O`QV{E-wj{5Ac_&wZa^WX#nmHS3|KMpm==oOL+oNU{-6g85*=1{u7hPJ>PWNj)Z+Ew)UR%%c zA>E@W&=8oI0#y;3!7$h{9KRgRHN!Ym%;aIvHolxs(bsb}S~*I@8TxuoC2-HI-eCz% z^ee60iUI`gh>?#6(ku1hxS)BV$c26*yzy(s9`Yjim~N94LH$R^MPzXuT>80?5OB!OoJ=c*r$)w#QUu)MacF^qN#Az3H1BWl5t_+C z{r9a&yj6pBR{neH|uBW6U=sSb5jI>Xrrl>ID)fGv(T zmvjtpX6OpBokdyVcxRTi;AhP$69p=$jy{p@t>`&x!l8t^?sWW^9LKt&K8te>Z@`eH zKL|+D2`ZM0t2~_J&jseR>Xdq#3*xJTdgED71!<4|o1&l8d&(|C%#p9qf}^8 zhJE3`BfzN7W9uo=++l*Vvg25-L>mU3w5xaI*4xv=_XP~Ct#1w`DBf)ner<^V}OL5XRRwT;xt0z9+ENHQ-j82H-Bkm zvVR?7$A!#eF)}h1{|y|tC?CyO&M#LkA1x!U8ly@%ld7RgV`d62HXR4WPu4^LYVpiO z;Up@Ya7x^dP5O-=CSM0*T%FbyDrfaogoqRcaR|&XRWvi54qT%Z!*_v>LqM~SerRIa zUz}|I&hUTPG8$wDstzBn;xAQ!GJzRgqc%y&j=xDPY~Zvl(wu_sFc&x2a`CSI@{!I{ zc46R9N>zgq8hAv)&m9^)hN01v?}xJ03#yoprqsn98g07gQt-cmQ7`58uzx#Hmzw3O z1B^A9SyqNUqGMh%HLK#g#~7TYJ4>dugU}^*5T(_(2^!kefPn=KKqLJ-zy4|4bwdHN z`+ddfA?X7y7Io{{$QT z?&c@~e=EHM9%=>h{zvFhq z?l)~ASxm=a|YkGV2R>=jTclh5r z3|6ZDc~achF4o9~k!-Ibu968v&ild&oWARC{e6U~Fq?uuyQsJSM*`9B*k1G<3xmsP zyXx06?L@MogtID65csP<>Z5cld`Ft!lq)Ns&Mp*0i>tjI!$OVn&BUu|mhBF}O&}H% z5S_vJc)~%T_864k!p)n!cez8u@RjYG{Pm>eX7xFM-x}Lp8RN8kK#7uOP}!c1h~!A8-KcX%;r-mothc!^ zbT$T?Rb!#7!>nBfaPhcB$1#w5D5aC3O4QKsz3JB~ooM2Fnxa^{OrXU$ya52*|9#{(XGO%b- zp-DlX;0W5escH|+8*wsx`(_=eP)IS4#*>CE3P_mruY$Ca=FR_WHy$%|0l(u4q_mk~ zIjPcaFEAcswa9LQ5BP8td!x|5-7gKj{@uy%!&^knM8KZ4>RA^G&1q*GNkk zW;A)D-R_wDo^31abThPVf%=cDKbxZV+hA5O8L&u>AG4c--JAB>2qV{0`T+2s)NAD0 zOH46Y+1RyP=Y@DF_37s46x$2ngxVskWR19jUAmhS^tUC8vY;4TJ;@_Ns20GWx5vDRz5Mw?sA?hYd$__>C4EId=Roy`i8Jo0?Rm{;@>5QR@j<~i6V1Nf zSfOtjXJkX1DPD7{WJe<6E&3Z~bGOoD;lvHIfp3=s)$8^7a>QyKzplYI(7xQ33?h$W zPo&E?RdpDt5_|9(_f1BNn8ocS@u#S23VM_SaZEfVlAXVBjnOy>VtYS5$S-SI3VkJdVq}Ujr6@F=caq#+UR03!PN|z;J5R( zo27Mz%-~Ism~60#CZ7M#C8{_yp(@Ue*I8H5Ngt>D7yv&t8GDX*^7Ez*+;VMrtmveR1(0P4$do}heA`HEj6FG_ zir#U^l3rmuR#yl|7H-#JPF$RQv}-@Wgs{Y$9b_!(&Kfc9g)YOlvX%1cbm2!me|dwW z@5(zGa@ut}7h_5Po$I09QwBJ-NuR&yvwqrREhvv#{_O$EebrVn_3&#MdqOAz_O8!N zU8^f+D2w~|A~MZ8^3FMexND6|-wCwioMtVzJ$xRQ3dpG^20?frHv@>L7n6E3CsZ#J zK-xA5uQRj}&1{wy{_kW8BR7kG1VDi)aRe`{lHHjmdesoth>7c%mn�#svFZ1A26u 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 !?58p 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 abE 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缾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 }9-DoN&Qv2`T( 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 tP=-L?9sc*R+ None: - """创建默认配置文件""" - default_config = """[bot] -qq = 1 # 填入你的机器人QQ -nickname = "麦麦" # 你希望bot被称呼的名字 - -[message] -min_text_length = 2 # 与麦麦聊天时麦麦只会回答文本大于等于此数的消息 -max_context_size = 15 # 麦麦获得的上下文数量,超出数量后自动丢弃 -emoji_chance = 0.2 # 麦麦使用表情包的概率 - -[emoji] -check_interval = 120 -register_interval = 10 - -[cq_code] -enable_pic_translate = false - -[response] -api_using = "siliconflow" # 选择大模型API,可选值为siliconflow,deepseek -api_paid = false # 是否使用付费api -model_r1_probability = 0.8 # 麦麦回答时选择R1模型的概率 -model_v3_probability = 0.1 # 麦麦回答时选择V3模型的概率 -model_r1_distill_probability = 0.1 # 麦麦回答时选择R1蒸馏模型的概率 - -[memory] -build_memory_interval = 300 # 记忆构建间隔 - -[others] -enable_advance_output = false # 开启后输出更多日志 - -[groups] -talk_allowed = [] # 可以回复消息的群 -talk_frequency_down = [] # 降低回复频率的群 -ban_user_id = [] # 禁止回复消息的QQ号 -""" - with open(config_path, "w", encoding="utf-8") as f: - f.write(default_config) - logger.success(f"已创建默认配置文件: {config_path}") @classmethod def load_config(cls, config_path: str = None) -> "BotConfig": @@ -127,9 +89,26 @@ ban_user_id = [] # 禁止回复消息的QQ号 config.MODEL_V3_PROBABILITY = response_config.get("model_v3_probability", config.MODEL_V3_PROBABILITY) config.MODEL_R1_DISTILL_PROBABILITY = response_config.get("model_r1_distill_probability", config.MODEL_R1_DISTILL_PROBABILITY) config.API_USING = response_config.get("api_using", config.API_USING) - if response_config.get("api_using", config.API_PAID): - config.SILICONFLOW_MODEL_R1 = "Pro/deepseek-ai/DeepSeek-R1" - config.SILICONFLOW_MODEL_V3 = "Pro/deepseek-ai/DeepSeek-V3" + config.API_PAID = response_config.get("api_paid", config.API_PAID) + + # 加载模型配置 + if "model" in toml_dict: + model_config = toml_dict["model"] + + if "llm_reasoning" in model_config: + config.llm_reasoning = model_config["llm_reasoning"] + + if "llm_reasoning_minor" in model_config: + config.llm_reasoning_minor = model_config["llm_reasoning_minor"] + + if "llm_normal" in model_config: + config.llm_normal = model_config["llm_normal"] + + if "llm_normal_minor" in model_config: + config.llm_normal_minor = model_config["llm_normal_minor"] + + if "vlm" in model_config: + config.vlm = model_config["vlm"] # 消息配置 if "message" in toml_dict: @@ -172,10 +151,6 @@ else: global_config = BotConfig.load_config(config_path=bot_config_path) -# config_dir = os.path.dirname(bot_config_path) - -# logger.info(f"尝试从 {bot_config_path} 加载机器人配置") -# global_config = BotConfig.load_config(config_path=bot_config_path) @dataclass class LLMConfig: diff --git a/src/plugins/chat/cq_code.py b/src/plugins/chat/cq_code.py index 386124c92..4d70736cd 100644 --- a/src/plugins/chat/cq_code.py +++ b/src/plugins/chat/cq_code.py @@ -12,6 +12,7 @@ import time import asyncio from .utils_image import storage_image,storage_emoji from .utils_user import get_user_nickname +from ..models.utils_model import LLM_request #解析各种CQ码 #包含CQ码类 import urllib3 @@ -57,6 +58,11 @@ class CQCode: translated_plain_text: Optional[str] = None reply_message: Dict = None # 存储回复消息 image_base64: Optional[str] = None + _llm: Optional[LLM_request] = None + + def __post_init__(self): + """初始化LLM实例""" + self._llm = LLM_request(model=global_config.vlm, temperature=0.4, max_tokens=300) def translate(self): """根据CQ码类型进行相应的翻译处理""" @@ -161,7 +167,7 @@ class CQCode: # 将 base64 字符串转换为字节类型 image_bytes = base64.b64decode(base64_str) storage_emoji(image_bytes) - return self.get_image_description(base64_str) + return self.get_emoji_description(base64_str) else: return '[表情包]' @@ -181,93 +187,23 @@ class CQCode: def get_emoji_description(self, image_base64: str) -> str: """调用AI接口获取表情包描述""" - headers = { - "Content-Type": "application/json", - "Authorization": f"Bearer {config.siliconflow_key}" - } - - payload = { - "model": "deepseek-ai/deepseek-vl2", - "messages": [ - { - "role": "user", - "content": [ - { - "type": "text", - "text": "这是一个表情包,请用简短的中文描述这个表情包传达的情感和含义。最多20个字。" - }, - { - "type": "image_url", - "image_url": { - "url": f"data:image/jpeg;base64,{image_base64}" - } - } - ] - } - ], - "max_tokens": 50, - "temperature": 0.4 - } - - response = requests.post( - f"{config.siliconflow_base_url}chat/completions", - headers=headers, - json=payload, - timeout=30 - ) - - if response.status_code == 200: - result_json = response.json() - if "choices" in result_json and len(result_json["choices"]) > 0: - description = result_json["choices"][0]["message"]["content"] - return f"[表情包:{description}]" - - raise ValueError(f"AI接口调用失败: {response.text}") + try: + prompt = "这是一个表情包,请用简短的中文描述这个表情包传达的情感和含义。最多20个字。" + description, _ = self._llm.generate_response_for_image_sync(prompt, image_base64) + return f"[表情包:{description}]" + except Exception as e: + print(f"\033[1;31m[错误]\033[0m AI接口调用失败: {str(e)}") + return "[表情包]" def get_image_description(self, image_base64: str) -> str: """调用AI接口获取普通图片描述""" - headers = { - "Content-Type": "application/json", - "Authorization": f"Bearer {config.siliconflow_key}" - } - - payload = { - "model": "deepseek-ai/deepseek-vl2", - "messages": [ - { - "role": "user", - "content": [ - { - "type": "text", - "text": "请用中文描述这张图片的内容。如果有文字,请把文字都描述出来。并尝试猜测这个图片的含义。最多200个字。" - }, - { - "type": "image_url", - "image_url": { - "url": f"data:image/jpeg;base64,{image_base64}" - } - } - ] - } - ], - "max_tokens": 300, - "temperature": 0.6 - } - - response = requests.post( - f"{config.siliconflow_base_url}chat/completions", - headers=headers, - json=payload, - timeout=30 - ) - - if response.status_code == 200: - result_json = response.json() - if "choices" in result_json and len(result_json["choices"]) > 0: - description = result_json["choices"][0]["message"]["content"] - return f"[图片:{description}]" - - raise ValueError(f"AI接口调用失败: {response.text}") + try: + prompt = "请用中文描述这张图片的内容。如果有文字,请把文字都描述出来。并尝试猜测这个图片的含义。最多200个字。" + description, _ = self._llm.generate_response_for_image_sync(prompt, image_base64) + return f"[图片:{description}]" + except Exception as e: + print(f"\033[1;31m[错误]\033[0m AI接口调用失败: {str(e)}") + return "[图片]" def translate_forward(self) -> str: """处理转发消息""" diff --git a/src/plugins/chat/emoji_manager.py b/src/plugins/chat/emoji_manager.py index c8c9dc814..58713e296 100644 --- a/src/plugins/chat/emoji_manager.py +++ b/src/plugins/chat/emoji_manager.py @@ -14,6 +14,8 @@ import asyncio import time from nonebot import get_driver +from ..chat.config import global_config +from ..models.utils_model import LLM_request driver = get_driver() config = driver.config @@ -43,6 +45,7 @@ class EmojiManager: def __init__(self): self.db = Database.get_instance() self._scan_task = None + self.llm = LLM_request(model=global_config.vlm, temperature=0.3, max_tokens=50) def _ensure_emoji_dir(self): """确保表情存储目录存在""" @@ -87,55 +90,23 @@ class EmojiManager: print(f"\033[1;31m[错误]\033[0m 记录表情使用失败: {str(e)}") async def _get_emotion_from_text(self, text: str) -> List[str]: - """从文本中识别情感关键词,使用DeepSeek API进行分析 + """从文本中识别情感关键词 Args: text: 输入文本 Returns: List[str]: 匹配到的情感标签列表 """ try: - # 准备请求数据 - headers = { - "Content-Type": "application/json", - "Authorization": f"Bearer {config.siliconflow_key}" - } + prompt = f'分析这段文本:"{text}",从"happy,angry,sad,surprised,disgusted,fearful,neutral"中选出最匹配的1个情感标签。只需要返回标签,不要输出其他任何内容。' - payload = { - "model": "deepseek-ai/DeepSeek-V3", - "messages": [ - { - "role": "user", - "content": [ - { - "type": "text", - "text": f'分析这段文本:"{text}",从"happy,angry,sad,surprised,disgusted,fearful,neutral"中选出最匹配的1个情感标签。只需要返回标签,不要输出其他任何内容。' - } - ] - } - ], - "max_tokens": 50, - "temperature": 0.3 - } + content, _ = await self.llm.generate_response(prompt) + emotion = content.strip().lower() - async with aiohttp.ClientSession() as session: - async with session.post( - f"{config.siliconflow_base_url}chat/completions", - headers=headers, - json=payload - ) as response: - if response.status != 200: - print(f"\033[1;31m[错误]\033[0m API请求失败: {await response.text()}") - return ['neutral'] - - result = json.loads(await response.text()) - if "choices" in result and len(result["choices"]) > 0: - emotion = result["choices"][0]["message"]["content"].strip().lower() - # 确保返回的标签是有效的 - if emotion in self.EMOTION_KEYWORDS: - print(f"\033[1;32m[成功]\033[0m 识别到的情感: {emotion}") - return [emotion] # 返回单个情感标签的列表 + if emotion in self.EMOTION_KEYWORDS: + print(f"\033[1;32m[成功]\033[0m 识别到的情感: {emotion}") + return [emotion] - return ['neutral'] # 如果无法识别情感,返回neutral + return ['neutral'] except Exception as e: print(f"\033[1;31m[错误]\033[0m 情感分析失败: {str(e)}") @@ -250,52 +221,20 @@ class EmojiManager: async def _get_emoji_tag(self, image_base64: str) -> str: """获取表情包的标签""" - async with aiohttp.ClientSession() as session: - headers = { - "Content-Type": "application/json", - "Authorization": f"Bearer {config.siliconflow_key}" - } + try: + prompt = '这是一个表情包,请从"happy", "angry", "sad", "surprised", "disgusted", "fearful", "neutral"中选出1个情感标签。只输出标签,不要输出其他任何内容,只输出情感标签就好' - payload = { - "model": "deepseek-ai/deepseek-vl2", - "messages": [ - { - "role": "user", - "content": [ - { - "type": "text", - "text": '这是一个表情包,请从"happy", "angry", "sad", "surprised", "disgusted", "fearful", "neutral"中选出1个情感标签。只输出标签,不要输出其他任何内容,只输出情感标签就好' - }, - { - "type": "image_url", - "image_url": { - "url": f"data:image/jpeg;base64,{image_base64}" - } - } - ] - } - ], - "max_tokens": 60, - "temperature": 0.3 - } + content, _ = await self.llm.generate_response_for_image(prompt, image_base64) + tag_result = content.strip().lower() - async with session.post( - f"{config.siliconflow_base_url}chat/completions", - headers=headers, - json=payload - ) as response: - if response.status == 200: - result = await response.json() - if "choices" in result and len(result["choices"]) > 0: - tag_result = result["choices"][0]["message"]["content"].strip().lower() - - valid_tags = ["happy", "angry", "sad", "surprised", "disgusted", "fearful", "neutral"] - for tag_match in valid_tags: - if tag_match in tag_result or tag_match == tag_result: - return tag_match - print(f"\033[1;33m[警告]\033[0m 无效的标签: {tag_match}, 跳过") - else: - print(f"\033[1;31m[错误]\033[0m 获取标签失败, 状态码: {response.status}") + valid_tags = ["happy", "angry", "sad", "surprised", "disgusted", "fearful", "neutral"] + for tag_match in valid_tags: + if tag_match in tag_result or tag_match == tag_result: + return tag_match + print(f"\033[1;33m[警告]\033[0m 无效的标签: {tag_result}, 跳过") + + except Exception as e: + print(f"\033[1;31m[错误]\033[0m 获取标签失败: {str(e)}") print(f"\033[1;32m[调试信息]\033[0m 使用默认标签: neutral") return "skip" # 默认标签 diff --git a/src/plugins/chat/llm_generator.py b/src/plugins/chat/llm_generator.py index 682be8a87..a9c028827 100644 --- a/src/plugins/chat/llm_generator.py +++ b/src/plugins/chat/llm_generator.py @@ -13,249 +13,113 @@ from .prompt_builder import prompt_builder from .config import global_config from .utils import process_llm_response from nonebot import get_driver +from ..models.utils_model import LLM_request driver = get_driver() config = driver.config -class LLMResponseGenerator: +class ResponseGenerator: def __init__(self): - if global_config.API_USING == "siliconflow": - self.client = OpenAI( - api_key=config.siliconflow_key, - base_url=config.siliconflow_base_url - ) - elif global_config.API_USING == "deepseek": - self.client = OpenAI( - api_key=config.deep_seek_key, - base_url=config.deep_seek_base_url - ) - + self.model_r1 = LLM_request(model=global_config.llm_reasoning, temperature=0.7) + self.model_v3 = LLM_request(model=global_config.llm_normal, temperature=0.7) + self.model_r1_distill = LLM_request(model=global_config.llm_reasoning_minor, temperature=0.7) self.db = Database.get_instance() - - # 当前使用的模型类型 self.current_model_type = 'r1' # 默认使用 R1 async def generate_response(self, message: Message) -> Optional[Union[str, List[str]]]: """根据当前模型类型选择对应的生成函数""" - # 从global_config中获取模型概率值 - model_r1_probability = global_config.MODEL_R1_PROBABILITY - model_v3_probability = global_config.MODEL_V3_PROBABILITY - model_r1_distill_probability = global_config.MODEL_R1_DISTILL_PROBABILITY - - # 生成随机数并根据概率选择模型 + # 从global_config中获取模型概率值并选择模型 rand = random.random() - if rand < model_r1_probability: + if rand < global_config.MODEL_R1_PROBABILITY: self.current_model_type = 'r1' - elif rand < model_r1_probability + model_v3_probability: + current_model = self.model_r1 + elif rand < global_config.MODEL_R1_PROBABILITY + global_config.MODEL_V3_PROBABILITY: self.current_model_type = 'v3' + current_model = self.model_v3 else: - self.current_model_type = 'r1_distill' # 默认使用 R1-Distill - + self.current_model_type = 'r1_distill' + current_model = self.model_r1_distill print(f"+++++++++++++++++{global_config.BOT_NICKNAME}{self.current_model_type}思考中+++++++++++++++++") - if self.current_model_type == 'r1': - model_response = await self._generate_r1_response(message) - elif self.current_model_type == 'v3': - model_response = await self._generate_v3_response(message) - else: - model_response = await self._generate_r1_distill_response(message) - # 打印情感标签 - print(f'{global_config.BOT_NICKNAME}的回复是:{model_response}') - model_response, emotion = await self._process_response(model_response) + model_response = await self._generate_response_with_model(message, current_model) if model_response: - print(f"为 '{model_response}' 获取到的情感标签为:{emotion}") - - return model_response, emotion + print(f'{global_config.BOT_NICKNAME}的回复是:{model_response}') + model_response, emotion = await self._process_response(model_response) + if model_response: + print(f"为 '{model_response}' 获取到的情感标签为:{emotion}") + return model_response, emotion + return None, [] - async def _generate_base_response( - self, - message: Message, - model_name: str, - model_params: Optional[Dict[str, Any]] = None - ) -> Optional[str]: + async def _generate_response_with_model(self, message: Message, model: LLM_request) -> Optional[str]: + """使用指定的模型生成回复""" sender_name = message.user_nickname or f"用户{message.user_id}" # 获取关系值 - if relationship_manager.get_relationship(message.user_id): - relationship_value = relationship_manager.get_relationship(message.user_id).relationship_value + relationship_value = relationship_manager.get_relationship(message.user_id).relationship_value if relationship_manager.get_relationship(message.user_id) else 0.0 + if relationship_value != 0.0: print(f"\033[1;32m[关系管理]\033[0m 回复中_当前关系值: {relationship_value}") - else: - relationship_value = 0.0 - - ''' 构建prompt ''' - prompt,prompt_check = prompt_builder._build_prompt( + # 构建prompt + prompt, prompt_check = prompt_builder._build_prompt( message_txt=message.processed_plain_text, sender_name=sender_name, relationship_value=relationship_value, group_id=message.group_id ) - - - # 设置默认参数 - default_params = { - "model": model_name, - "messages": [{"role": "user", "content": prompt}], - "stream": False, - "max_tokens": 1024, - "temperature": 0.7 - } - - default_params_check = { - "model": "deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", - "messages": [{"role": "user", "content": prompt_check}], - "stream": False, - "max_tokens": 1024, - "temperature": 0.7 - } - - # 更新参数 - if model_params: - default_params.update(model_params) - - - def create_completion(): - return self.client.chat.completions.create(**default_params) - - def create_completion_check(): - return self.client.chat.completions.create(**default_params_check) - - loop = asyncio.get_event_loop() # 读空气模块 - air = 0 - reasoning_content_check='' - content_check='' if global_config.enable_kuuki_read: - response_check = await loop.run_in_executor(None, create_completion_check) - if response_check: - reasoning_content_check = "" - if hasattr(response_check.choices[0].message, "reasoning"): - reasoning_content_check = response_check.choices[0].message.reasoning or reasoning_content_check - elif hasattr(response_check.choices[0].message, "reasoning_content"): - reasoning_content_check = response_check.choices[0].message.reasoning_content or reasoning_content_check - content_check = response_check.choices[0].message.content - print(f"\033[1;32m[读空气]\033[0m 读空气结果为{content_check}") - if 'yes' not in content_check.lower(): - air = 1 - #稀释读空气的判定 - if air == 1 and random.random() < 0.3: - self.db.db.reasoning_logs.insert_one({ - 'time': time.time(), - 'group_id': message.group_id, - 'user': sender_name, - 'message': message.processed_plain_text, - 'model': model_name, - 'reasoning_check': reasoning_content_check, - 'response_check': content_check, - 'reasoning': "", - 'response': "", - 'prompt': prompt, - 'prompt_check': prompt_check, - 'model_params': default_params - }) - return None - - - - + content_check, reasoning_content_check = await self.model_v3.generate_response(prompt_check) + print(f"\033[1;32m[读空气]\033[0m 读空气结果为{content_check}") + if 'yes' not in content_check.lower() and random.random() < 0.3: + self._save_to_db( + message=message, + sender_name=sender_name, + prompt=prompt, + prompt_check=prompt_check, + content="", + content_check=content_check, + reasoning_content="", + reasoning_content_check=reasoning_content_check + ) + return None - response = await loop.run_in_executor(None, create_completion) + # 生成回复 + content, reasoning_content = await model.generate_response(prompt) - # 检查响应内容 - if not response: - print("请求未返回任何内容") - return None - - if not response.choices or not response.choices[0].message.content: - print("请求返回的内容无效:", response) - return None - - content = response.choices[0].message.content - - # 获取推理内容 - reasoning_content = "" - if hasattr(response.choices[0].message, "reasoning"): - reasoning_content = response.choices[0].message.reasoning or reasoning_content - elif hasattr(response.choices[0].message, "reasoning_content"): - reasoning_content = response.choices[0].message.reasoning_content or reasoning_content - # 保存到数据库 + self._save_to_db( + message=message, + sender_name=sender_name, + prompt=prompt, + prompt_check=prompt_check, + content=content, + content_check=content_check if global_config.enable_kuuki_read else "", + reasoning_content=reasoning_content, + reasoning_content_check=reasoning_content_check if global_config.enable_kuuki_read else "" + ) + + return content + + def _save_to_db(self, message: Message, sender_name: str, prompt: str, prompt_check: str, + content: str, content_check: str, reasoning_content: str, reasoning_content_check: str): + """保存对话记录到数据库""" self.db.db.reasoning_logs.insert_one({ 'time': time.time(), 'group_id': message.group_id, 'user': sender_name, 'message': message.processed_plain_text, - 'model': model_name, + 'model': self.current_model_type, 'reasoning_check': reasoning_content_check, 'response_check': content_check, 'reasoning': reasoning_content, 'response': content, 'prompt': prompt, - 'prompt_check': prompt_check, - 'model_params': default_params + 'prompt_check': prompt_check }) - - return content - - async def _generate_r1_response(self, message: Message) -> Optional[str]: - """使用 DeepSeek-R1 模型生成回复""" - if global_config.API_USING == "deepseek": - return await self._generate_base_response( - message, - global_config.DEEPSEEK_MODEL_R1, - {"temperature": 0.7, "max_tokens": 1024} - ) - else: - return await self._generate_base_response( - message, - global_config.SILICONFLOW_MODEL_R1, - {"temperature": 0.7, "max_tokens": 1024} - ) - - async def _generate_v3_response(self, message: Message) -> Optional[str]: - """使用 DeepSeek-V3 模型生成回复""" - if global_config.API_USING == "deepseek": - return await self._generate_base_response( - message, - global_config.DEEPSEEK_MODEL_V3, - {"temperature": 0.8, "max_tokens": 1024} - ) - else: - return await self._generate_base_response( - message, - global_config.SILICONFLOW_MODEL_V3, - {"temperature": 0.8, "max_tokens": 1024} - ) - - async def _generate_r1_distill_response(self, message: Message) -> Optional[str]: - """使用 DeepSeek-R1-Distill-Qwen-32B 模型生成回复""" - return await self._generate_base_response( - message, - global_config.SILICONFLOW_MODEL_R1_DISTILL, - {"temperature": 0.7, "max_tokens": 1024} - ) - - async def _get_group_chat_context(self, message: Message) -> str: - """获取群聊上下文""" - recent_messages = self.db.db.messages.find( - {"group_id": message.group_id} - ).sort("time", -1).limit(15) - - messages_list = list(recent_messages)[::-1] - group_chat = "" - - for msg_dict in messages_list: - time_str = time.strftime("%m-%d %H:%M:%S", time.localtime(msg_dict['time'])) - display_name = msg_dict.get('user_nickname', f"用户{msg_dict['user_id']}") - content = msg_dict.get('processed_plain_text', msg_dict['plain_text']) - - group_chat += f"[{time_str}] {display_name}: {content}\n" - - return group_chat async def _get_emotion_tags(self, content: str) -> List[str]: """提取情感标签""" @@ -266,33 +130,12 @@ class LLMResponseGenerator: 输出: ''' - messages = [{"role": "user", "content": prompt}] - - loop = asyncio.get_event_loop() - if global_config.API_USING == "deepseek": - model = global_config.DEEPSEEK_MODEL_V3 - else: - model = global_config.SILICONFLOW_MODEL_V3 - create_completion = partial( - self.client.chat.completions.create, - model=model, - messages=messages, - stream=False, - max_tokens=30, - temperature=0.6 - ) - response = await loop.run_in_executor(None, create_completion) - - if response.choices[0].message.content: - # 确保返回的是列表格式 - emotion_tag = response.choices[0].message.content.strip() - return [emotion_tag] # 将单个标签包装成列表返回 - - return ["neutral"] # 如果无法获取情感标签,返回默认值 + content, _ = await self.model_v3.generate_response(prompt) + return [content.strip()] if content else ["neutral"] except Exception as e: print(f"获取情感标签时出错: {e}") - return ["neutral"] # 发生错误时返回默认值 + return ["neutral"] async def _process_response(self, content: str) -> Tuple[List[str], List[str]]: """处理响应内容,返回处理后的内容和情感标签""" @@ -300,10 +143,6 @@ class LLMResponseGenerator: return None, [] emotion_tags = await self._get_emotion_tags(content) - processed_response = process_llm_response(content) - return processed_response, emotion_tags - -# 创建全局实例 -llm_response = LLMResponseGenerator() \ No newline at end of file + return processed_response, emotion_tags \ No newline at end of file diff --git a/src/plugins/memory_system/llm_module.py b/src/plugins/memory_system/llm_module.py deleted file mode 100644 index c2b6cf042..000000000 --- a/src/plugins/memory_system/llm_module.py +++ /dev/null @@ -1,68 +0,0 @@ -import os -import requests -from typing import Tuple, Union -import time -from nonebot import get_driver -import aiohttp -import asyncio -from src.plugins.chat.config import global_config -driver = get_driver() -config = driver.config - -class LLMModel: - # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): - def __init__(self, model_name=global_config.SILICONFLOW_MODEL_V3, **kwargs): - self.model_name = model_name - self.params = kwargs - self.api_key = config.siliconflow_key - self.base_url = config.siliconflow_base_url - - async def generate_response(self, prompt: str) -> Tuple[str, str]: - """根据输入的提示生成模型的响应""" - headers = { - "Authorization": f"Bearer {self.api_key}", - "Content-Type": "application/json" - } - - # 构建请求体 - data = { - "model": self.model_name, - "messages": [{"role": "user", "content": prompt}], - "temperature": 0.5, - **self.params - } - - # 发送请求到完整的chat/completions端点 - api_url = f"{self.base_url.rstrip('/')}/chat/completions" - - max_retries = 3 - base_wait_time = 15 - - for retry in range(max_retries): - try: - async with aiohttp.ClientSession() as session: - async with session.post(api_url, headers=headers, json=data) as response: - if response.status == 429: - wait_time = base_wait_time * (2 ** retry) # 指数退避 - print(f"遇到请求限制(429),等待{wait_time}秒后重试...") - await asyncio.sleep(wait_time) - continue - - response.raise_for_status() # 检查其他响应状态 - - result = await response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content - return "没有返回结果", "" - - except Exception as e: - if retry < max_retries - 1: # 如果还有重试机会 - wait_time = base_wait_time * (2 ** retry) - print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") - await asyncio.sleep(wait_time) - else: - return f"请求失败: {str(e)}", "" - - return "达到最大重试次数,请求仍然失败", "" \ No newline at end of file diff --git a/src/plugins/memory_system/memory.py b/src/plugins/memory_system/memory.py index cab41f903..a051192a5 100644 --- a/src/plugins/memory_system/memory.py +++ b/src/plugins/memory_system/memory.py @@ -1,19 +1,16 @@ # -*- coding: utf-8 -*- import os import jieba -from .llm_module import LLMModel import networkx as nx import matplotlib.pyplot as plt -import math from collections import Counter import datetime import random import time from ..chat.config import global_config -import sys from ...common.database import Database # 使用正确的导入语法 from ..chat.utils import calculate_information_content, get_cloest_chat_from_db - +from ..models.utils_model import LLM_request class Memory_graph: def __init__(self): self.G = nx.Graph() # 使用 networkx 的图结构 @@ -169,8 +166,8 @@ class Memory_graph: class Hippocampus: def __init__(self,memory_graph:Memory_graph): self.memory_graph = memory_graph - self.llm_model = LLMModel() - self.llm_model_small = LLMModel(model_name="deepseek-ai/DeepSeek-V2.5") + self.llm_model = LLM_request(model = global_config.llm_normal,temperature=0.5) + self.llm_model_small = LLM_request(model = global_config.llm_normal_minor,temperature=0.5) def get_memory_sample(self,chat_size=20,time_frequency:dict={'near':2,'mid':4,'far':3}): current_timestamp = datetime.datetime.now().timestamp() diff --git a/src/plugins/models/utils_model.py b/src/plugins/models/utils_model.py new file mode 100644 index 000000000..5f4d02df5 --- /dev/null +++ b/src/plugins/models/utils_model.py @@ -0,0 +1,199 @@ +import aiohttp +import asyncio +import requests +import time +from typing import Tuple, Union +from nonebot import get_driver +from ..chat.config import global_config +driver = get_driver() +config = driver.config + +class LLM_request: + def __init__(self, model = global_config.llm_normal,**kwargs): + # 将大写的配置键转换为小写并从config中获取实际值 + try: + self.api_key = getattr(config, model["key"]) + self.base_url = getattr(config, model["base_url"]) + except AttributeError as e: + raise ValueError(f"配置错误:找不到对应的配置项 - {str(e)}") + self.model_name = model["name"] + self.params = kwargs + + async def generate_response(self, prompt: str) -> Tuple[str, str]: + """根据输入的提示生成模型的异步响应""" + headers = { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json" + } + + # 构建请求体 + data = { + "model": self.model_name, + "messages": [{"role": "user", "content": prompt}], + **self.params + } + + # 发送请求到完整的chat/completions端点 + api_url = f"{self.base_url.rstrip('/')}/chat/completions" + + max_retries = 3 + base_wait_time = 15 + + for retry in range(max_retries): + try: + async with aiohttp.ClientSession() as session: + async with session.post(api_url, headers=headers, json=data) as response: + if response.status == 429: + wait_time = base_wait_time * (2 ** retry) # 指数退避 + print(f"遇到请求限制(429),等待{wait_time}秒后重试...") + await asyncio.sleep(wait_time) + continue + + response.raise_for_status() # 检查其他响应状态 + + result = await response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content + return "没有返回结果", "" + + except Exception as e: + if retry < max_retries - 1: # 如果还有重试机会 + wait_time = base_wait_time * (2 ** retry) + print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") + await asyncio.sleep(wait_time) + else: + return f"请求失败: {str(e)}", "" + + return "达到最大重试次数,请求仍然失败", "" + + async def generate_response_for_image(self, prompt: str, image_base64: str) -> Tuple[str, str]: + """根据输入的提示和图片生成模型的异步响应""" + headers = { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json" + } + + # 构建请求体 + data = { + "model": self.model_name, + "messages": [ + { + "role": "user", + "content": [ + { + "type": "text", + "text": prompt + }, + { + "type": "image_url", + "image_url": { + "url": f"data:image/jpeg;base64,{image_base64}" + } + } + ] + } + ], + **self.params + } + + # 发送请求到完整的chat/completions端点 + api_url = f"{self.base_url.rstrip('/')}/chat/completions" + + max_retries = 3 + base_wait_time = 15 + + for retry in range(max_retries): + try: + async with aiohttp.ClientSession() as session: + async with session.post(api_url, headers=headers, json=data) as response: + if response.status == 429: + wait_time = base_wait_time * (2 ** retry) # 指数退避 + print(f"遇到请求限制(429),等待{wait_time}秒后重试...") + await asyncio.sleep(wait_time) + continue + + response.raise_for_status() # 检查其他响应状态 + + result = await response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content + return "没有返回结果", "" + + except Exception as e: + if retry < max_retries - 1: # 如果还有重试机会 + wait_time = base_wait_time * (2 ** retry) + print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") + await asyncio.sleep(wait_time) + else: + return f"请求失败: {str(e)}", "" + + return "达到最大重试次数,请求仍然失败", "" + + def generate_response_for_image_sync(self, prompt: str, image_base64: str) -> Tuple[str, str]: + """同步方法:根据输入的提示和图片生成模型的响应""" + headers = { + "Authorization": f"Bearer {self.api_key}", + "Content-Type": "application/json" + } + + # 构建请求体 + data = { + "model": self.model_name, + "messages": [ + { + "role": "user", + "content": [ + { + "type": "text", + "text": prompt + }, + { + "type": "image_url", + "image_url": { + "url": f"data:image/jpeg;base64,{image_base64}" + } + } + ] + } + ], + **self.params + } + + # 发送请求到完整的chat/completions端点 + api_url = f"{self.base_url.rstrip('/')}/chat/completions" + + max_retries = 3 + base_wait_time = 15 + + for retry in range(max_retries): + try: + response = requests.post(api_url, headers=headers, json=data, timeout=30) + + if response.status_code == 429: + wait_time = base_wait_time * (2 ** retry) # 指数退避 + print(f"遇到请求限制(429),等待{wait_time}秒后重试...") + time.sleep(wait_time) + continue + + response.raise_for_status() # 检查其他响应状态 + + result = response.json() + if "choices" in result and len(result["choices"]) > 0: + content = result["choices"][0]["message"]["content"] + reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") + return content, reasoning_content + return "没有返回结果", "" + + except Exception as e: + if retry < max_retries - 1: # 如果还有重试机会 + wait_time = base_wait_time * (2 ** retry) + print(f"请求失败,等待{wait_time}秒后重试... 错误: {str(e)}") + time.sleep(wait_time) + else: + return f"请求失败: {str(e)}", "" + + return "达到最大重试次数,请求仍然失败", "" diff --git a/src/plugins/schedule/schedule_generator.py b/src/plugins/schedule/schedule_generator.py index 63e3235a3..24b2a32dd 100644 --- a/src/plugins/schedule/schedule_generator.py +++ b/src/plugins/schedule/schedule_generator.py @@ -1,10 +1,10 @@ import datetime import os from typing import List, Dict -from .schedule_llm_module import LLMModel from ...common.database import Database # 使用正确的导入语法 from src.plugins.chat.config import global_config from nonebot import get_driver +from ..models.utils_model import LLM_request driver = get_driver() config = driver.config @@ -21,22 +21,27 @@ Database.initialize( class ScheduleGenerator: def __init__(self): - if global_config.API_USING == "siliconflow": - self.llm_scheduler = LLMModel(model_name=global_config.SILICONFLOW_MODEL_V3) - elif global_config.API_USING == "deepseek": - self.llm_scheduler = LLMModel(model_name=global_config.DEEPSEEK_MODEL_V3) + #根据global_config.llm_normal这一字典配置指定模型 + # self.llm_scheduler = LLMModel(model = global_config.llm_normal,temperature=0.9) + self.llm_scheduler = LLM_request(model = global_config.llm_normal,temperature=0.9) self.db = Database.get_instance() - + self.today_schedule_text = "" + self.today_schedule = {} + self.tomorrow_schedule_text = "" + self.tomorrow_schedule = {} + self.yesterday_schedule_text = "" + self.yesterday_schedule = {} + + async def initialize(self): today = datetime.datetime.now() tomorrow = datetime.datetime.now() + datetime.timedelta(days=1) yesterday = datetime.datetime.now() - datetime.timedelta(days=1) - self.today_schedule_text, self.today_schedule = self.generate_daily_schedule(target_date=today) - - self.tomorrow_schedule_text, self.tomorrow_schedule = self.generate_daily_schedule(target_date=tomorrow,read_only=True) - self.yesterday_schedule_text, self.yesterday_schedule = self.generate_daily_schedule(target_date=yesterday,read_only=True) + self.today_schedule_text, self.today_schedule = await self.generate_daily_schedule(target_date=today) + self.tomorrow_schedule_text, self.tomorrow_schedule = await self.generate_daily_schedule(target_date=tomorrow,read_only=True) + self.yesterday_schedule_text, self.yesterday_schedule = await self.generate_daily_schedule(target_date=yesterday,read_only=True) - def generate_daily_schedule(self, target_date: datetime.datetime = None,read_only:bool = False) -> Dict[str, str]: + async def generate_daily_schedule(self, target_date: datetime.datetime = None,read_only:bool = False) -> Dict[str, str]: if target_date is None: target_date = datetime.datetime.now() @@ -60,7 +65,7 @@ class ScheduleGenerator: 3. 晚上的计划和休息时间 请按照时间顺序列出具体时间点和对应的活动,用一个时间点而不是时间段来表示时间,用逗号,隔开时间与活动,格式为"时间,活动",例如"08:00,起床"。""" - schedule_text, _ = self.llm_scheduler.generate_response(prompt) + schedule_text, _ = await self.llm_scheduler.generate_response(prompt) # print(self.schedule_text) self.db.db.schedule.insert_one({"date": date_str, "schedule": schedule_text}) else: diff --git a/src/plugins/schedule/schedule_llm_module.py b/src/plugins/schedule/schedule_llm_module.py deleted file mode 100644 index 21e3f7681..000000000 --- a/src/plugins/schedule/schedule_llm_module.py +++ /dev/null @@ -1,61 +0,0 @@ -import os -import requests -import aiohttp -from typing import Tuple, Union -from nonebot import get_driver -from src.plugins.chat.config import global_config -driver = get_driver() -config = driver.config - -class LLMModel: - # def __init__(self, model_name="deepseek-ai/DeepSeek-R1-Distill-Qwen-32B", **kwargs): - def __init__(self, model_name=global_config.SILICONFLOW_MODEL_R1,api_using=None, **kwargs): - if api_using == "deepseek": - self.api_key = config.deep_seek_key - self.base_url = config.deep_seek_base_url - self.model_name = global_config.DEEPSEEK_MODEL_R1 - else: - self.api_key = config.siliconflow_key - self.base_url = config.siliconflow_base_url - self.model_name = model_name - self.params = kwargs - - def generate_response(self, prompt: str) -> Tuple[str, str]: - """根据输入的提示生成模型的响应""" - headers = { - "Authorization": f"Bearer {self.api_key}", - "Content-Type": "application/json" - } - - # 构建请求体 - data = { - "model": self.model_name, - "messages": [{"role": "user", "content": prompt}], - "temperature": 0.9, - **self.params - } - - # 发送请求到完整的chat/completions端点 - api_url = f"{self.base_url.rstrip('/')}/chat/completions" - - try: - response = requests.post(api_url, headers=headers, json=data) - response.raise_for_status() # 检查响应状态 - - result = response.json() - if "choices" in result and len(result["choices"]) > 0: - content = result["choices"][0]["message"]["content"] - reasoning_content = result["choices"][0]["message"].get("reasoning_content", "") - return content, reasoning_content # 返回内容和推理内容 - return "没有返回结果", "" # 返回两个值 - - except Exception as e: - return f"请求失败: {str(e)}", "" # 返回错误信息和空字符串 - -# 示例用法 -if __name__ == "__main__": - model = LLMModel() # 默认使用 DeepSeek-V3 模型 - prompt = "你好,你喜欢我吗?" - result, reasoning = model.generate_response(prompt) - print("回复内容:", result) - print("推理内容:", reasoning) \ No newline at end of file From 7ccd27520298be5f0d9983c1b01d312037fa059f Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 3 Mar 2025 01:19:22 +0800 Subject: [PATCH 19/26] Update .env --- .env | 40 ++++++++++++++++++++-------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.env b/.env index 709d22d34..06c26cdf3 100644 --- a/.env +++ b/.env @@ -1,26 +1,26 @@ # 您不应该修改默认值,这个文件被仓库索引,请修改.env.prod -ENVIRONMENT=dev -HOST=127.0.0.1 -PORT=8080 +ENVIRONMENT=prod +# HOST=127.0.0.1 +# PORT=8080 -COMMAND_START=["/"] +# COMMAND_START=["/"] -# 插件配置 -PLUGINS=["src2.plugins.chat"] +# # 插件配置 +# PLUGINS=["src2.plugins.chat"] -# 默认配置 -MONGODB_HOST=127.0.0.1 -MONGODB_PORT=27017 -DATABASE_NAME=MegBot +# # 默认配置 +# MONGODB_HOST=127.0.0.1 +# MONGODB_PORT=27017 +# DATABASE_NAME=MegBot -MONGODB_USERNAME = "" # 默认空值 -MONGODB_PASSWORD = "" # 默认空值 -MONGODB_AUTH_SOURCE = "" # 默认空值 +# MONGODB_USERNAME = "" # 默认空值 +# MONGODB_PASSWORD = "" # 默认空值 +# MONGODB_AUTH_SOURCE = "" # 默认空值 -#key and url -CHAT_ANY_WHERE_KEY= -SILICONFLOW_KEY= -CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 -SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ -DEEP_SEEK_KEY= -DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 \ No newline at end of file +# #key and url +# CHAT_ANY_WHERE_KEY= +# SILICONFLOW_KEY= +# CHAT_ANY_WHERE_BASE_URL=https://api.chatanywhere.tech/v1 +# SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ +# DEEP_SEEK_KEY= +# DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 \ No newline at end of file From d805e6ea2ccfdcc64f99b7e76a80597c9d45e47a Mon Sep 17 00:00:00 2001 From: KawaiiYusora Date: Mon, 3 Mar 2025 01:25:32 +0800 Subject: [PATCH 20/26] =?UTF-8?q?env.prod=E6=97=A0=E6=B3=95=E5=8A=A0?= =?UTF-8?q?=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bot.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bot.py b/bot.py index cf1b82ff6..78bf34b32 100644 --- a/bot.py +++ b/bot.py @@ -31,7 +31,7 @@ if env_file == ".env.dev" and os.path.exists(env_file): load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 elif os.path.exists(".env.prod"): logger.success("加载环境变量配置") - load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 + load_dotenv(".env.prod", override=True) # override=True 允许覆盖已存在的环境变量 else: logger.error(f"{env}对应的环境配置文件{env_file}不存在,请修改.env文件中的ENVIRONMENT变量为 prod.") exit(1) From 568ceea3a072f36cd8216bc6476d8ce27034aaa5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=8E=9F=E5=B0=8F=E7=89=9B?= Date: Mon, 3 Mar 2025 11:11:39 +0800 Subject: [PATCH 21/26] =?UTF-8?q?docker=E7=BC=96=E8=AF=91=E6=80=A7?= =?UTF-8?q?=E8=83=BD=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .dockerignore | 6 ++++++ .gitea/workflows/docker-image.yml | 36 +++++++++++++++++++++++++++++++ Dockerfile | 15 ++++++++++--- 3 files changed, 54 insertions(+), 3 deletions(-) create mode 100644 .dockerignore create mode 100644 .gitea/workflows/docker-image.yml diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 000000000..0ed9090fd --- /dev/null +++ b/.dockerignore @@ -0,0 +1,6 @@ +.git +__pycache__ +*.pyc +*.pyo +*.pyd +.DS_Store \ No newline at end of file diff --git a/.gitea/workflows/docker-image.yml b/.gitea/workflows/docker-image.yml new file mode 100644 index 000000000..a5ac92778 --- /dev/null +++ b/.gitea/workflows/docker-image.yml @@ -0,0 +1,36 @@ +name: Docker Build and Push + +on: + push: + branches: + - aijiang # 推送到main分支时触发 + tags: + - "*" # 推送v开头的tag时触发(例如v1.0.0) + workflow_dispatch: # 允许手动触发 + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: https://gitea.neppure.vip/actions/actions/checkout@v4 + + - name: Set up Docker Buildx + uses: https://gitea.neppure.vip/actions/docker/setup-buildx-action@v3 + + - name: Login to Docker Hub + uses: https://gitea.neppure.vip/actions/docker/login-action@v3 + with: + username: ${{ secrets.DOCKERHUB_USERNAME }} + password: ${{ secrets.DOCKERHUB_TOKEN }} + + - name: Build and Push Docker Image + uses: https://gitea.neppure.vip/actions/docker/build-push-action@v5 + with: + context: . # Docker构建上下文路径 + file: ./Dockerfile # Dockerfile路径 + platforms: linux/amd64,linux/arm64 # 支持arm架构 + tags: | + gitea.neppure.vip/NepPure/maimbot:${{ github.ref_name }} + gitea.neppure.vip/NepPure/maimbot:latest + push: true diff --git a/Dockerfile b/Dockerfile index 225a90a1b..8f2b88f64 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,8 +1,17 @@ FROM nonebot/nb-cli:latest -WORKDIR / -COPY . /MaiMBot/ + +# 设置工作目录 WORKDIR /MaiMBot + +# 先复制依赖列表 +COPY requirements.txt . + +# 安装依赖(这层会被缓存直到requirements.txt改变) RUN pip install --upgrade -r requirements.txt + +# 然后复制项目代码 +COPY . . + VOLUME [ "/MaiMBot/config" ] EXPOSE 8080 -ENTRYPOINT [ "nb","run" ] +ENTRYPOINT [ "nb","run" ] \ No newline at end of file From ed74a6ec0f890297d04cfe44f38446b3e0a42975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=8E=9F=E5=B0=8F=E7=89=9B?= Date: Mon, 3 Mar 2025 11:15:16 +0800 Subject: [PATCH 22/26] del more --- .gitea/workflows/docker-image.yml | 36 ------------------------------- 1 file changed, 36 deletions(-) delete mode 100644 .gitea/workflows/docker-image.yml diff --git a/.gitea/workflows/docker-image.yml b/.gitea/workflows/docker-image.yml deleted file mode 100644 index a5ac92778..000000000 --- a/.gitea/workflows/docker-image.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Docker Build and Push - -on: - push: - branches: - - aijiang # 推送到main分支时触发 - tags: - - "*" # 推送v开头的tag时触发(例如v1.0.0) - workflow_dispatch: # 允许手动触发 - -jobs: - build-and-push: - runs-on: ubuntu-latest - steps: - - name: Checkout code - uses: https://gitea.neppure.vip/actions/actions/checkout@v4 - - - name: Set up Docker Buildx - uses: https://gitea.neppure.vip/actions/docker/setup-buildx-action@v3 - - - name: Login to Docker Hub - uses: https://gitea.neppure.vip/actions/docker/login-action@v3 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Build and Push Docker Image - uses: https://gitea.neppure.vip/actions/docker/build-push-action@v5 - with: - context: . # Docker构建上下文路径 - file: ./Dockerfile # Dockerfile路径 - platforms: linux/amd64,linux/arm64 # 支持arm架构 - tags: | - gitea.neppure.vip/NepPure/maimbot:${{ github.ref_name }} - gitea.neppure.vip/NepPure/maimbot:latest - push: true From e991a27ed49525f0b38d72fe66812fbca44cd314 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=87=8E=E5=8E=9F=E5=B0=8F=E7=89=9B?= Date: Mon, 3 Mar 2025 11:17:05 +0800 Subject: [PATCH 23/26] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8C=82=E8=BD=BD?= =?UTF-8?q?=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dockerfile | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile b/Dockerfile index 8f2b88f64..c4aedc94a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -13,5 +13,6 @@ RUN pip install --upgrade -r requirements.txt COPY . . VOLUME [ "/MaiMBot/config" ] +VOLUME [ "/MaiMBot/data" ] EXPOSE 8080 ENTRYPOINT [ "nb","run" ] \ No newline at end of file From 1c27eb29b50cbf3577f352f4cb61bd90d1a6a503 Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 3 Mar 2025 12:41:13 +0800 Subject: [PATCH 24/26] =?UTF-8?q?readme=E9=94=90=E6=84=8F=E7=BC=96?= =?UTF-8?q?=E8=BE=91=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 174 +++++++------------------------------------ docs/installation.md | 102 +++++++++++++++++++++++++ docs/video.png | Bin 0 -> 28002 bytes 3 files changed, 130 insertions(+), 146 deletions(-) create mode 100644 docs/installation.md create mode 100644 docs/video.png diff --git a/README.md b/README.md index 00afd83e8..c611d85ef 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,6 @@

- ![Python Version](https://img.shields.io/badge/Python-3.x-blue) ![License](https://img.shields.io/github/license/SengokuCola/MaiMBot) ![Status](https://img.shields.io/badge/状态-开发中-yellow) @@ -12,163 +11,33 @@ ## 📝 项目简介 -**麦麦qq机器人的源代码仓库** +**麦麦是一个基于大语言模型的智能QQ群聊机器人** -基于llm、napcat、nonebot和mongodb的专注于群聊天的qqbot +- 🤖 基于 nonebot2 框架开发 +- 🧠 LLM 提供对话能力 +- 💾 MongoDB 提供数据持久化支持 +- 🌐 NapCat 作为QQ协议端支持 -> ⚠️ **警告**:代码可能随时更改,目前版本不一定是稳定版本 -> ⚠️ **警告**:请自行了解qqbot的风险,麦麦有时候一天被腾讯肘七八次 -> ⚠️ **警告**:由于麦麦一直在迭代,所以可能存在一些bug,请自行测试,包括胡言乱语( +> ⚠️ **注意事项** +> - 项目处于活跃开发阶段,代码可能随时更改 +> - 文档未完善,有问题可以提交 Issue 或者 Discussion +> - QQ机器人存在被限制风险,请自行了解,谨慎使用 +> - 由于持续迭代,可能存在一些已知或未知的bug -关于麦麦的开发和建议相关的讨论群:766798517(不建议发布无关消息)这里不会有麦麦发言! +**交流群**: 766798517(仅用于开发和建议相关讨论) -## 开发计划TODO:LIST +## 📚 文档 -- 兼容gif的解析和保存 -- 小程序转发链接解析 -- 对思考链长度限制 -- 修复已知bug -- 完善文档 -- 修复转发 -- config自动生成和检测 -- log别用print -- 给发送消息写专门的类 -- 改进表情包发送逻辑l - - -## 📚 详细文档 -- [项目详细介绍和架构说明](docs/doc1.md) - 包含完整的项目结构、文件说明和核心功能实现细节(由claude-3.5-sonnet生成) - -### 安装方法(还没测试好,随时outdated ,现在部署可能遇到未知问题!!!!) - -#### Linux 使用 Docker Compose 部署 -获取项目根目录中的```docker-compose.yml```文件,运行以下命令 -```bash -NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d -``` -配置文件修改完成后,运行以下命令 -```bash -NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart -``` - -#### 手动运行 -1. **创建Python环境** - 推荐使用conda或其他虚拟环境进行依赖安装,防止出现依赖版本冲突问题 - ```bash - # 安装requirements - pip install -r requirements.txt - ``` -2. **MongoDB设置** - - 安装并运行mongodb - - 麦麦bot会自动连接默认的mongodb,端口和数据库名可配置 - -3. **Napcat配置** - - 安装并运行Napcat,登录 - - 在Napcat的网络设置中添加ws反向代理:ws://localhost:8080/onebot/v11/ws - -4. **配置文件设置** - - 修改.env的 变量值为 prod - - 将.env.prod文件打开,填上你的apikey(硅基流动或deepseekapi) - - 将bot_config_toml改名为bot_config.toml,打开并填写相关内容,不然无法正常运行 - - #### .env 文件配置说明 - ```ini - # 环境配置 - ENVIRONMENT=dev # 开发环境设置 - HOST=127.0.0.1 # 主机地址 - PORT=8080 # 端口号 - - # 命令前缀设置 - COMMAND_START=["/"] # 命令起始符 - - # 插件配置 - PLUGINS=["src2.plugins.chat"] # 启用的插件列表 - - # MongoDB配置 - MONGODB_HOST=127.0.0.1 # MongoDB主机地址 - MONGODB_PORT=27017 # MongoDB端口 - DATABASE_NAME=MegBot # 数据库名称 - MONGODB_USERNAME="" # MongoDB用户名(可选) - MONGODB_PASSWORD="" # MongoDB密码(可选) - MONGODB_AUTH_SOURCE="" # MongoDB认证源(可选) - - #api配置项,建议siliconflow必填,识图需要这个 - SILICONFLOW_KEY= - SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ - DEEP_SEEK_KEY= - DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 - ``` - - #### bot_config.toml 文件配置说明 - ```toml - # 数据库设置 - [database] - host = "127.0.0.1" # MongoDB主机地址 - port = 27017 # MongoDB端口 - name = "MegBot" # 数据库名称 - - # 机器人基本设置 - [bot] - qq = # 你的机器人QQ号(必填) - nickname = "麦麦" # 机器人昵称 - - # 消息处理设置 - [message] - min_text_length = 2 # 最小响应文本长度 - max_context_size = 15 # 上下文最大保存数量 - emoji_chance = 0.2 # 表情包使用概率 - - # 表情包功能设置 - [emoji] - check_interval = 120 # 表情检查间隔(秒) - register_interval = 10 # 表情注册间隔(秒) - - # CQ码设置 - [cq_code] - enable_pic_translate = false # 是否启用图片转换(无效) - - # 响应设置 - [response] - api_using = "siliconflow" # 回复使用的API(siliconflow/deepseek) - model_r1_probability = 0.8 # R1模型使用概率 - model_v3_probability = 0.1 # V3模型使用概率 - model_r1_distill_probability = 0.1 # R1蒸馏模型使用概率(对deepseek api 无效) - - # 其他设置 - [others] - enable_advance_output = false # 是否启用详细日志输出 - - # 群组设置 - [groups] - talk_allowed = [ # 允许回复的群号列表 - # 在这里添加群号,逗号隔开 - ] - - talk_frequency_down = [ # 降低回复频率的群号列表 - # 在这里添加群号,逗号隔开 - ] - - ban_user_id = [ # 禁止回复的用户QQ号列表 - # 在这里添加QQ号,逗号隔开 - ] - ``` - -5. **运行麦麦** - 在含有bot.py程序的目录下运行(如果使用了虚拟环境需要先进入虚拟环境) - ```bash - nb run - ``` -6. **运行其他组件** - run_thingking.bat 可以启动可视化的推理界面(未完善)和消息队列及其他信息预览(WIP) - knowledge.bat可以将/data/raw_info下的文本文档载入到数据库(未启动) +- [安装与配置指南](docs/installation.md) - 详细的部署和配置说明 +- [项目架构说明](docs/doc1.md) - 项目结构和核心功能实现细节 ## 🎯 功能介绍 @@ -204,6 +73,19 @@ NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart - 幽默和meme功能:WIP的WIP - 让麦麦玩mc:WIP的WIP的WIP +## 开发计划TODO:LIST + +- 兼容gif的解析和保存 +- 小程序转发链接解析 +- 对思考链长度限制 +- 修复已知bug +- 完善文档 +- 修复转发 +- config自动生成和检测 +- log别用print +- 给发送消息写专门的类 +- 改进表情包发送逻辑 + ## 📌 注意事项 纯编程外行,面向cursor编程,很多代码史一样多多包涵 diff --git a/docs/installation.md b/docs/installation.md new file mode 100644 index 000000000..9fba9ecd2 --- /dev/null +++ b/docs/installation.md @@ -0,0 +1,102 @@ +# 🔧 安装与配置指南 + +## 部署方式 + +### 🐳 Docker部署(推荐) + +1. 获取配置文件: +```bash +wget https://raw.githubusercontent.com/SengokuCola/MaiMBot/main/docker-compose.yml +``` + +2. 启动服务: +```bash +NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose up -d +``` + +3. 修改配置后重启: +```bash +NAPCAT_UID=$(id -u) NAPCAT_GID=$(id -g) docker compose restart +``` + +### 📦 手动部署 + +1. **环境准备** +```bash +# 创建虚拟环境(推荐) +python -m venv venv +source venv/bin/activate # Linux +venv\\Scripts\\activate # Windows + +# 安装依赖 +pip install -r requirements.txt +``` + +2. **配置MongoDB** +- 安装并启动MongoDB服务 +- 默认连接本地27017端口 + +3. **配置NapCat** +- 安装并登录NapCat +- 添加反向WS:`ws://localhost:8080/onebot/v11/ws` + +4. **配置文件设置** +- 复制并修改环境配置:`.env.prod` +- 复制并修改机器人配置:`bot_config.toml` + +5. **启动服务** +```bash +nb run +``` + +6. **其他组件** +- `run_thingking.bat`: 启动可视化推理界面(未完善)和消息队列预览 +- `knowledge.bat`: 将`/data/raw_info`下的文本文档载入数据库 + +## ⚙️ 配置说明 + +### 环境配置 (.env.prod) +```ini +# API配置(必填) +SILICONFLOW_KEY=your_key +SILICONFLOW_BASE_URL=https://api.siliconflow.cn/v1/ +DEEP_SEEK_KEY=your_key +DEEP_SEEK_BASE_URL=https://api.deepseek.com/v1 + +# 服务配置 +HOST=127.0.0.1 +PORT=8080 + +# 数据库配置 +MONGODB_HOST=127.0.0.1 +MONGODB_PORT=27017 +DATABASE_NAME=MegBot +``` + +### 机器人配置 (bot_config.toml) +```toml +[bot] +qq = "你的机器人QQ号" +nickname = "麦麦" + +[message] +max_context_size = 15 +emoji_chance = 0.2 + +[response] +api_using = "siliconflow" # 或 "deepseek" + +[others] +enable_advance_output = false # 是否启用详细日志输出 + +[groups] +talk_allowed = [] # 允许回复的群号列表 +talk_frequency_down = [] # 降低回复频率的群号列表 +ban_user_id = [] # 禁止回复的用户QQ号列表 +``` + +## ⚠️ 注意事项 + +- 目前部署方案仍在测试中,可能存在未知问题 +- 配置文件中的API密钥请妥善保管,不要泄露 +- 建议先在测试环境中运行,确认无误后再部署到生产环境 \ No newline at end of file diff --git a/docs/video.png b/docs/video.png new file mode 100644 index 0000000000000000000000000000000000000000..95754a0c01e8eb4f287c1f642d37e79e3d3f7aeb GIT binary patch literal 28002 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 Date: Mon, 3 Mar 2025 15:16:19 +0800 Subject: [PATCH 25/26] =?UTF-8?q?=E7=8E=A9=E5=90=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1 --- .gitignore | 1 + README.md | 4 +- char_frequency.json | 12012 ++++++++++++++++++++++++++++++ requirements.txt | Bin 540 -> 582 bytes src/test/emotion_cal.py | 70 + src/test/emotion_cal_bert.py | 74 + src/test/emotion_cal_hanlp.py | 62 + src/test/emotion_cal_snownlp.py | 53 + src/test/snownlp_demo.py | 54 + src/test/typo.py | 488 ++ src/test/typo_word.py | 301 + 11 files changed, 13117 insertions(+), 2 deletions(-) create mode 100644 char_frequency.json create mode 100644 src/test/emotion_cal.py create mode 100644 src/test/emotion_cal_bert.py create mode 100644 src/test/emotion_cal_hanlp.py create mode 100644 src/test/emotion_cal_snownlp.py create mode 100644 src/test/snownlp_demo.py create mode 100644 src/test/typo.py create mode 100644 src/test/typo_word.py diff --git a/.gitignore b/.gitignore index 48c0c13c3..5ce300145 100644 --- a/.gitignore +++ b/.gitignore @@ -182,3 +182,4 @@ cython_debug/ # PyPI configuration file .pypirc +.env diff --git a/README.md b/README.md index c611d85ef..b0e989c82 100644 --- a/README.md +++ b/README.md @@ -11,12 +11,12 @@ ## 📝 项目简介 -**麦麦是一个基于大语言模型的智能QQ群聊机器人** +**🍔麦麦是一个基于大语言模型的智能QQ群聊机器人** - 🤖 基于 nonebot2 框架开发 - 🧠 LLM 提供对话能力 - 💾 MongoDB 提供数据持久化支持 -- 🌐 NapCat 作为QQ协议端支持 +- 🐧 NapCat 作为QQ协议端支持
diff --git a/char_frequency.json b/char_frequency.json new file mode 100644 index 000000000..f2f15f0bd --- /dev/null +++ b/char_frequency.json @@ -0,0 +1,12012 @@ +{ + "超": 24.079261201395564, + "恤": 0.477506026813923, + "座": 24.735132125997605, + "股": 38.07970591387615, + "型": 46.110925369887205, + "轮": 14.461953887474946, + "制": 128.86743888802684, + "机": 148.69873608873775, + "盘": 15.693711477581214, + "语": 38.142093635972444, + "言": 50.74441349942331, + "盒": 2.9682158551197126, + "版": 18.637132212380603, + "化": 129.8208512564727, + "通": 114.27431081563148, + "卡": 12.580724113494464, + "电": 85.41918950350572, + "话": 73.41035284256058, + "地": 398.344005899639, + "址": 10.959443181581864, + "党": 61.11437269145433, + "歌": 12.655109474455427, + "之": 235.95836339408405, + "王": 81.903081473566, + "年": 395.1390366375897, + "值": 38.98992678240922, + "号": 58.216542984340684, + "订": 8.783871334121445, + "阅": 6.848252263954453, + "光": 64.20656414817563, + "线": 51.0627508506326, + "射": 25.53577455956668, + "衫": 2.5227035319449134, + "台": 51.784208867694836, + "店": 13.033435019988067, + "江": 93.96710727328862, + "南": 127.83884131602902, + "小": 166.11290897951284, + "大": 616.008369552872, + "阿": 26.4587929095554, + "一": 1000.0, + "二": 101.40324384161197, + "例": 24.98068380142788, + "分": 215.70714883310964, + "列": 36.09929565861438, + "举": 51.212321415145496, + "对": 234.71300847993115, + "应": 93.71995591267638, + "记": 58.91800493662847, + "道": 272.24402237639634, + "来": 383.7724735772, + "丁": 12.028832725719578, + "不": 751.2753490113146, + "识": 30.985102131900444, + "点": 107.52523903295831, + "儿": 75.47714609764799, + "七": 26.875510899454987, + "八": 40.56721637181803, + "万": 94.5086007073808, + "千": 43.985743605658406, + "五": 66.74046547639425, + "百": 61.97660300452871, + "十": 116.91299152326822, + "颗": 4.871841221647579, + "斤": 7.824860067538708, + "多": 208.32380187579082, + "间": 121.26013600523416, + "零": 8.016022446782474, + "九": 27.921705008454335, + "册": 6.404339625961611, + "余": 32.27844760151202, + "户": 25.886105614415083, + "两": 140.00044791185096, + "三": 136.7770822702092, + "种": 153.89531340232244, + "块": 19.651332617740827, + "个": 398.888698704095, + "吨": 10.984238301902186, + "亩": 7.117799217114071, + "六": 30.725953132423538, + "箱": 4.680678842403815, + "名": 124.36112573045624, + "里": 190.0929896996271, + "四": 77.12162246469894, + "卷": 12.196799669824978, + "元": 92.67936070181389, + "家": 263.84487532853535, + "亿": 24.38400122855822, + "美": 90.76213801123939, + "顷": 5.344548192915634, + "倍": 7.716081475165688, + "公": 188.66047161918533, + "刀": 20.81430374502298, + "匹": 4.441525907701364, + "双": 35.56979986338689, + "发": 245.91560380917036, + "句": 20.11204195014421, + "只": 134.72948523730528, + "回": 88.94649532971911, + "声": 83.08764835080457, + "平": 129.66648163641395, + "方": 214.51778290032522, + "天": 219.32163750173967, + "头": 122.52068792861564, + "宗": 26.514781890923867, + "左": 31.226654594375827, + "右": 26.89470712163846, + "张": 69.80786181279525, + "条": 65.77025641353781, + "次": 102.10150642353585, + "步": 52.1289410244064, + "盏": 1.5780894319997825, + "贯": 7.436136568323354, + "遍": 11.655306235732807, + "丈": 8.396747520088047, + "团": 50.48606434253739, + "上": 431.57906523996076, + "午": 13.263789686189758, + "场": 103.88755492918995, + "下": 253.37093659967718, + "全": 193.26436557285527, + "部": 202.52974214674552, + "半": 42.33326881269766, + "周": 45.45585428787614, + "圈": 7.692086197436345, + "子": 261.9996384711489, + "出": 296.2984884574716, + "成": 255.240168734793, + "打": 71.87065585492775, + "把": 96.89853036922334, + "站": 34.29405093077683, + "脸": 27.12266226006722, + "床": 11.804876800245712, + "手": 124.16356461048466, + "眼": 57.28072715289631, + "肚": 5.550907581387983, + "页": 13.07822620508284, + "顶": 16.91187174364085, + "顿": 13.630117592857726, + "首": 76.69450652111665, + "做": 60.57767831290802, + "压": 23.85930448887659, + "众": 49.78540223284058, + "心": 167.39825602321463, + "怕": 22.551561852627405, + "苦": 20.212022274016473, + "扭": 3.332144234014746, + "注": 26.485987557648656, + "意": 105.16090433402707, + "留": 25.431795022739525, + "神": 58.960396593950314, + "专": 53.0087678744823, + "能": 200.42215691951822, + "世": 90.37661388238794, + "雄": 16.47115847601192, + "英": 48.06574066223767, + "龙": 34.50201000443113, + "门": 177.65943662287262, + "丘": 6.365147339003684, + "壑": 0.34473215671155916, + "貉": 0.08478331464367812, + "业": 195.34875536494417, + "为": 465.4084076253793, + "主": 227.39924782802746, + "丛": 4.5279089075269985, + "丝": 11.91445523520971, + "毫": 14.365972776557573, + "挂": 9.94924198917653, + "紊": 0.7294564429720231, + "苟": 0.7678488873389717, + "气": 87.08366193533112, + "粟": 1.182167349465625, + "件": 58.03577855877963, + "钟": 16.48795517042246, + "米": 72.29057321519124, + "架": 21.305407095883528, + "口": 115.1461392397976, + "叶": 20.429579458762515, + "处": 77.56233573232788, + "套": 12.113616040363256, + "寸": 3.709669936956407, + "尺": 6.298760403952502, + "岁": 20.057652653957703, + "折": 13.377367334108648, + "招": 29.00309219145672, + "支": 36.73677020362393, + "日": 174.9583681931396, + "月": 121.62246469894724, + "本": 184.91480876563492, + "杯": 9.602910147283016, + "枚": 4.7814590088670545, + "株": 2.704267800096941, + "样": 99.35244743834413, + "根": 47.02594529396615, + "款": 13.074226992127949, + "片": 36.93433132359552, + "碗": 5.484520646336801, + "秒": 4.201573130407936, + "篇": 8.624702658516803, + "辆": 6.130793459847102, + "重": 139.17820972832544, + "项": 34.77875554090955, + "品": 82.87169085124047, + "层": 28.810330127030998, + "维": 30.82673329888678, + "面": 178.26811683460696, + "度": 113.08814425321097, + "曲": 18.39158053695033, + "袋": 6.073204793296679, + "伍": 8.275971288850355, + "几": 71.53232243894402, + "劲": 7.728079114030359, + "包": 40.2320823261982, + "级": 94.28384493931594, + "桩": 1.221359636423552, + "响": 34.4740155137469, + "少": 73.38875709260418, + "数": 99.39243956789304, + "派": 37.43983184109367, + "巴": 31.918518435571876, + "掌": 21.86849627993211, + "拍": 10.57071968236651, + "帖": 2.3539367452485354, + "情": 98.23586718133872, + "节": 34.526005282160476, + "愿": 21.366195132797863, + "挨": 2.537100698582519, + "拖": 5.066202971255257, + "拉": 47.195511923253505, + "排": 25.53897392993059, + "整": 40.181692242966584, + "桶": 1.65887353368857, + "班": 19.321797470257852, + "瓢": 0.38312460107850776, + "甲": 14.982651414201685, + "男": 22.187633473732372, + "孩": 21.462176243715238, + "盆": 5.5101156092481, + "程": 70.72688094982907, + "第": 112.28190292150504, + "筐": 0.37432633257774867, + "箭": 7.6592926512062425, + "系": 88.65375294142112, + "纸": 11.988840596170673, + "组": 63.2587506778666, + "终": 27.81212657349034, + "生": 295.08272771918485, + "胎": 3.6224870945397947, + "脚": 19.081844692964427, + "印": 24.43919036733571, + "舒": 3.8256471126482308, + "服": 35.896935483096925, + "萝": 1.4421161915335063, + "卜": 2.7954498554684437, + "坑": 3.0002095587588364, + "角": 22.278015686512894, + "身": 98.78295951356773, + "集": 55.42829171219104, + "鼻": 5.634891053440683, + "孔": 10.46993951590327, + "中": 607.0709284412827, + "会": 368.9137977645999, + "院": 111.07334076653714, + "串": 2.9978100309859017, + "红": 46.34527924904379, + "骊": 0.13277387010236386, + "珠": 9.786873943207977, + "丸": 1.740457477968336, + "动": 175.81739913585005, + "反": 67.24516615130142, + "得": 228.34386192797257, + "标": 35.27865716027086, + "劳": 25.910900734735407, + "久": 21.7229249283741, + "义": 82.22541803773018, + "甚": 33.732561431910206, + "已": 115.92278639563735, + "谓": 9.412547610630227, + "乐": 35.418629613692026, + "乙": 3.593692761264583, + "醇": 2.653077874274343, + "胺": 1.3581327194808064, + "乡": 29.998096374633473, + "买": 17.507754473919533, + "卖": 15.680114153534582, + "乱": 21.072652901908906, + "涂": 5.0062147769319, + "乾": 4.5631019815300355, + "净": 7.123398115250919, + "了": 754.03560579278, + "当": 140.03644082844497, + "事": 171.25749652468394, + "明": 130.90143859688413, + "知": 94.36302935582277, + "无": 121.14975772767919, + "位": 109.7424026951496, + "厘": 4.0983934361717616, + "叠": 2.601088105860766, + "些": 115.32690366535866, + "则": 45.06713078866079, + "金": 83.48836948888459, + "产": 161.8521474973725, + "亮": 16.583936281339835, + "亲": 46.646819905842534, + "芳": 4.397534565197569, + "泽": 15.256997422907173, + "人": 817.2991555261925, + "交": 68.794461250026, + "份": 22.282014899467786, + "传": 56.616057959793515, + "虚": 11.403355819574708, + "向": 101.33445737878785, + "隅": 1.1365763217798737, + "善": 22.75392202814486, + "担": 20.14243596860138, + "介": 16.30239168931554, + "取": 60.21534961919494, + "士": 47.67541747784036, + "才": 69.27596648979481, + "书": 71.69549032750355, + "武": 102.7717745147755, + "夫": 38.72677856997743, + "仍": 23.12024993481283, + "其": 160.2940541301472, + "旧": 14.613124137169805, + "代": 171.06553430284922, + "师": 67.97462259427346, + "臣": 16.472758161193877, + "文": 140.0532375228555, + "新": 138.24079421169913, + "楷": 0.7438536096096288, + "模": 29.43580703317587, + "豪": 6.549111134928646, + "谈": 21.538161289858156, + "杰": 5.484520646336801, + "风": 64.21696210185836, + "流": 72.6569011218592, + "鼎": 2.7170652815525904, + "以": 326.6485155721354, + "任": 94.02869515279393, + "休": 10.942646487171324, + "哥": 25.4837847911531, + "伙": 8.427941381136192, + "行": 254.63148852305866, + "开": 162.7327741900394, + "摊": 2.7778533184669256, + "似": 28.377615285311848, + "体": 148.01886988640635, + "同": 165.70818862847793, + "式": 65.22076455353587, + "佛": 13.436555685841025, + "侧": 15.097028904711552, + "便": 67.70507564111384, + "俟": 0.26314821243179337, + "倡": 2.7778533184669256, + "和": 494.6074612516257, + "叹": 7.478528225645193, + "偏": 10.124407516600733, + "见": 118.70063971410426, + "论": 61.05198496935803, + "停": 17.07343994701843, + "函": 3.576096224263065, + "复": 40.55281920518042, + "始": 48.35048462462587, + "说": 274.82111520452776, + "酸": 13.53653600971329, + "兆": 3.3113483266493153, + "克": 47.71460976479828, + "独": 27.590570175789406, + "兜": 1.5141020247215347, + "共": 76.53213847514809, + "兵": 56.80562065385532, + "卒": 4.511912055707437, + "具": 49.83019341793535, + "内": 126.55669364269112, + "外": 145.45697406750352, + "再": 67.14918504038405, + "嘱": 1.858834181433094, + "咐": 3.4209267616133143, + "强": 60.91041283075491, + "调": 49.53745102963737, + "表": 147.5893544150511, + "示": 39.473831549950965, + "写": 26.769131834854903, + "到": 315.6186862425475, + "决": 70.09660498813832, + "胜": 29.23824591320428, + "负": 28.963899904498792, + "雌": 2.092388217998698, + "准": 43.98414392047645, + "凉": 5.608496247938406, + "戏": 12.900661149885702, + "击": 33.58619023776121, + "必": 51.62903940504509, + "杀": 29.20865173733809, + "断": 38.00452071032421, + "段": 45.51024358406266, + "切": 30.23884899451788, + "斩": 3.2641576137816077, + "差": 23.154643166224886, + "收": 50.22931487083342, + "获": 27.389009842862926, + "耕": 4.370339917104314, + "耘": 0.2919425457070049, + "货": 17.778901112261106, + "钱": 27.681752231160907, + "高": 182.0089806326115, + "物": 111.06534234062737, + "从": 130.76146614346297, + "严": 29.573379958824106, + "办": 41.03032523199435, + "法": 181.07876369930398, + "就": 249.04378818248568, + "简": 20.267211412793962, + "权": 73.66870199944651, + "利": 95.96431422296092, + "正": 115.2445198784879, + "常": 108.77939221561196, + "照": 32.16646963877509, + "都": 184.0869716839726, + "在": 678.0129670480849, + "是": 831.997862820597, + "顺": 17.984460658142478, + "划": 40.03932026177248, + "喜": 25.65335142044046, + "忧": 5.475722377836042, + "惧": 3.7160686776842313, + "删": 0.7398543966547383, + "而": 183.8318218974506, + "空": 56.033772553561455, + "别": 74.1286114892589, + "券": 6.529914912745172, + "刹": 1.6772699132810662, + "那": 170.74959647941284, + "刻": 25.47178715228843, + "起": 155.33742959385594, + "剂": 9.555719434415307, + "前": 161.40183611865186, + "后": 249.49409956120635, + "剑": 21.546159715767935, + "剪": 3.0833931882205583, + "梅": 8.675892584339403, + "副": 32.527998489897186, + "力": 146.26241555661846, + "承": 29.01988888586726, + "加": 112.67862484663019, + "仑": 1.6876678669637815, + "如": 152.00208598947725, + "静": 15.79929069959032, + "逸": 1.991608051535458, + "永": 17.274200437353926, + "勇": 8.418343270044456, + "勺": 0.6734674616035564, + "匙": 0.9030222852142699, + "量": 94.2782460411791, + "匡": 0.6270765913268269, + "合": 112.10913692185379, + "员": 124.42191376737058, + "枝": 6.024414395247016, + "路": 96.81774626753455, + "拳": 6.3179566261359765, + "载": 14.428360498653864, + "镑": 2.8634364757015818, + "所": 152.41240523864906, + "港": 20.449575523536968, + "有": 643.7141170617623, + "夜": 20.804705633931246, + "锭": 0.7238575448351764, + "华": 71.44353991134544, + "卧": 3.0274042068520917, + "厢": 1.7892478760179995, + "去": 167.87896142039247, + "返": 5.079000452710906, + "友": 20.903886115212526, + "好": 145.50896383591711, + "滴": 4.336746528283234, + "态": 29.073478339462795, + "既": 20.780710356201897, + "往": 43.57782388425958, + "可": 225.12529534187672, + "钧": 2.287549810197353, + "破": 29.03188652473193, + "的": 296.09372875418114, + "拾": 4.081596741761222, + "舌": 3.7552609646421584, + "价": 46.037339851517224, + "音": 30.622773438187362, + "咬": 4.54390575934656, + "定": 165.27467394416777, + "泉": 8.346357436856426, + "古": 55.16194412939533, + "脑": 16.36637909659379, + "扁": 2.946620105163304, + "舟": 3.0873924011754488, + "报": 72.3217670762394, + "秋": 12.42315512307178, + "荻": 0.2519504161581001, + "蔽": 1.5892872282734758, + "目": 74.90125943214375, + "迷": 8.363154131266967, + "山": 133.05461485179717, + "障": 8.985431667047925, + "吐": 5.834051858594228, + "快": 44.62481783584991, + "此": 125.30973904335626, + "吠": 0.41431846212665346, + "听": 63.04119349312055, + "将": 125.04019209019665, + "味": 22.318807658652776, + "呵": 2.789850957331597, + "呼": 19.320997627666877, + "喏": 0.29914112902580775, + "诺": 8.165593011295377, + "命": 72.63450552931184, + "荣": 13.403762139610924, + "呜": 1.4861075340373016, + "归": 17.595737158927122, + "西": 126.46151237436473, + "阴": 11.812075383564515, + "鸣": 4.230367463683147, + "堂": 19.64653356219496, + "白": 65.20636738689826, + "锅": 6.397940885233786, + "哄": 2.5331014856276286, + "散": 17.15982294684406, + "唱": 8.347157279447405, + "啃": 0.6142791098711774, + "喊": 7.36655026290826, + "喝": 15.71130801458273, + "喷": 4.028007288165689, + "醒": 8.638299982563431, + "噎": 0.3695272770318801, + "止": 22.669138713501184, + "餐": 5.615694831257209, + "嚬": 0.1807644255610496, + "笑": 49.2879001412522, + "麻": 12.327174012154407, + "漆": 3.3929322709290815, + "黑": 31.232253492512676, + "糟": 2.1331801901385807, + "国": 582.050252510306, + "君": 12.035231466447403, + "春": 21.32700284583994, + "梦": 8.43354027927304, + "惊": 21.963677548258502, + "坐": 26.222039502625883, + "尽": 27.229041324667307, + "倾": 8.212783724163085, + "皆": 7.040214485789196, + "垒": 1.3373368121153757, + "课": 11.54172858781392, + "堆": 5.774063664270871, + "堵": 2.389929661842549, + "塌": 1.6188814041396653, + "刮": 2.026801125538494, + "糊": 4.977420443656689, + "胡": 20.54875600481825, + "墙": 13.713301222319448, + "隔": 7.580908077290389, + "壁": 10.069218377823244, + "吭": 0.8134399150247231, + "令": 41.97733885971241, + "雷": 14.17081118435892, + "壶": 2.234760199192799, + "水": 131.94283365033763, + "酒": 24.22083333999869, + "壸": 0.0175965370015181, + "夔": 0.5974824154606373, + "契": 3.088192243766427, + "足": 32.65357377668075, + "夕": 2.237159726965733, + "朝": 46.58123281338233, + "等": 195.65749460506171, + "性": 110.86698137806479, + "夥": 0.27434600870548675, + "帮": 19.66013088624159, + "截": 8.492728631005418, + "批": 30.265243800020155, + "早": 36.67758185189155, + "笔": 17.02864876192365, + "群": 40.23928090951701, + "跳": 12.19120077168813, + "晚": 21.083050855591623, + "星": 31.399420594027095, + "斗": 30.18845891128626, + "妻": 8.07201142815094, + "关": 131.3741455681522, + "失": 33.80134789473432, + "恨": 6.690683273531769, + "沉": 17.21501208562155, + "热": 39.20588428197331, + "雾": 3.900032473609194, + "奇": 21.618945391546944, + "女": 74.11501416521229, + "奶": 9.170195305563865, + "胞": 8.943040009726085, + "昔": 1.9244212738932978, + "达": 67.52031200259789, + "字": 45.6694122596673, + "板": 20.59994593064085, + "泪": 8.16399332611342, + "易": 31.532194464129457, + "漏": 3.501710863302102, + "贬": 1.3213399602958138, + "兼": 12.062426114540658, + "褒": 0.34633184189351535, + "连": 49.66222647382995, + "城": 117.57766071637101, + "长": 225.93793541431046, + "季": 16.433565874235953, + "孤": 6.459528764739099, + "腋": 0.4991017767703316, + "官": 52.80960706932876, + "职": 58.47809151159051, + "移": 16.03924347688375, + "规": 65.64068191379936, + "审": 24.061664664394048, + "判": 18.207616741025365, + "室": 20.787109096929722, + "火": 44.00334014265993, + "计": 74.25578646122443, + "作": 216.7453445161992, + "学": 277.47819229175695, + "辞": 6.757070208582951, + "村": 31.75775007478528, + "眷": 1.2269585345603986, + "属": 44.79838367809215, + "老": 95.0340972896534, + "寒": 8.807866611850788, + "丹": 11.590518985863582, + "赤": 6.529115070154194, + "封": 26.04207491965581, + "信": 63.86903057478288, + "难": 54.37409917728191, + "求": 50.07414540818367, + "尊": 9.816468119074166, + "撮": 0.9014226000323137, + "尘": 4.539106703800693, + "染": 10.91945105203296, + "莫": 12.341571178792014, + "沾": 1.3829278398011273, + "尝": 4.13278666758382, + "尸": 7.023417791378657, + "尾": 8.371152557176748, + "局": 36.30565504708674, + "屁": 2.426722421027542, + "债": 4.606293481442852, + "楼": 27.106665408247657, + "届": 15.899271023462582, + "展": 85.79031646571956, + "垠": 0.09358158314443717, + "喉": 2.261155004695076, + "采": 30.80993660447624, + "枯": 2.697869059369116, + "迁": 7.5081224015113825, + "赦": 1.5780894319997825, + "岗": 12.198399355006934, + "责": 29.749345328839286, + "峰": 11.66730387459748, + "川": 12.387162206477766, + "讹": 0.477506026813923, + "悮": 0.003999212954890477, + "误": 12.518336391398172, + "错": 19.564949617915193, + "己": 76.40016444763671, + "私": 12.268785503013007, + "巷": 2.9946106606219893, + "帆": 1.5037040710388196, + "带": 56.35450943254368, + "过": 222.5154089675152, + "帧": 0.34713168448449344, + "席": 29.143864487468864, + "幅": 9.617307313920621, + "幕": 6.557909403429405, + "幢": 0.6606699801479069, + "干": 55.9481893963268, + "犯": 13.073427149536972, + "于": 251.6320788068908, + "期": 90.5717754745866, + "植": 15.632923440666877, + "并": 96.15867597256859, + "理": 149.50817679080757, + "序": 13.886067221970716, + "俱": 4.747065777454997, + "府": 69.3343549989362, + "廉": 2.740260716690955, + "弘": 1.213361210513771, + "清": 71.66429646645541, + "弛": 0.6134792672801993, + "驰": 3.544102520623941, + "弹": 27.12106257488526, + "指": 61.05518433972194, + "彻": 7.435336725732376, + "融": 10.703493552468874, + "深": 45.111921973755564, + "直": 74.59731924757209, + "律": 36.80795619422098, + "功": 44.80798178918389, + "愚": 2.144377986412274, + "德": 50.02135579717912, + "腹": 7.120998587477985, + "用": 208.95967673561844, + "忍": 8.456735714411403, + "忙": 17.518152427602246, + "念": 25.159848541806973, + "忽": 16.620729040524825, + "怒": 11.544128115586853, + "息": 38.16049001556494, + "奄": 0.45271090649360207, + "尚": 20.943878244761432, + "存": 33.7837513577328, + "悲": 5.904438006600301, + "想": 113.39128459519166, + "旅": 27.72334404589177, + "变": 71.76907584587353, + "战": 110.70301364691429, + "房": 30.632371549279103, + "厅": 11.149805718234651, + "扇": 4.85904374019193, + "托": 13.39336418592821, + "遮": 2.278751541696594, + "扫": 5.469323637108217, + "技": 60.11376961014073, + "抓": 10.997035783357836, + "死": 51.48826710903294, + "拿": 24.86390678314508, + "汗": 7.881648891498153, + "底": 30.67556304919192, + "抔": 0.00719858331880286, + "黄": 59.27633441738666, + "土": 50.5332550554051, + "投": 39.460234225904344, + "抢": 8.54231887164606, + "抬": 7.607302882792666, + "抷": 0.0023995277729342867, + "抹": 2.7858517443767066, + "即": 52.30090718146669, + "毙": 1.2245590067874643, + "拜": 10.987437672266099, + "拥": 12.967847927527863, + "入": 98.20947237583644, + "拨": 4.27115943582303, + "按": 29.81493242129949, + "挥": 20.631139791688994, + "振": 7.446534522006069, + "捆": 0.9974037109496852, + "捇": 0.0175965370015181, + "仆": 3.0529991697633907, + "捋": 0.43191499912817155, + "损": 10.070018220414221, + "捺": 0.4207172028544783, + "掉": 11.615314106183904, + "掊": 0.011997638864671433, + "接": 65.78945263572129, + "推": 36.23366921389871, + "搡": 0.12237591641964861, + "掷": 2.4547169117117753, + "坤": 2.4283221062094977, + "提": 82.8852881752871, + "揽": 1.2189601086506177, + "搏": 1.767652126061591, + "搭": 4.749465305227931, + "档": 4.979020128838644, + "摞": 0.1831639533339839, + "摸": 6.899442189777052, + "撅": 0.26234836984081533, + "拐": 2.7194648093255247, + "撇": 1.1309774236430272, + "播": 11.506535513810883, + "花": 57.94539634599911, + "改": 64.4673128328345, + "故": 29.77653997693254, + "辙": 0.5047006749071783, + "教": 94.94851413241874, + "瓶": 4.296754398734329, + "敷": 1.139775692143786, + "斑": 3.3849338450193005, + "窥": 0.9406148869902403, + "豹": 1.8804299313895025, + "安": 121.08577032040095, + "养": 25.72373756844653, + "旁": 14.118021573354364, + "观": 41.67499836032269, + "族": 67.41153341022486, + "恃": 0.636674702418564, + "闻": 24.155246247538486, + "省": 93.52479432047774, + "覆": 4.921431462288222, + "雅": 8.45833539959336, + "游": 51.38988647034264, + "旦": 6.828256199180001, + "旬": 1.900425996163955, + "时": 299.8353923947767, + "秀": 12.285582197423548, + "选": 58.934001788448036, + "伯": 16.483955957467572, + "仲": 2.832242614653436, + "冲": 27.464195046414865, + "晌": 1.8580343388421157, + "霎": 0.854231887164606, + "昼": 1.2605519233814784, + "显": 32.967112072344165, + "晃": 3.6960726129097794, + "晤": 0.8262373964803726, + "晦": 0.7910443224773365, + "暗": 16.22320727280871, + "暝": 0.02319543513836477, + "视": 32.58558715644761, + "暴": 9.079813092783342, + "曝": 0.494302721224463, + "阳": 54.485277297427864, + "药": 34.3276443195979, + "望": 38.485226107502044, + "涯": 1.7860485056540873, + "边": 55.603457239615246, + "际": 46.722804951985445, + "忿": 0.5510915451839078, + "患": 7.8024644749913215, + "稻": 2.9282237255708075, + "木": 31.367426890387968, + "初": 35.263460151042274, + "衷": 1.9068247368917797, + "经": 188.3733281290242, + "朵": 4.4783186668863575, + "杆": 4.619890805489479, + "束": 12.020034457218818, + "杠": 0.7422539244276727, + "藤": 1.6692714873712855, + "街": 21.938082585347203, + "枕": 1.884429144344393, + "柯": 2.329941467519192, + "槐": 1.0733887570926042, + "邯": 0.37752570294166105, + "郸": 0.2815445920242896, + "梁": 10.15080232210301, + "粱": 0.6350750172366078, + "栖": 2.6226838558171752, + "香": 23.37619956392582, + "枪": 13.987647231024933, + "柜": 2.2683535880138788, + "查": 29.80213493984384, + "柱": 8.62150328815289, + "擎": 0.6198780080080241, + "栋": 1.1197796273693337, + "栏": 3.7312656869128156, + "树": 22.890695111202117, + "格": 46.93476323859464, + "框": 1.6108829782298844, + "案": 30.47320287367446, + "桌": 7.427338299822595, + "胥": 0.7758473132487527, + "梭": 1.1597717569182386, + "梯": 3.7712578164617203, + "棍": 2.653077874274343, + "棵": 1.55809336722533, + "吊": 3.691273557363911, + "概": 13.537335852304267, + "榻": 0.8278370816623288, + "横": 12.16720549395879, + "陈": 25.67654685557882, + "槌": 0.3759260177597049, + "源": 38.384445941038805, + "趋": 6.352349857548035, + "鬼": 9.744482285886138, + "遥": 3.388133215383213, + "棋": 5.131790063715461, + "登": 16.514349975924738, + "舞": 12.499140169214698, + "伤": 25.01827640320385, + "票": 15.364176330098237, + "落": 33.003104988938176, + "距": 10.72588914501626, + "离": 33.12148169240294, + "比": 88.40020284008106, + "毛": 27.320223380038808, + "拔": 11.479340865717628, + "升": 23.848106692602897, + "民": 269.7661100295462, + "俗": 8.779872121166555, + "浑": 3.470517002253956, + "氧": 6.490722625787245, + "氮": 1.1285778958700927, + "碳": 3.43132471529603, + "铅": 2.355536430430491, + "氯": 1.875630875843634, + "烷": 0.9118205537150288, + "东": 122.5702781692563, + "池": 7.7520743917597015, + "汪": 3.6376841037683785, + "汽": 12.452749298937968, + "沓": 0.40232082326198204, + "郎": 7.356952151816523, + "波": 22.75312218555388, + "又": 128.97221826744496, + "未": 35.565800650431996, + "泻": 1.154172858781392, + "泼": 2.0387987644031655, + "洗": 7.739276910304053, + "浆": 2.996210345803946, + "饼": 2.8098470221060494, + "浪": 7.188185365120145, + "楚": 18.36118651849316, + "溜": 3.012207197623508, + "歪": 1.8388381166586414, + "斜": 5.133389748897416, + "烟": 12.528734345080888, + "滑": 7.112200318977226, + "潭": 2.4171243099358044, + "灯": 11.925653031483405, + "炖": 0.695063211559965, + "炮": 14.885870460693335, + "炷": 0.1447715089670353, + "很": 80.42737189321141, + "灵": 15.327383570913243, + "犀": 0.5742869803222727, + "烘": 1.4549136729891556, + "熟": 13.568529713352413, + "爱": 36.84474895340597, + "冰": 9.98283537799761, + "宫": 30.63717060482497, + "商": 52.37289301465472, + "沙": 24.360005950828878, + "洋": 21.328602531021897, + "焦": 7.127397328205809, + "狼": 4.526309222345042, + "藉": 0.9414147295812184, + "痴": 1.666871959598351, + "至": 72.56012016835086, + "诚": 6.300360089134458, + "牛": 16.941465919507042, + "锁": 4.774260425548252, + "吼": 1.4941059599470825, + "犬": 1.466111469262849, + "形": 76.45055453086833, + "狐": 10.704293395059853, + "狠": 4.466321028021685, + "献": 16.68071723484818, + "售": 11.55372622667859, + "酬": 2.588290624405117, + "环": 30.56518477163694, + "扣": 3.7880545108722603, + "现": 150.5959627145378, + "昙": 0.35832948075818677, + "辈": 8.13999804838408, + "马": 76.49214634559918, + "球": 34.541202291389055, + "琴": 5.91723548805595, + "鹤": 3.2625579285996515, + "瓣": 1.0829868681843413, + "瓦": 13.075826677309905, + "满": 36.139287788163294, + "何": 57.359911569403145, + "画": 21.698929650644754, + "番": 7.0354154302433285, + "滋": 4.326348574600519, + "病": 36.627191768659934, + "瘸": 0.19436174960767721, + "着": 206.14823002833043, + "单": 46.62202478552221, + "廿": 0.18796300887985246, + "海": 107.13731537633393, + "盅": 0.29754144384385156, + "盎": 0.5023011471342439, + "司": 74.95644857092124, + "菜": 18.22601312061786, + "然": 158.54559822626908, + "果": 71.76427679032767, + "相": 116.05076121019384, + "原": 97.48321530322833, + "盾": 5.902838321418344, + "看": 120.62186161763366, + "眨": 0.9830065443120793, + "穿": 15.520945477929944, + "慎": 2.911427031160268, + "睹": 1.3301382287965728, + "容": 39.728981336472984, + "瞑": 0.17436568483322482, + "瞥": 0.921418664806766, + "瞧": 11.778481994743434, + "瞬": 2.339539578610929, + "逝": 2.3587358007944035, + "瞻": 1.4861075340373016, + "丰": 16.75750212358208, + "矢": 0.9870057572669698, + "解": 71.38995045774992, + "石": 95.08768674324892, + "鸟": 6.7818653289032715, + "激": 20.85589555975384, + "码": 10.219588784927126, + "先": 83.09244740635043, + "软": 14.290787573005632, + "领": 74.82207501563693, + "砖": 3.8568409736963765, + "端": 17.63492944588505, + "碟": 1.0685897015467356, + "碧": 2.996210345803946, + "磅": 0.7830458965675555, + "否": 16.875078984455858, + "禁": 15.372174756008016, + "秉": 3.5465020483968757, + "虔": 0.5590899710936887, + "稿": 3.6864745018180423, + "穷": 6.745072569718279, + "依": 28.29363181325915, + "傍": 1.3341374417514633, + "窍": 1.0397953682715242, + "窝": 3.887234992153544, + "蜂": 3.256159187871827, + "立": 99.52761296576834, + "竖": 2.083589949497939, + "章": 26.509982835377997, + "竿": 0.6774666745584469, + "颦": 0.10237985164519622, + "媚": 1.4197205989861195, + "置": 31.135472539004326, + "勾": 3.7640592331429175, + "消": 34.087691542304476, + "销": 19.13463430396898, + "摋": 0.010397953682715242, + "煞": 1.0349963127256556, + "钩": 2.026001282947516, + "奖": 12.754289955736711, + "舱": 3.1273845307243535, + "筹": 4.634287972127085, + "算": 40.032921521044656, + "管": 68.61289698187396, + "箩": 0.18636332369789624, + "箪": 0.043191499912817156, + "食": 32.43681643452569, + "垛": 0.6630695079208412, + "仇": 5.352546618825415, + "雕": 7.897645743317715, + "鵰": 0.0183963795924962, + "篑": 0.05918835173237907, + "篓": 0.2647478976137496, + "篮": 3.776056872007589, + "簇": 1.1165802570054213, + "簧": 0.7062610078336583, + "类": 57.848615392490764, + "粒": 5.2877593689561895, + "粗": 6.083602746979395, + "细": 27.560975999923215, + "索": 14.504345544796784, + "紧": 25.934896012464748, + "约": 45.89496787032312, + "尉": 2.7242638648713933, + "预": 22.61634910249663, + "防": 33.48620991388895, + "牌": 16.070437337931896, + "希": 18.829094434215346, + "练": 19.09144280405616, + "统": 78.0838331016456, + "湖": 89.5895687728655, + "缕": 0.8710285815751461, + "缘": 8.095206863289306, + "缸": 1.1877662476024717, + "罐": 2.604287476224679, + "网": 38.71878014406765, + "羽": 4.7974558606866164, + "翻": 12.939053594252652, + "者": 122.26473829950265, + "联": 55.24432791626608, + "肉": 17.43336911295857, + "肢": 2.3771321803869, + "脉": 9.766078035842547, + "脱": 12.440751660073298, + "茫": 2.6762733094127076, + "腔": 4.2247685655463005, + "血": 27.755337749530895, + "臂": 5.978023524970286, + "斯": 58.852417844168265, + "致": 27.921705008454335, + "虑": 10.36995919203101, + "般": 33.640579533947715, + "讲": 20.955875883626103, + "艘": 4.363141333785511, + "船": 21.99407156671567, + "色": 66.85804233726803, + "放": 68.6552886391958, + "苇": 1.1525731735994356, + "航": 27.069872649062663, + "茬": 0.6662688782847536, + "草": 22.24602198287377, + "荤": 0.7766471558397308, + "素": 32.61678101749576, + "势": 39.44343753149381, + "虎": 10.206791303471476, + "河": 66.02780572783276, + "蛇": 4.4519238613840795, + "吏": 4.15358257494925, + "衣": 19.669728997333323, + "材": 21.412586003074594, + "非": 49.882183186348925, + "凡": 10.081216016687915, + "褱": 0.004799055545868573, + "要": 298.9419682206542, + "锺": 0.451911063902624, + "仁": 7.293764587129252, + "览": 6.980226291465839, + "遗": 17.103833965475594, + "觉": 36.07130116793015, + "觞": 0.0735855183699848, + "咏": 0.8142397576157012, + "触": 8.675092741748424, + "溃": 2.3947287173884177, + "爆": 9.085411990920187, + "丧": 5.067802656437213, + "邦": 20.632739476870952, + "兴": 32.153672157319434, + "议": 71.05881562508497, + "试": 31.413017918073724, + "读": 19.06104878559899, + "谦": 3.0402016883077407, + "益": 22.11084858499847, + "谷": 13.701303583454775, + "败": 17.806095760354363, + "贫": 8.170392066841247, + "针": 13.394164028519187, + "煎": 2.4571164394847096, + "资": 93.46400628356339, + "走": 67.62829075237993, + "趟": 1.4997048580839292, + "跃": 7.894446372953802, + "跌": 4.429528268836693, + "跤": 0.3511308974393839, + "祇": 0.06398740727824763, + "福": 20.470371430902397, + "车": 51.80340508987831, + "踏": 4.493515676114941, + "蹦": 0.6414737579644326, + "蹭": 0.4647085453582735, + "蹴": 0.1407722960121448, + "及": 93.92951467151265, + "蹶": 0.1247754441925829, + "役": 10.142803896193229, + "胆": 7.620900206839294, + "轻": 33.79974820955236, + "轨": 4.0224083900288425, + "转": 49.46226582608543, + "较": 46.880373942408134, + "低": 33.74375922818389, + "赞": 7.852054715631964, + "倒": 29.94930597658381, + "迎": 13.922060138564731, + "近": 49.94857012140011, + "还": 158.69996784632784, + "进": 172.88437635473338, + "迭": 1.1901657753754062, + "迳": 0.2983412864348296, + "途": 9.666097711970284, + "逞": 0.7694485725209278, + "兽": 4.337546370874212, + "欲": 9.174994361109732, + "遭": 11.210593755148986, + "醉": 4.344744954193015, + "掩": 4.026407602983732, + "缐": 0.0023995277729342867, + "铢": 0.27594569388744294, + "煮": 2.178771217824332, + "粥": 1.2029632568310555, + "锤": 1.4053234323485138, + "键": 6.717078079034046, + "锹": 0.1975611199715896, + "短": 16.100031513798086, + "思": 47.03634324764886, + "忠": 10.555522673137927, + "烈": 16.097631986025153, + "闪": 8.305565464716544, + "问": 96.99851069309561, + "答": 22.159638983048136, + "悟": 3.562498900216437, + "阕": 0.08638299982563431, + "队": 74.63171247898413, + "阵": 19.220217461203635, + "雨": 13.719699963047272, + "阶": 24.751928820408143, + "效": 27.488190324144206, + "率": 34.790753179774214, + "兔": 1.533298246905009, + "霸": 3.073795077128821, + "词": 22.6867352505027, + "镜": 8.137598520611144, + "鞭": 3.4529204652524386, + "著": 21.710127446918445, + "顾": 18.453168416455643, + "饭": 16.240003967219252, + "题": 66.92202974454628, + "吹": 6.378744663050312, + "飞": 34.7075695503125, + "饥": 1.8436371722045102, + "饱": 3.18337351209282, + "啄": 0.5206975267267402, + "饮": 7.913642595137277, + "馈": 0.7406542392457164, + "鞍": 1.4701106822177394, + "驾": 5.590099868345909, + "骑": 9.339761934851222, + "骨": 14.22839985090934, + "碌": 1.2453549141528946, + "鳞": 2.0515962458588146, + "爪": 1.986009153398611, + "麟": 0.7566510910652784, + "麾": 0.3735264899867706, + "守": 19.935276737538054, + "鼓": 11.109013746094769, + "灰": 8.677492269521359, + "齐": 16.116828208208624, + "猪": 5.390939063192364, + "卯": 0.653471396829104, + "确": 35.27465794731597, + "粮": 11.288178486473862, + "冬": 7.069808661655387, + "咣": 0.13517339787529814, + "虫": 9.292571221983515, + "爷": 16.607931559069176, + "丑": 2.8970298645226618, + "妮": 0.7286566003810451, + "乃": 7.1193989022960285, + "竺": 0.5326951655914116, + "侠": 3.7552609646421584, + "烯": 1.3493344509800471, + "酮": 0.7142594337434393, + "肟": 0.07758473132487526, + "酐": 0.14877072192192578, + "云": 25.153449801079148, + "鹏": 2.6330818094998905, + "亥": 2.033999708857297, + "征": 22.7963136854667, + "伟": 7.0178188932418095, + "志": 34.858739800007356, + "佩": 4.107191704672521, + "俊": 5.055805017572542, + "晖": 0.9350159888533937, + "辉": 5.201376369130555, + "修": 27.95769792504835, + "政": 181.96019023456185, + "儒": 3.148180438089784, + "竹": 9.790073313571888, + "充": 19.48336567363543, + "训": 16.90707268809498, + "庭": 15.480953348381037, + "佶": 0.04079197213988287, + "凿": 1.6204810893216215, + "井": 6.846652578772498, + "典": 18.266805092757746, + "攻": 26.846716566179776, + "猜": 4.018409177073951, + "军": 159.68937313136774, + "凤": 7.36655026290826, + "奴": 11.113812801640636, + "贷": 5.802857997546083, + "洪": 18.032451213601163, + "受": 63.76505103795572, + "田": 21.74532052092148, + "吉": 12.866267918473644, + "陪": 5.177381091401212, + "楠": 0.9166196092608974, + "嘉": 8.993430092957706, + "丽": 12.188801243915197, + "莉": 0.9710089054474079, + "宝": 31.218656168466048, + "坚": 19.113038554012572, + "微": 25.11105814375731, + "铭": 2.5139052634441543, + "坝": 3.1209857899965288, + "基": 74.83327281191062, + "橡": 1.5892872282734758, + "胶": 4.735068138590325, + "锂": 0.3343342030288439, + "壮": 9.381353749582082, + "帝": 40.633603306869205, + "旺": 2.5075065227163296, + "奉": 9.523725730776183, + "姑": 16.647123846027103, + "娘": 19.979268080041845, + "峻": 1.942817653485794, + "湾": 15.612127533301447, + "裤": 2.167573421550639, + "镐": 0.4927030360425068, + "宁": 18.76910623989199, + "庆": 15.06903441402732, + "洛": 10.952244598263063, + "银": 28.212847711570365, + "坎": 1.2501539696987634, + "宜": 19.676927580652126, + "洲": 31.807340315425925, + "园": 22.912290861158525, + "宽": 13.378167176699625, + "授": 15.624125172166117, + "芹": 0.28874317534309246, + "尼": 21.572554521270217, + "亚": 45.13351772371197, + "巡": 5.779662562407718, + "抚": 5.521313405521793, + "巳": 0.3503310548484058, + "叔": 6.569107199703098, + "姊": 5.081399980483841, + "庄": 11.187398320010622, + "镇": 26.833919084724126, + "建": 129.24656427615045, + "孙": 19.34899211835111, + "尔": 47.50585084855301, + "刚": 24.533571793071122, + "廷": 12.631114196726084, + "甜": 4.587897101850356, + "恩": 16.066438124977005, + "戊": 0.5494918600019516, + "戌": 0.33193467525590964, + "拱": 4.643886083218822, + "辰": 2.782652374012794, + "敏": 7.217779540986333, + "尹": 2.2235624029191055, + "沛": 1.1013832477768375, + "琪": 0.5550907581387983, + "特": 90.6813539095506, + "贝": 8.060013789286268, + "炉": 4.445525120656255, + "施": 34.14368052367294, + "昌": 20.631139791688994, + "晋": 7.716881317756665, + "晓": 6.296360876179568, + "莲": 8.636700297381475, + "普": 22.182034575595523, + "朗": 8.474332251412921, + "仙": 12.517536548807195, + "吕": 3.18337351209282, + "氰": 0.25994884206788105, + "汝": 3.4329244004779857, + "骏": 0.4791057119958792, + "渝": 1.3781287842552585, + "威": 19.797703811889818, + "炔": 0.22075655510995434, + "氢": 2.411525411798958, + "玉": 27.484990953780294, + "珍": 10.181196340560177, + "玲": 1.2077623123769243, + "珰": 0.4207172028544783, + "甘": 7.994426696826064, + "癸": 0.34313247152960297, + "真": 58.85001831639533, + "吾": 4.391935667060722, + "督": 16.827088428997175, + "磊": 0.31433813825439155, + "祥": 7.2993634852661, + "瑞": 7.2289773372600274, + "税": 10.027626563092383, + "萍": 1.3709302009364557, + "绪": 6.861849588001082, + "贤": 5.32535197073216, + "翠": 2.762656309238342, + "怪": 14.73310052581652, + "肇": 1.021398988679028, + "霉": 2.005205375582085, + "腈": 0.1463711941489915, + "良": 20.93428013366969, + "恒": 4.235166519229016, + "艰": 4.108791389854477, + "苯": 2.2499572084213826, + "菲": 4.462321815066795, + "蜀": 2.854638207200823, + "林": 51.772211228830166, + "衡": 7.403343022093252, + "酉": 0.3007408142077639, + "酯": 0.803841803932986, + "醛": 0.7126597485614832, + "野": 13.351772371197349, + "均": 34.10608792189697, + "锡": 4.44792464842919, + "姨": 1.8516355981142911, + "啷": 0.47350681385903254, + "诸": 13.466149861707216, + "青": 35.025906901521786, + "县": 65.22076455353587, + "皮": 22.50197161198676, + "韪": 0.10078016646324003, + "油": 25.48058542078919, + "酚": 0.9558118962188242, + "丂": 0.001599685181956191, + "亘": 0.3207368789822163, + "伽": 1.122179155142268, + "社": 80.60973600395442, + "摄": 6.217176459672736, + "氏": 6.049209515567336, + "区": 171.30468723755166, + "候": 45.11032228857361, + "嘴": 13.142213612361086, + "市": 198.43934713648355, + "婿": 0.8494328316187374, + "罪": 14.018041249482101, + "躯": 1.7196615706029053, + "驱": 5.049406276844716, + "巧": 7.169788985527648, + "痒": 1.3029435807033176, + "庙": 11.619313319138792, + "弟": 26.254833048855982, + "弦": 4.814252555097157, + "弯": 4.662282462811319, + "彩": 14.652316424127731, + "缤": 0.2327541939746258, + "纷": 10.917851366851004, + "虹": 1.9652132460331808, + "慌": 4.420730000335934, + "挪": 1.893227412845152, + "扯": 3.5712971687171966, + "翘": 0.8134399150247231, + "拼": 3.660079696315765, + "凑": 2.3067460323808273, + "捞": 1.9068247368917797, + "攘": 0.6910639986050745, + "阻": 8.771873695256774, + "擒": 2.0571951439956617, + "纵": 10.928249320533718, + "续": 28.63436475701582, + "岩": 12.732694205780302, + "泡": 4.582298203713509, + "鱼": 41.231085722329844, + "景": 24.93269324596919, + "曜": 0.1615682033775753, + "棱": 1.433317923032747, + "叉": 3.147380595498806, + "诗": 16.02164693988223, + "活": 71.56431614258314, + "濑": 0.04959024064064192, + "雪": 12.944652492389498, + "狈": 0.6358748598275858, + "疮": 0.7894446372953803, + "痛": 15.540941542704395, + "桥": 29.482997746043576, + "砂": 3.223365641641725, + "补": 14.912265266195613, + "洞": 16.93666686396117, + "烂": 4.140785093493601, + "冒": 7.875250150770329, + "珑": 0.5198976841357621, + "絃": 0.03839244436694859, + "浮": 6.5371134960639745, + "屠": 2.059594671768596, + "禽": 1.8108436259744083, + "绝": 24.824714496187152, + "贞": 2.8442402535181075, + "辑": 21.680533271052255, + "冠": 8.240778214847317, + "邻": 5.371742841008889, + "郤": 0.0175965370015181, + "坪": 1.340536182479288, + "沟": 7.644895484568637, + "奏": 8.707086445387548, + "碎": 5.718874525493383, + "颠": 2.361135328567338, + "鳃": 0.43111515653719346, + "鳗": 0.23595356433853817, + "丆": 0.001599685181956191, + "芒": 2.589890309587073, + "渊": 2.4147247821628706, + "蹄": 1.850035912932335, + "该": 48.88557931799022, + "疆": 4.633488129536107, + "乘": 9.473335647544562, + "亨": 1.6268798300494463, + "备": 49.94617059362717, + "织": 35.26745936399717, + "敌": 23.221030101276067, + "实": 139.22060138564729, + "韩": 9.943643091039682, + "宏": 7.066609291291474, + "仞": 0.494302721224463, + "玄": 4.579898675940575, + "伏": 7.788067308353716, + "欢": 19.46656897922489, + "腾": 6.103598811753846, + "瞩": 0.9286172481255689, + "塔": 10.745885209790712, + "寺": 10.27237839593168, + "峡": 8.41194452931663, + "阁": 7.839257234176315, + "佳": 8.31996263135415, + "策": 23.76092385018628, + "兰": 23.093055286719572, + "危": 13.626918222493813, + "急": 25.399001476509422, + "感": 49.4958592149065, + "劫": 2.9282237255708075, + "象": 39.96333521562956, + "蝶": 1.1621712846911727, + "屋": 13.148612353088913, + "库": 13.223797556640854, + "历": 53.457479568021014, + "厚": 13.201401964093467, + "愁": 3.8584406588783327, + "哈": 17.228609409668177, + "殿": 14.772292812774445, + "嗣": 2.184370115961179, + "铨": 0.1271749719655172, + "邮": 4.860643425373887, + "盟": 9.980435850224676, + "圣": 12.934254538706783, + "圭": 1.566091793135111, + "埠": 0.5894839895508565, + "争": 49.917376260351965, + "松": 16.935867021370193, + "溪": 4.322349361645628, + "攒": 0.7862452669314679, + "窜": 1.3213399602958138, + "远": 40.29846926124939, + "渡": 7.860852984132723, + "客": 33.93572145001863, + "隆": 9.658899128651482, + "寨": 6.56830735711212, + "寿": 5.402136859466057, + "羹": 0.9406148869902403, + "菊": 1.47410989517263, + "岳": 7.9456362987764, + "峦": 0.30314034198069817, + "州": 71.45153833725523, + "嫂": 2.6482788187284743, + "润": 10.501933219542394, + "帐": 4.7398671941361945, + "幸": 9.543721795550635, + "澜": 1.0094013498143566, + "延": 11.440948421350678, + "森": 10.793875765249398, + "莱": 5.328551341096072, + "寂": 2.362735013749294, + "恶": 13.70370311122771, + "侯": 4.9806198140206, + "斛": 0.15197009228583816, + "据": 55.44188903623767, + "亭": 5.814855636410755, + "引": 35.384236382279965, + "医": 27.35381676885989, + "浦": 2.7754537906939913, + "柏": 4.091994695443937, + "梨": 1.7860485056540873, + "梓": 0.8910246463495984, + "犹": 5.210974480222292, + "毕": 16.842285438225755, + "术": 69.39434319325957, + "炭": 3.0330031049889383, + "唯": 7.469729957144434, + "蒂": 2.3811313933417906, + "仰": 5.522113248112771, + "澳": 5.5916995535278655, + "状": 28.60876979410452, + "盛": 13.767690518505958, + "睚": 0.0175965370015181, + "眦": 0.07678488873389717, + "睽": 0.217557184746042, + "奔": 10.144403581375185, + "姿": 2.9162260867061365, + "科": 84.5177669034734, + "穗": 0.6414737579644326, + "笏": 0.06638693505118193, + "签": 9.065415926145736, + "插": 6.29556103358859, + "籁": 0.17836489778811532, + "跑": 12.54073198394556, + "精": 41.19749233350876, + "紫": 10.39475431235133, + "纳": 16.575937855430052, + "姆": 5.307755433730642, + "绮": 1.2837473585198433, + "雯": 0.37112696221383634, + "绳": 3.4145280208854896, + "绿": 13.442154583977873, + "工": 189.57709122844625, + "钥": 0.8358355075721098, + "奈": 3.865639242197136, + "艾": 3.1441812251348935, + "艳": 3.072195391946865, + "筒": 2.8234443461526775, + "辛": 7.264170411263063, + "更": 70.98043105116913, + "罗": 32.94231695202384, + "财": 25.842914114502268, + "贵": 19.983267292996736, + "妃": 4.302353296871176, + "赖": 4.897436184558878, + "蓉": 3.1417816973619592, + "晴": 1.791647403790934, + "迢": 0.41111909176274114, + "翼": 5.070202184210148, + "巨": 13.08222541803773, + "却": 58.56207498364322, + "震": 11.05382460731728, + "琉": 1.8860288295263492, + "璃": 4.024807917801777, + "喑": 0.06398740727824763, + "矛": 5.866045562233352, + "母": 24.25762609918368, + "积": 44.70320240976576, + "除": 35.484216706152225, + "拗": 0.6158787950531335, + "朽": 1.1245786829152022, + "丙": 1.4221201267590537, + "臭": 3.1449810677258716, + "匠": 4.096793750989805, + "墓": 11.689699467144866, + "汤": 7.547314688469309, + "申": 8.188788446433742, + "优": 25.8709086051865, + "父": 28.681555469883527, + "保": 69.12079702714506, + "催": 3.4841143263005843, + "妇": 14.448356563428318, + "旗": 12.871066974019513, + "卿": 2.558696448538927, + "乌": 9.931645452175012, + "农": 55.678642443167185, + "夏": 21.92208573352764, + "像": 40.76317780660766, + "螟": 0.11597717569182385, + "北": 165.41864561054385, + "铺": 9.898851905944909, + "博": 15.565736663024717, + "占": 32.004901435397514, + "卫": 25.643753309348718, + "戟": 1.3181405899319014, + "纪": 36.77116343503598, + "握": 9.594911721373233, + "告": 40.424044548032946, + "杼": 0.07198583318802859, + "俯": 1.8276403203849483, + "唑": 0.21595749956408578, + "嗪": 0.13597324046627624, + "围": 29.203852681792224, + "演": 27.349817555905, + "坊": 3.9936140567536307, + "坟": 1.9732116719429618, + "堡": 6.433133959236822, + "堰": 6.741073356763389, + "塘": 2.882632697885056, + "塚": 0.010397953682715242, + "太": 74.95644857092124, + "证": 36.53760939847038, + "钳": 0.4935028786334849, + "夹": 4.563901824121013, + "歉": 1.2541531826536538, + "歹": 1.180567664283669, + "妾": 1.2349569604701796, + "婆": 11.119411699777483, + "姓": 15.264995848816952, + "委": 93.25444752472713, + "媒": 7.67288997525287, + "宅": 2.9650164847558003, + "颜": 6.322755681681845, + "害": 24.48158202465755, + "尖": 8.147996474293858, + "杉": 2.300347291653003, + "居": 35.54660442824852, + "屉": 0.4999016193613097, + "屯": 2.3251424119733235, + "岔": 0.9822067017211014, + "岛": 22.673137926456075, + "总": 86.58216063078785, + "枢": 3.752061594278246, + "纽": 4.144784306448491, + "驼": 1.7804496075172407, + "废": 8.949438750453911, + "弄": 7.573709493971586, + "犁": 1.314941219567989, + "器": 45.81498361122531, + "影": 40.446440140580336, + "徙": 1.0693895441377137, + "逻": 3.3401426599245267, + "怨": 4.271959278414008, + "亡": 12.466346622984595, + "秦": 9.86125930416894, + "肱": 0.10477937941813051, + "拇": 0.9470136277180651, + "撑": 2.919425457070049, + "治": 99.76116700233393, + "蚊": 0.7422539244276727, + "旨": 6.449130811056384, + "柳": 6.390742301914983, + "昧": 0.9950041831767508, + "智": 13.011839270031658, + "曹": 7.552913586606156, + "替": 10.03402530382021, + "末": 13.139814084588155, + "朋": 9.417346666176098, + "斧": 1.5356977746779434, + "极": 43.32987268105637, + "校": 45.99654787937734, + "桅": 0.37752570294166105, + "棉": 7.900845113681627, + "棒": 4.381537713378007, + "锥": 1.6052840800930377, + "住": 52.41528467197656, + "榜": 3.648881900042072, + "棘": 0.9934044979947945, + "氟": 0.8030419613420079, + "硼": 0.34553199930253725, + "砷": 0.2655477402047277, + "铁": 38.006120395506166, + "铝": 1.6604732188705262, + "铬": 0.6326754894636736, + "锑": 0.26234836984081533, + "硫": 2.353136902657557, + "钨": 0.5206975267267402, + "钼": 0.30154065679874203, + "碘": 0.6838654152862718, + "铋": 0.10317969423617432, + "硅": 2.0971872735445665, + "磷": 2.9354223088896108, + "汊": 0.3895233418063325, + "侗": 0.9062216555781822, + "自": 238.21391950064228, + "范": 27.95849776763933, + "割": 4.9846190269754915, + "沐": 1.2933454696115805, + "熏": 0.9006227574413356, + "薰": 0.24155246247538484, + "泰": 8.33196027021882, + "津": 10.249982803384295, + "浴": 1.598885339365213, + "衅": 0.535894535955324, + "温": 22.921089129659283, + "暖": 8.836660945125999, + "湘": 7.1185990597050495, + "滤": 1.0645904885918451, + "灾": 6.577105625612879, + "俞": 2.185969801143135, + "牲": 3.4641182615261314, + "舍": 6.860249902819126, + "界": 58.12296140119624, + "略": 23.714532979909553, + "皇": 50.74281381424136, + "皈": 0.24795120320320962, + "盈": 4.331947472737365, + "盖": 10.587516376777051, + "冈": 5.603697192392537, + "络": 11.264983051335498, + "杂": 15.314586089457594, + "纲": 5.499717655565385, + "驴": 1.6628727466434605, + "设": 82.43257726879351, + "结": 68.13939016801493, + "栅": 0.803841803932986, + "图": 44.05293038330057, + "缄": 0.2519504161581001, + "缺": 13.187004797455861, + "聚": 10.597914330459766, + "脂": 4.33834621346519, + "钠": 1.6780697558720443, + "猫": 3.023404993897201, + "臡": 0.003999212954890477, + "菹": 0.019996064774452385, + "堇": 0.05838850914140097, + "苋": 0.13517339787529814, + "芝": 1.9588145053053558, + "膦": 0.023995277729342866, + "茂": 2.7586570962834513, + "茶": 18.062845232058333, + "礼": 21.426983169712198, + "厌": 2.418723995117761, + "菱": 2.420323680299717, + "萜": 0.10637906460008671, + "营": 32.93511836870504, + "藏": 23.231428054958783, + "藩": 1.306942793658208, + "鼠": 3.140981854770981, + "杨": 28.96949880263564, + "恋": 3.718468205457166, + "枫": 0.519097841544784, + "测": 19.026655554186934, + "淀": 1.473310052581652, + "肌": 4.269559750641074, + "钢": 10.309970997707651, + "育": 43.107516440764456, + "评": 17.438968011095415, + "考": 50.09334163036715, + "请": 33.38303021965277, + "唤": 3.7720576590526984, + "谏": 1.4141217008492728, + "豕": 0.08478331464367812, + "涉": 8.11760245583669, + "祠": 1.2037630994220339, + "企": 35.39703386373562, + "趾": 0.8142397576157012, + "汇": 10.886657505802857, + "跪": 4.932629258561915, + "叩": 2.044397662540012, + "狂": 6.008417543427454, + "阀": 3.360938567289957, + "速": 37.20627780452807, + "链": 3.7216675758210784, + "邀": 4.403133463334416, + "赋": 5.3389492947787875, + "鑫": 0.2943420734799392, + "闾": 0.23835309211147246, + "陵": 15.436962005877243, + "娃": 4.8734409068295355, + "茅": 3.4969118077562333, + "庐": 1.5772895894088044, + "芦": 2.7170652815525904, + "频": 9.406148869902403, + "愆": 0.08718284241661241, + "继": 22.51556893603339, + "槽": 2.6250833835901095, + "魂": 5.238169128315548, + "魄": 1.6012848671381472, + "鲜": 17.81249450108219, + "鹰": 3.2657572989635644, + "鹿": 7.743276123258942, + "麦": 8.165593011295377, + "鸡": 9.296570434938404, + "困": 13.038234075533934, + "墀": 0.16876678669637815, + "贼": 8.244777427802209, + "谄": 0.2711466383415744, + "京": 66.37813678268117, + "完": 55.08355955547948, + "供": 28.6679581458369, + "梆": 0.34473215671155916, + "伐": 4.8566442124189955, + "谋": 9.566117388098021, + "冻": 2.6858714205044447, + "刑": 9.687693461926692, + "勤": 6.237972367038167, + "限": 23.61535249862827, + "史": 53.44868129952025, + "吸": 15.163415839762735, + "睦": 0.9022224426232917, + "唇": 2.6778729945946638, + "若": 29.83012943052807, + "赛": 27.619364509064617, + "坡": 6.918638411960526, + "妆": 1.673270700326176, + "嫚": 0.029594175866189534, + "仪": 10.770680330111034, + "俸": 0.6550710820110601, + "兄": 17.610134325564726, + "卑": 3.3457415580613734, + "婉": 1.542896357996746, + "桀": 0.1751655274242029, + "毅": 2.3011471342439807, + "燕": 6.201979450444152, + "亦": 8.972634185592277, + "宾": 5.409335442784861, + "筑": 21.269414179289512, + "屈": 5.7780628772257625, + "屏": 3.75046190909629, + "岸": 14.465953100429834, + "佑": 1.6988656632374748, + "广": 55.115553259118606, + "睡": 11.077819885046623, + "骗": 3.6320852056315314, + "乖": 1.8652329221609187, + "御": 11.575321976634998, + "玺": 0.7470529799735413, + "慢": 13.810882018418775, + "扬": 10.974640190810447, + "捷": 4.371139759695293, + "轩": 2.656277244638255, + "控": 16.771899290219686, + "卸": 2.0907885328167417, + "援": 7.332956874087179, + "料": 40.12010436346127, + "旋": 7.384146799909778, + "昆": 5.25816519309, + "映": 8.015222604191495, + "晶": 6.931435893416176, + "操": 13.519739315302749, + "杭": 5.991620849016914, + "苑": 1.1269782106881365, + "柴": 4.323949046827584, + "栗": 1.5684913209080453, + "赐": 3.2553593452808487, + "沃": 2.537900541173497, + "央": 30.999499298538048, + "馆": 14.948258182789626, + "籍": 5.840450599322053, + "翰": 2.5498981800381686, + "贸": 10.901854515031442, + "协": 26.885109010546724, + "剧": 19.540954340185852, + "艺": 27.098666982337875, + "滩": 3.562498900216437, + "厂": 17.32778989094946, + "芭": 0.7254572300171326, + "蕾": 0.7814462113855993, + "警": 14.542737989163731, + "译": 6.518717116471478, + "涌": 5.385340165055517, + "涨": 6.576305783021901, + "溢": 1.3285385436146167, + "溯": 1.0901854515031442, + "滔": 0.8734281093480802, + "骄": 1.4293187100778566, + "湿": 6.569107199703098, + "潮": 9.641302591649962, + "霄": 0.6838654152862718, + "烝": 0.00879826850075905, + "焙": 0.25115057356712195, + "爬": 4.3943351948336575, + "牙": 13.973250064387328, + "膛": 1.254953025244632, + "岭": 10.450743293719794, + "瘾": 0.6822657301043155, + "鞘": 1.071789071910648, + "附": 14.420362072744084, + "装": 42.64760695095205, + "掇": 0.443912637992843, + "粪": 1.12137931255129, + "导": 69.78626606283883, + "缴": 1.72606031133073, + "费": 31.644972269457373, + "肥": 7.323358762995443, + "塞": 10.283576192205373, + "脘": 0.09998032387226194, + "膘": 0.07438536096096289, + "苍": 3.0074081420776393, + "膏": 2.1411786160483617, + "荷": 7.138595124479503, + "蒸": 4.712672546042938, + "蔡": 2.8314427720624584, + "虞": 0.9574115814007803, + "蜡": 1.8964267832090644, + "访": 11.080219412819558, + "综": 10.02042797977358, + "诉": 16.05124111574842, + "谕": 1.5772895894088044, + "账": 2.773054262921057, + "蹿": 0.41671798989958775, + "述": 16.866280715955103, + "况": 36.66158500007199, + "送": 23.785718970506604, + "釉": 0.5142987859989154, + "枋": 0.09518126832639337, + "钗": 0.4663082305402297, + "务": 93.13687066385336, + "闩": 0.292742388297983, + "颌": 0.6622696653298631, + "突": 29.762142810294932, + "缩": 8.975833555956187, + "颔": 0.15037040710388194, + "颚": 0.2167573421550639, + "额": 19.580146627143776, + "饶": 2.4795120320320962, + "茗": 0.2303546662016915, + "驷": 0.5318953230004335, + "髎": 0.031193861048145723, + "滥": 1.6596733762795484, + "乔": 4.048803195531119, + "侵": 12.399159845342437, + "蚀": 2.558696448538927, + "剩": 8.259974437030792, + "厨": 1.8796300887985244, + "召": 16.242403494992185, + "穴": 6.234772996674255, + "吴": 18.845891128625887, + "咽": 2.9898116050761208, + "喙": 0.25115057356712195, + "坠": 1.374129571300368, + "垂": 6.157188265349379, + "垫": 1.6148821911847748, + "堕": 1.1085818310956403, + "聋": 0.6966628967419212, + "嫁": 3.3377431321515925, + "宿": 4.90543461046866, + "阈": 0.1751655274242029, + "颊": 1.4421161915335063, + "颏": 0.18156426815202767, + "怀": 14.34197749882823, + "悬": 6.321955839090867, + "窗": 6.761069421537842, + "挫": 1.6212809319125996, + "探": 14.201205202816087, + "摆": 9.177393888882667, + "苏": 26.6851483628022, + "柬": 1.1029829329587937, + "欠": 2.6418800780006495, + "毒": 18.24840871316525, + "怡": 1.6020847097291253, + "泄": 3.146580752907828, + "坯": 0.31193861048145727, + "耻": 2.1139839679551065, + "潜": 11.194596903329424, + "炕": 1.480508635900455, + "狱": 3.543302678032963, + "疳": 0.043191499912817156, + "痢": 0.2799449068423334, + "痿": 0.12877465714747338, + "乳": 5.183779832129037, + "睑": 0.19196222183474293, + "矿": 17.682920001343735, + "箸": 0.12957449973845148, + "聘": 6.755470523400994, + "脣": 0.05998819432335716, + "腰": 6.625096181071565, + "膊": 1.2933454696115805, + "护": 32.58238778608369, + "蹊": 0.3215367215731944, + "萨": 8.757476528619168, + "葬": 5.252566294953153, + "蛋": 10.845065691071998, + "袅": 0.38552412885144205, + "襬": 0.006398740727824764, + "诹": 0.05678882395944478, + "铃": 1.8540351258872254, + "贱": 1.7212612557848617, + "伊": 15.620125959211226, + "泣": 1.3669309879815652, + "辖": 19.916080515354576, + "逐": 15.517746107566031, + "遂": 4.272759121004986, + "遣": 4.5543037130292765, + "构": 40.17689318742072, + "钓": 1.347734765798091, + "阙": 1.9780107274888301, + "陆": 27.057875010197993, + "降": 25.25343012495141, + "陷": 7.129796855978744, + "雹": 0.25115057356712195, + "霜": 2.3571361156124473, + "迹": 10.560321728683794, + "运": 64.01380208374992, + "凸": 1.6116828208208624, + "冯": 3.177774613955973, + "丌": 0.011197796273693337, + "勋": 2.1931683844619383, + "俭": 0.9766078035842547, + "乏": 5.302956378184773, + "习": 27.369013778088473, + "予": 11.04182696845261, + "认": 51.86499296938363, + "睬": 0.5822854062320535, + "亢": 0.8982232296684013, + "乎": 20.96467415212686, + "菌": 5.570903646162436, + "也": 259.4321437541092, + "什": 63.37312816837647, + "慈": 5.518114035157881, + "仅": 29.371819625897622, + "今": 70.17418971946321, + "矩": 2.773054262921057, + "烧": 12.56552710426588, + "埋": 4.71667175899783, + "密": 27.853718388221196, + "脾": 2.7114663834157438, + "胃": 3.326545335877899, + "伦": 9.99963207240815, + "但": 115.94598183077571, + "佞": 0.21995671251897628, + "使": 102.53342142266402, + "它": 64.59928686034588, + "邪": 3.446521724524614, + "翁": 2.953018845891129, + "倦": 1.2149608956957272, + "驳": 1.416521228622207, + "假": 17.007852854558223, + "倚": 1.5604928949982644, + "偢": 0.02879433327521144, + "倸": 0.043191499912817156, + "僧": 7.40414286468423, + "免": 21.47337403998893, + "戴": 6.489122940605289, + "我": 369.8760084015465, + "兹": 2.3043465046078935, + "冷": 17.539748177558657, + "减": 15.52574453347581, + "玩": 8.657496204746906, + "彼": 4.69107679608653, + "畛": 0.03999212954890477, + "域": 28.55598018309997, + "皂": 0.8150396002066793, + "轾": 0.01439716663760572, + "刊": 5.787660988317499, + "因": 99.74037109496851, + "汉": 86.86690459317606, + "析": 12.551129937628275, + "渲": 0.3695272770318801, + "劣": 2.749058985191714, + "配": 23.318610897375397, + "烦": 5.636490738622639, + "繁": 12.401559373115372, + "详": 4.986218712157448, + "另": 29.958104245084566, + "迩": 0.3527305826213401, + "估": 6.003618487881584, + "摇": 11.195396745920403, + "或": 82.37898781519796, + "抗": 26.392405974504218, + "捉": 3.879236566243763, + "揆": 0.06798662023313812, + "救": 18.118834213426798, + "疗": 12.509538122897414, + "葯": 0.023995277729342866, + "喻": 1.8948270980271082, + "磨": 6.538713181245931, + "灭": 10.863462070664493, + "倪": 0.9318166184894813, + "闲": 6.658689569892645, + "宣": 21.882893446569717, + "讳": 1.1629711272821508, + "违": 5.821254377138579, + "逆": 3.634484733404466, + "造": 46.90037000718259, + "逾": 1.054992377500108, + "越": 36.385639306184544, + "避": 11.56572386554326, + "靠": 14.426760813471908, + "须": 28.68315515506548, + "臾": 0.20076049033550197, + "吃": 41.90615286911536, + "寻": 12.269585345603986, + "誉": 8.468733353276075, + "茹": 0.22955482361071342, + "吝": 0.2711466383415744, + "含": 17.99645829700715, + "吵": 2.2395592547386673, + "闹": 8.51272469577987, + "蔼": 0.34793152707547154, + "咎": 0.44071326762893065, + "咸": 4.991017767703316, + "淡": 8.547917769782906, + "哼": 3.155379021408587, + "啻": 0.10317969423617432, + "勿": 1.2597520807905005, + "由": 110.14472351841158, + "坏": 11.916854762982645, + "堪": 3.6320852056315314, + "耳": 13.14941219567989, + "壹": 0.08318362946172193, + "借": 12.27598408633181, + "够": 19.384185192354145, + "悉": 5.702077831082843, + "黍": 0.18956269406180865, + "絫": 0.009598111091737147, + "夷": 3.385733687610278, + "惠": 5.0438073787078705, + "惹": 2.0667932550873984, + "妙": 6.451530338829318, + "妥": 2.8306429294714803, + "妨": 2.101186486499457, + "媿": 0.029594175866189534, + "嫉": 0.703061637469746, + "妒": 0.7422539244276727, + "嫌": 2.503507309761439, + "孕": 2.6330818094998905, + "症": 6.811459504769461, + "济": 61.45670532039295, + "芥": 0.7590506188382126, + "孚": 0.36872743444090206, + "孝": 8.684690852840161, + "称": 70.85645544956752, + "噪": 1.1085818310956403, + "羞": 2.356336273021469, + "辩": 4.288755972824548, + "疑": 12.727095307643456, + "许": 42.41645244215938, + "寐": 0.2895430179340706, + "慄": 0.019196222183474294, + "察": 34.526005282160476, + "尴": 1.2117615253318148, + "尬": 1.1677701828280196, + "挠": 1.1853667198295375, + "屑": 1.3173407473409233, + "诲": 0.8390348779360222, + "毁": 7.1865856799381875, + "么": 135.6461048465662, + "累": 10.143603738784206, + "帅": 4.775860110730209, + "遇": 15.02264354375059, + "弃": 7.1201987448870065, + "弱": 9.92764623922012, + "待": 24.00167647007069, + "蓍": 0.031993703639123815, + "龟": 2.042797977358056, + "徇": 0.16956662928735625, + "徐": 11.02423043145109, + "疾": 8.275171446259376, + "循": 4.855844369828018, + "忌": 7.311361124130771, + "忘": 8.741479676799607, + "忮": 0.004799055545868573, + "怎": 37.15828724906938, + "没": 126.43111835590756, + "牺": 2.105185699454347, + "悔": 2.7266633926443276, + "恭": 3.9448236587039673, + "敬": 9.123004592696157, + "恰": 5.3557459891893275, + "悦": 2.316344143472565, + "悱": 0.022395592547386673, + "惑": 2.832242614653436, + "惜": 5.470923322290174, + "惟": 2.9354223088896108, + "惮": 0.6214776931899801, + "惯": 6.818658088088264, + "愉": 1.4701106822177394, + "趣": 6.963429597055299, + "愤": 5.324552128141182, + "启": 7.844056289722182, + "愧": 2.2563559491492073, + "懂": 5.941230765785293, + "懈": 0.9662098499015394, + "努": 7.852854558222941, + "懊": 0.4807053971778354, + "圆": 12.687903020685528, + "戒": 6.113996765436562, + "退": 19.07144673928171, + "扶": 5.510915451839078, + "抽": 7.141794494843414, + "拘": 1.4789089507184987, + "泥": 9.7604791377057, + "择": 11.695298365281714, + "薪": 4.547904972301452, + "挑": 7.609702410565601, + "祖": 16.197612309897412, + "挡": 4.645485768400778, + "捕": 8.516723908734761, + "换": 18.665926545655815, + "迟": 5.666084914488828, + "揍": 0.23515372174756008, + "罢": 13.186204954864884, + "揣": 0.7982429057961393, + "揪": 1.2261586919694203, + "採": 0.0175965370015181, + "擅": 2.504307152352417, + "诛": 1.12137931255129, + "敢": 20.777510985837985, + "掠": 2.9314230959347203, + "骛": 0.0887825275985686, + "啦": 8.559915408647578, + "肯": 13.24699299177922, + "攀": 2.0803905791340265, + "洁": 3.887234992153544, + "富": 30.186059383513324, + "创": 32.42801816602493, + "扩": 16.215208846898932, + "耷": 0.13357371269334195, + "肿": 4.625489703626326, + "踵": 0.5086998878620688, + "裨": 0.1935619070166991, + "憾": 1.3605322472537404, + "需": 36.93753069395943, + "蕴": 1.8356387462947292, + "冤": 2.4307216339824325, + "露": 15.916067717873121, + "暇": 1.5013045432658854, + "曾": 33.57739196926045, + "输": 16.994255530511595, + "枉": 1.3773289416642807, + "栉": 0.1951615921986553, + "桃": 11.579321189589889, + "检": 26.80992380699478, + "欺": 3.6568803259518528, + "闇": 0.12157607382867051, + "徒": 8.39994689045196, + "祸": 3.5608992150344814, + "涩": 0.8678292112112336, + "淑": 1.42371981194101, + "溶": 5.255765665317066, + "混": 11.15860398673541, + "稽": 1.0493934793632613, + "爽": 2.337939893428973, + "牧": 6.461928292512034, + "偶": 4.904634767877681, + "猧": 0.0023995277729342867, + "魀": 0.006398740727824764, + "寞": 0.7070608504246364, + "沦": 1.542896357996746, + "谢": 13.087024473583599, + "畅": 3.966419408660376, + "畏": 2.7498588277826923, + "险": 17.45896407586987, + "疲": 2.972215068074603, + "疼": 4.102392649126651, + "瘟": 0.4127187769446973, + "适": 25.67814654076078, + "眠": 2.5754931429494676, + "痕": 2.339539578610929, + "瞅": 1.3453352380251566, + "瞒": 2.0324000236753403, + "你": 206.90968017494157, + "您": 12.060826429358702, + "瞽": 0.03919228695792668, + "矜": 0.3919228695792668, + "董": 7.297763800084144, + "寝": 1.2357568030611574, + "厝": 0.08638299982563431, + "措": 9.102208685330726, + "浅": 5.096596989712425, + "薡": 0.037592601775970486, + "蕫": 0.0023995277729342867, + "碍": 4.298354083916285, + "貌": 7.187385522529166, + "祧": 0.11837670346475813, + "跬": 0.019996064774452385, + "稂": 0.019196222183474294, + "莠": 0.09278174055345909, + "稳": 13.593324833672733, + "固": 15.392970663373449, + "稼": 0.9814068591301232, + "穑": 0.10237985164519622, + "竭": 2.425922578436564, + "符": 7.408142077639121, + "笨": 1.0341964701346775, + "箕": 0.4335146843101278, + "谁": 22.085253622087173, + "粘": 3.2217659564597687, + "纯": 9.7348841747944, + "给": 72.04182216939705, + "羁": 0.8854257482127518, + "習": 0.0023995277729342867, + "耐": 5.214173850586205, + "最": 122.70225219676767, + "肖": 2.4867106153508987, + "瘦": 3.256159187871827, + "扰": 4.455123231747993, + "唏": 0.1231757590106267, + "嘘": 0.544692804456083, + "桮": 0.0023995277729342867, + "杓": 0.1263751293745391, + "胫": 0.21035860142723914, + "偿": 4.2247685655463005, + "允": 4.196774074862067, + "抑": 3.341742345106483, + "愈": 5.853248080777703, + "缓": 10.629108191507912, + "让": 47.34988154331227, + "逃": 10.925849792760786, + "脩": 0.016796694410540006, + "腆": 0.20395986069941435, + "嗜": 0.653471396829104, + "窠": 0.1399724534211667, + "臼": 0.38632397144242014, + "蔓": 0.8262373964803726, + "薄": 6.5371134960639745, + "匮": 0.31673766602732584, + "履": 2.9690156977106907, + "衰": 4.816652082870092, + "郭": 9.011026629959224, + "棺": 3.6240867797217504, + "付": 13.29258401946497, + "踪": 3.4817147985276495, + "谜": 1.3253391732507043, + "眉": 5.814855636410755, + "肝": 4.229567621092169, + "谐": 2.270753115786813, + "谙": 0.3111387678904792, + "豫": 4.3935353522426785, + "贪": 3.31774706737714, + "赀": 0.09118205537150288, + "赏": 7.307361911175881, + "与": 142.65032641576138, + "凭": 7.6169009938844034, + "齿": 4.351943537511818, + "跟": 31.02749378922228, + "蹬": 0.5334950081823897, + "辍": 0.544692804456083, + "辟": 4.1231885564920825, + "钺": 0.13837276823921052, + "辨": 3.958420982750594, + "伪": 3.216167058322922, + "菽": 0.05918835173237907, + "辱": 3.575296381672087, + "追": 14.998648266021247, + "赃": 0.6038811561884622, + "逊": 2.5203040041719786, + "透": 10.89785530207655, + "遑": 0.09438142573541526, + "辣": 3.843243649649749, + "锈": 0.5702877673673822, + "呀": 8.275971288850355, + "随": 40.08891050241312, + "锋": 7.644895484568637, + "铓": 0.019196222183474294, + "盗": 5.626092784939924, + "驯": 1.023798516451962, + "躁": 1.539696987632834, + "馁": 0.16796694410540006, + "矮": 2.4179241525267825, + "偃": 0.3495312122574278, + "膜": 4.624689861035349, + "偕": 0.4055201936258944, + "增": 54.30291318668486, + "竞": 9.94124356326675, + "添": 5.004615091749944, + "丐": 2.4571164394847096, + "丫": 2.5426995967193657, + "妹": 9.894852692990021, + "鸭": 2.739460874099977, + "陋": 0.9742082758113203, + "丒": 0.001599685181956191, + "培": 13.08222541803773, + "储": 7.444934836824113, + "署": 8.270372390713508, + "宠": 1.9684126163970932, + "诊": 3.795253094191063, + "恣": 0.2663475827957058, + "找": 27.926504064000206, + "拣": 0.8054414891149422, + "肆": 2.2475576806484483, + "姐": 12.418356067525911, + "跋": 1.181367506874647, + "扈": 0.48630429531468206, + "贴": 8.680691639885271, + "租": 6.509119005379741, + "讯": 8.483130519913681, + "递": 6.69868169944155, + "研": 49.919775788124895, + "究": 43.79538106900562, + "讨": 12.541531826536538, + "且": 36.12009156597982, + "丕": 0.7734477854758183, + "仕": 1.264551136336369, + "沿": 14.809885414550417, + "侄": 1.9956072644903484, + "异": 18.631533314243757, + "弊": 1.6692714873712855, + "炎": 6.050009358158314, + "纶": 0.36312853630405534, + "殊": 8.071211585559961, + "各": 118.65824805678243, + "脊": 4.523909694572109, + "秩": 2.7330621333721523, + "录": 16.891075836275423, + "坛": 10.189194766469958, + "互": 16.595134077613523, + "袭": 6.616297912570807, + "谊": 2.2499572084213826, + "锦": 6.333953477955538, + "隐": 11.327370773431788, + "浇": 1.0861862385482537, + "丗": 0.005598898136846668, + "娜": 3.6808756036811956, + "埃": 8.917445046814787, + "墟": 0.8766274797119927, + "布": 62.67646527163455, + "慧": 3.5792955946269776, + "桐": 2.0228019125836036, + "敦": 4.1063918620815425, + "疹": 0.6110797395072649, + "汕": 0.4071198788078506, + "赫": 4.7286693978625, + "逢": 2.94821979034526, + "俦": 0.07198583318802859, + "咪": 0.4759063416319668, + "寅": 0.611879582098243, + "氨": 3.959220825341573, + "歧": 1.6644724318254167, + "酰": 0.7294564429720231, + "璜": 0.1575689904226848, + "肽": 0.4903035082695726, + "磺": 0.45750996203947064, + "稀": 6.107598024708738, + "兢": 0.7750474706577746, + "质": 54.75322456540553, + "鸿": 6.83305525472587, + "绩": 8.774273223029708, + "核": 21.942881640893074, + "牡": 1.2253588493784424, + "玫": 1.0357961553166337, + "瑰": 1.5532943116794615, + "珊": 3.0154065679874202, + "础": 15.989653236243107, + "礁": 1.1157804144144434, + "奎": 0.7990427483871174, + "莽": 1.1829671920566034, + "蕉": 0.9262177203526346, + "唷": 0.22075655510995434, + "轴": 4.045603825167207, + "雀": 2.042797977358056, + "飘": 3.8848354643806102, + "蓬": 2.7786531610579037, + "临": 20.889488948574922, + "穆": 4.417530629972022, + "沁": 0.7270569151990889, + "伸": 12.447150400801123, + "佃": 0.8934241741225326, + "偷": 5.948429349104096, + "撞": 5.806057367909995, + "冶": 3.709669936956407, + "勒": 8.74387920457254, + "郊": 3.6104894556751232, + "欧": 20.500765449359566, + "侦": 3.2705563545094325, + "迪": 3.9096305847009307, + "吁": 1.8204417370661454, + "喀": 2.958617744027975, + "圃": 0.48470461013272587, + "唐": 14.889069831057249, + "默": 8.647898093655169, + "垣": 1.0158000905421813, + "境": 36.54720750956212, + "宋": 18.07084365796811, + "郡": 10.700294182104962, + "觅": 1.399724534211667, + "崖": 2.4123252543899363, + "汶": 0.435114369492084, + "坦": 11.916854762982645, + "姣": 0.34553199930253725, + "娇": 1.8812297739804806, + "廊": 4.537507018618736, + "觑": 0.7150592763344173, + "刘": 24.637551329898276, + "幽": 3.843243649649749, + "戈": 2.737861188918021, + "荡": 6.852251476909345, + "捏": 1.841237644431576, + "拽": 0.9542122110368679, + "抄": 2.3827310785237463, + "拦": 4.1991736026350015, + "挦": 0.02879433327521144, + "撦": 0.004799055545868573, + "捱": 0.17356584224224672, + "捻": 0.6822657301043155, + "搜": 10.408351636397956, + "撙": 0.00719858331880286, + "敲": 3.0945909844942516, + "逼": 5.2797609430464085, + "仗": 5.606096720165471, + "助": 24.167243886403156, + "谭": 2.217963504782259, + "朔": 0.7902444798863584, + "曙": 0.9934044979947945, + "樱": 0.8286369242533069, + "昏": 3.9560214549776602, + "鲁": 11.636909856140312, + "曦": 0.22155639770093247, + "淮": 4.380737870787029, + "舰": 11.575321976634998, + "鲸": 0.6646691931027973, + "逛": 1.288546414065712, + "滚": 5.70767672921969, + "滨": 2.972215068074603, + "潞": 0.20635938847234864, + "濒": 0.8606306278924308, + "瀛": 1.2205597938325736, + "誓": 2.44831817098395, + "牟": 0.761450146611147, + "猎": 3.624886622312729, + "渔": 5.423732609422466, + "瓜": 4.660682777629362, + "窑": 2.2771518565146383, + "瓯": 0.1975611199715896, + "皋": 0.9174194518518756, + "睃": 0.05918835173237907, + "碰": 4.98541886956647, + "磁": 7.3217590778134864, + "磕": 1.9372187553489473, + "厥": 1.2797481455649526, + "笋": 0.47430665645001063, + "篱": 0.427115943582303, + "羲": 1.5532943116794615, + "耶": 4.1143902879913234, + "撒": 4.4607221298848385, + "聊": 2.705067642687919, + "荆": 20.04005611695618, + "莞": 0.3495312122574278, + "莨": 0.07438536096096289, + "菪": 0.08078410168878765, + "碱": 3.1801741417289078, + "彦": 1.305343108476252, + "摩": 8.094407020698327, + "躲": 4.499914416842765, + "魏": 6.910639986050745, + "殃": 0.3151379808453696, + "诓": 0.14397166637605718, + "豆": 8.205585140844281, + "购": 11.836870503884835, + "踅": 0.42871562876425917, + "辽": 7.307361911175881, + "韦": 11.017831690723266, + "屿": 1.565291950544133, + "闯": 7.599304456882885, + "雍": 1.2181602660596393, + "霍": 3.760060020188027, + "裂": 7.816861641628926, + "浩": 3.9184288532016898, + "泊": 6.008417543427454, + "椅": 3.2385626508703087, + "骋": 0.2687471105686401, + "麓": 1.6868680243728034, + "巾": 2.1779713752333545, + "帕": 2.932222938525698, + "毯": 1.2653509789273472, + "糕": 3.520107242894598, + "纺": 8.511125010597915, + "绒": 1.1717693957829098, + "绘": 6.066006209977877, + "绢": 0.7974430632051612, + "绵": 2.8010487536052904, + "被": 96.60338845315242, + "绸": 1.7348585798314893, + "蝇": 0.8798268500759051, + "袜": 0.6350750172366078, + "腿": 7.163390244799823, + "丞": 2.016403171855779, + "丟": 0.010397953682715242, + "車": 0.012797481455649528, + "丢": 3.8992326310182155, + "纱": 2.697069216778138, + "帽": 3.0945909844942516, + "盔": 0.9742082758113203, + "抛": 3.2105681601860754, + "晒": 2.077991051361092, + "殖": 11.001834838903704, + "硬": 10.173997757241374, + "刷": 4.623890018444371, + "抵": 10.35236265502949, + "浙": 4.6798789998128365, + "潘": 1.8436371722045102, + "呆": 5.830052645639339, + "粤": 1.2917457844296243, + "肋": 0.6414737579644326, + "肩": 6.031612978565819, + "橱": 0.5742869803222727, + "腮": 0.703061637469746, + "袖": 5.044607221298849, + "讫": 0.23515372174756008, + "鬃": 0.1775650551971372, + "鬓": 0.5198976841357621, + "缝": 3.5944926038555614, + "埙": 0.2607486846588591, + "笙": 0.6862649430592059, + "罚": 6.153988894985467, + "拷": 0.5326951655914116, + "葵": 0.7742476280667964, + "惩": 2.987412077303187, + "厉": 6.673086736530251, + "妈": 15.06423535848145, + "健": 12.61271781713359, + "谟": 0.5318953230004335, + "淦": 0.10717890719106479, + "饿": 2.953818688482107, + "隶": 6.68188500503101, + "酷": 2.644279605773584, + "暑": 1.340536182479288, + "验": 26.11406075284384, + "嵩": 0.8662295260292775, + "凶": 4.611892379579698, + "挺": 5.234969757951635, + "斥": 2.588290624405117, + "澄": 1.2781484603829967, + "耀": 3.8160490015564936, + "执": 22.466778537983725, + "监": 23.771321803868997, + "遵": 4.473519611340488, + "竣": 0.585484776595966, + "爹": 8.10560481697202, + "肃": 5.550107738797005, + "苛": 0.6646691931027973, + "衍": 1.9636135608512244, + "拒": 4.923830990061156, + "李": 49.806997982796986, + "谨": 2.9074278182053774, + "胁": 4.157581787904141, + "颖": 1.3101421640221202, + "辅": 5.64448916453242, + "並": 0.00719858331880286, + "殆": 0.3407329437566687, + "狗": 7.106601420840379, + "丨": 0.04879039804966383, + "崇": 9.384553119945995, + "币": 12.7254956224615, + "嬛": 0.01439716663760572, + "杈": 1.1581720717362824, + "髻": 0.3039401845716763, + "鬟": 0.4127187769446973, + "丬": 0.0023995277729342867, + "沼": 1.5676914783170672, + "俄": 14.622722248261542, + "徽": 4.495115361296897, + "冀": 1.490106746992192, + "鄂": 16.289594207859892, + "皖": 1.6964661354645407, + "陕": 5.266163618999781, + "冓": 0.011197796273693337, + "凯": 4.807853814369333, + "剖": 1.5276993487681623, + "瘤": 3.113787206677726, + "宪": 11.680101356053129, + "侨": 3.189772252820645, + "促": 10.36516013648514, + "谣": 1.1389758495528082, + "轿": 3.2313640675515063, + "革": 49.172722808151356, + "鲟": 1.1069821459136842, + "叙": 3.692873242545867, + "乒": 0.7710482577028841, + "乓": 0.6822657301043155, + "参": 42.39165732183906, + "童": 11.037027912906739, + "蒙": 15.89207244014378, + "凰": 1.666072117007373, + "奥": 11.444947634305569, + "塑": 4.1903753341342425, + "崛": 0.7102602207885488, + "幼": 5.611695618302318, + "康": 17.442167381459328, + "癌": 3.563298742807415, + "煌": 2.761856466647364, + "残": 8.313563890626323, + "艇": 6.2587682744035975, + "编": 36.39283788950334, + "径": 11.89765854079917, + "哲": 5.977223682379308, + "蹈": 2.3459383193387544, + "舶": 1.6060839226840158, + "芯": 1.9076245794827578, + "卉": 0.5166983137718496, + "陶": 6.320356153908911, + "饲": 2.1923685418709598, + "驻": 12.11601556813619, + "坜": 0.011997638864671433, + "垦": 0.8974233870774231, + "璧": 1.5117024969486006, + "宇": 6.72427666235285, + "寮": 1.1237788403242241, + "韵": 2.3235427267913678, + "幔": 0.3239362493461287, + "幡": 0.32953514748297535, + "锓": 0.04559102768575144, + "颱": 0.031193861048145723, + "庶": 1.1117812014595527, + "庸": 3.308948798876381, + "盐": 8.763875269346991, + "悼": 0.7526518781103879, + "盲": 2.193968227052916, + "括": 21.19102960537366, + "晟": 0.2607486846588591, + "杏": 1.5460957283606587, + "欣": 3.4457218819336357, + "楫": 0.07278567577900669, + "砥": 0.7038614800607241, + "淋": 2.553897392993059, + "渎": 0.4535107490845801, + "渚": 0.35672979557623063, + "灶": 1.6004850245471691, + "炬": 1.7276599965126862, + "煤": 6.462728135103013, + "哇": 1.666871959598351, + "甸": 1.9636135608512244, + "玻": 3.205769104640207, + "纤": 4.979819971429622, + "纬": 3.4977116503472114, + "钞": 1.0701893867286918, + "缀": 0.9254178777616565, + "胚": 1.3157410621589671, + "膂": 0.12077623123769242, + "莹": 0.8014422761600517, + "葡": 3.0841930308115364, + "阮": 1.5308987191320749, + "靶": 0.7878449521134241, + "囊": 3.648881900042072, + "魁": 1.1749687661468224, + "魔": 5.643689321941442, + "龄": 6.972227865556058, + "懿": 0.8214383409345041, + "硕": 2.5067066801253515, + "峭": 0.8606306278924308, + "阯": 0.022395592547386673, + "硗": 0.04399134250379526, + "壤": 4.0823965843522, + "绰": 0.803841803932986, + "恺": 0.27594569388744294, + "靓": 0.12957449973845148, + "饰": 5.733271692130988, + "寄": 5.686880821854259, + "禄": 1.858834181433094, + "裕": 2.400327615525265, + "蔀": 0.004799055545868573, + "祭": 7.411341448003033, + "稔": 0.0903822127805248, + "翩": 0.4071198788078506, + "滦": 0.2583491568859248, + "璋": 2.5682945596306648, + "佐": 2.355536430430491, + "碑": 4.5111122131164585, + "隽": 0.22315608288288863, + "筋": 3.7544611220511803, + "胸": 8.638299982563431, + "腴": 0.0903822127805248, + "赡": 0.2799449068423334, + "邑": 0.8918244889405765, + "戚": 2.51150573567122, + "酶": 1.715662357648015, + "丳": 0.0175965370015181, + "赠": 1.858834181433094, + "羡": 0.9542122110368679, + "践": 5.3469477206885685, + "摹": 0.8174391279796137, + "抱": 9.444541314269353, + "朐": 0.05039008323162002, + "桂": 6.997822828467358, + "汾": 0.477506026813923, + "沂": 0.43831373985599636, + "沧": 1.3453352380251566, + "沭": 0.09838063869030575, + "洮": 0.1807644255610496, + "涧": 0.5230970544996745, + "淄": 0.3815249158965516, + "渭": 0.7846455817495117, + "渴": 2.0459973477219684, + "掘": 3.607290085311211, + "漳": 0.8750277945300365, + "潼": 0.6302759616907392, + "澧": 0.6822657301043155, + "猗": 0.07198583318802859, + "眺": 0.4679079157221859, + "翔": 1.6068837652749939, + "恐": 9.31416697193992, + "慑": 0.7022617948787678, + "铸": 2.9898116050761208, + "颍": 0.31433813825439155, + "丶": 0.031993703639123815, + "荔": 0.37112696221383634, + "旭": 2.101986329090435, + "霞": 2.2403590973296454, + "伴": 6.8834453379574905, + "啥": 3.2193664286868344, + "捐": 2.5826917262682705, + "悛": 0.03839244436694859, + "矣": 1.900425996163955, + "伥": 0.03359338882108001, + "傅": 5.267763304181737, + "虺": 0.037592601775970486, + "弗": 2.7274632352353056, + "摧": 1.4341177656237252, + "裘": 1.4485149322613309, + "蜮": 0.03839244436694859, + "疫": 2.7858517443767066, + "弓": 2.2227625603281274, + "叫": 50.014157213860315, + "婚": 12.832674529652564, + "宰": 2.5410999115374096, + "渠": 3.4929125948013433, + "持": 48.63682827219603, + "谲": 0.11037827755497717, + "栽": 2.2547562639672516, + "墩": 2.6002882632697886, + "祷": 0.736655026290826, + "穹": 0.3087392401175449, + "稣": 0.43191499912817155, + "茎": 1.7964464593368026, + "裁": 8.572712890103228, + "臆": 0.1967612773806115, + "廓": 0.7646495169750592, + "忆": 3.3649377802448477, + "跨": 5.446128201969852, + "缆": 0.9734084332203422, + "婴": 2.321143199018433, + "莎": 1.3133415343860328, + "藻": 3.5896935483096923, + "葩": 0.06318756468726955, + "浊": 0.9222185073977441, + "罕": 2.9450204199813474, + "哀": 2.6690747260939047, + "荐": 4.09919327876274, + "娴": 0.8766274797119927, + "洒": 1.9364189127579694, + "烛": 2.3043465046078935, + "宴": 3.3449417154703953, + "芜": 0.9662098499015394, + "乀": 0.001599685181956191, + "乂": 0.011197796273693337, + "曰": 8.868654648765123, + "蛮": 2.655477402047277, + "坂": 0.15996851819561908, + "慕": 4.434327324382561, + "蔺": 0.07998425909780954, + "牢": 4.525509379754064, + "旱": 2.945820262572326, + "暂": 5.46372473897137, + "浸": 1.986808995989589, + "炼": 5.507716081475166, + "瘀": 0.32793546230101916, + "盼": 2.6002882632697886, + "锻": 1.824440950021036, + "蛰": 0.1399724534211667, + "乇": 0.0903822127805248, + "仓": 3.1769747713649954, + "冢": 0.5822854062320535, + "塾": 0.24395199024831915, + "填": 4.538306861209714, + "膺": 0.3807250733055735, + "熙": 4.516711111253306, + "乊": 0.003999212954890477, + "刃": 3.1841733546837983, + "靡": 0.8422342482999347, + "他": 422.18571385151404, + "蛙": 0.9766078035842547, + "漠": 4.507912842752546, + "卢": 4.8830390179212735, + "咀": 1.2189601086506177, + "笃": 0.8254375538893945, + "孜": 0.7390545540637602, + "扎": 6.761069421537842, + "禾": 1.6700713299622634, + "巢": 1.8780304036165683, + "禅": 2.334740523065061, + "裙": 1.6292793578223805, + "弋": 0.1975611199715896, + "戎": 0.8286369242533069, + "曼": 5.753267756905442, + "朱": 18.266005250166767, + "杜": 6.664288468029492, + "枣": 1.9348192275760132, + "桓": 1.2581523956085443, + "桕": 0.2831442772062458, + "汁": 2.058794829177618, + "梢": 1.42371981194101, + "沈": 5.093397619348512, + "洽": 0.7126597485614832, + "浒": 0.29674160125287347, + "瘴": 0.2919425457070049, + "焉": 1.146974275462589, + "玛": 3.181773826910864, + "篷": 1.0989837200039032, + "羊": 8.149596159475815, + "耆": 0.5414934340921707, + "哩": 3.6904737147729327, + "蓝": 6.860249902819126, + "蚕": 1.5189010802674034, + "贾": 4.574299777803728, + "踆": 0.0023995277729342867, + "陇": 0.6398740727824763, + "鹄": 0.27274632352353056, + "鲳": 0.04079197213988287, + "鳢": 0.015197009228583814, + "鸦": 1.834039061112773, + "驹": 0.888625118576664, + "壳": 4.695875851632398, + "乍": 0.8046416465239641, + "噜": 0.4983019341793535, + "黎": 7.365750420317282, + "劝": 5.354146304007371, + "吧": 21.542960345404026, + "舅": 1.926020959075254, + "嗟": 0.3759260177597049, + "咄": 0.5047006749071783, + "悠": 4.084796112125134, + "励": 4.231967148865103, + "甫": 2.371533282250053, + "绍": 9.27737421275493, + "聆": 0.23755324952049436, + "淫": 1.5308987191320749, + "荒": 6.711479180897199, + "楸": 0.108778592373021, + "谱": 4.567101194484925, + "彪": 1.9668129312151368, + "桑": 3.9936140567536307, + "夯": 0.494302721224463, + "扮": 3.224165484232703, + "涅": 1.1589719143272603, + "夺": 11.952047836985681, + "醋": 1.1205794699603118, + "榛": 0.27834522166037723, + "灌": 4.546305287119495, + "乕": 0.00719858331880286, + "仔": 3.324945650695943, + "僻": 0.9990033961316412, + "谬": 0.9030222852142699, + "蜜": 2.2811510694695287, + "戾": 0.24075261988440674, + "乗": 0.051989768413576214, + "诈": 1.5484952561335927, + "幂": 0.159168675604641, + "晕": 2.6490786613194524, + "筏": 0.561489498866623, + "舆": 2.5906901521780514, + "隙": 2.0172030144467565, + "笠": 0.29354223088896103, + "伺": 0.955012053627846, + "巇": 0.00719858331880286, + "捣": 1.8036450426556054, + "舵": 1.7516552742420293, + "鸾": 0.40232082326198204, + "醚": 0.5918835173237906, + "肠": 6.462728135103013, + "苗": 7.516920670012142, + "螺": 2.310745245335718, + "铵": 0.20795907365430485, + "液": 10.221188470109082, + "乜": 0.06878646282411621, + "嘢": 0.00719858331880286, + "垓": 0.13197402751138576, + "埏": 0.006398740727824764, + "宵": 1.0445944238173928, + "嶷": 0.04159181473086097, + "蓄": 2.937821836662545, + "钹": 0.09278174055345909, + "菖": 0.04959024064064192, + "蒲": 1.785248663063109, + "熯": 0.011997638864671433, + "衢": 1.2013635716490993, + "葛": 2.839441197972239, + "阍": 0.04159181473086097, + "鲤": 0.8134399150247231, + "乞": 1.4845078488553454, + "怜": 2.9434207347993913, + "恕": 1.266150821518325, + "悯": 0.38632397144242014, + "骸": 0.8198386557525479, + "簿": 0.921418664806766, + "斋": 2.580292198495336, + "兀": 1.842037487022554, + "葱": 1.3181405899319014, + "钦": 3.163377447318368, + "谚": 0.31193861048145727, + "佬": 0.7294564429720231, + "们": 251.73205913076308, + "宦": 1.0909852940941223, + "绅": 1.0533926923181518, + "墅": 0.5071002026801125, + "鸽": 1.0317969423617432, + "乢": 0.004799055545868573, + "乥": 0.004799055545868573, + "释": 10.513930858407065, + "僮": 0.22635545324680104, + "琅": 0.7222578596532203, + "扉": 0.4511112213116458, + "摘": 2.44831817098395, + "札": 0.653471396829104, + "牍": 0.2543499439310344, + "咒": 1.1613714421001946, + "箧": 0.07598504614291908, + "背": 21.505367743628053, + "蠹": 0.17916474037909338, + "贩": 2.0875891624528293, + "钉": 2.5482984948562124, + "乩": 0.12077623123769242, + "乪": 0.031993703639123815, + "乬": 0.032793546230101916, + "乭": 0.003199370363912382, + "姻": 2.941021207026457, + "椟": 0.12237591641964861, + "爵": 2.53230164303665, + "犊": 0.24315214765734103, + "帛": 0.4935028786334849, + "鞋": 3.9568212975686383, + "垃": 1.189365932784428, + "圾": 1.1781681365107346, + "轰": 5.302156535593794, + "刺": 14.736299896180432, + "扑": 5.986021950880067, + "扒": 1.1421752199167203, + "挤": 3.8272467978301874, + "搞": 8.947039222680976, + "鸳": 0.761450146611147, + "鸯": 0.7350553411088697, + "瞎": 3.9616203531145073, + "琼": 1.4317182378507909, + "砍": 3.5273058262134014, + "渐": 16.918270484368676, + "骂": 7.984828585734327, + "锯": 0.8022421187510298, + "垢": 0.5007014619522878, + "粉": 10.489135738086745, + "瑶": 3.0450007438536097, + "滞": 1.9332195423940568, + "糖": 7.972830946869656, + "糜": 0.435114369492084, + "罩": 2.461915495030578, + "腐": 6.519516959062456, + "腺": 3.4489212522975476, + "啸": 1.6372777837321615, + "酪": 0.27194648093255247, + "钙": 1.6116828208208624, + "钵": 0.49670224899739723, + "乴": 0.005598898136846668, + "乵": 0.0023995277729342867, + "乸": 0.003999212954890477, + "乹": 0.001599685181956191, + "乺": 0.022395592547386673, + "乻": 0.001599685181956191, + "俐": 0.3151379808453696, + "咳": 1.9716119867610051, + "肤": 3.8616400292422455, + "燥": 1.875630875843634, + "爸": 5.528511988840596, + "瘪": 0.19036253665278674, + "癣": 0.13917261083018861, + "瞪": 2.150776727140099, + "脆": 2.574693300358489, + "闼": 0.05678882395944478, + "馏": 0.47190712867707635, + "亀": 0.003199370363912382, + "亂": 0.004799055545868573, + "亃": 0.0703861480060724, + "暧": 0.17596537001518103, + "携": 3.5824949649908895, + "诿": 0.15356977746779435, + "妍": 0.2311545087926696, + "夸": 3.085792715993492, + "讼": 1.9612140330782903, + "亊": 0.007998425909780954, + "躬": 1.6468758948238986, + "肘": 0.8358355075721098, + "卵": 4.331147630146387, + "萧": 2.5738934577675114, + "檎": 0.013597324046627625, + "竟": 23.47378036002515, + "槃": 0.18236411074300576, + "婶": 1.893227412845152, + "巯": 0.037592601775970486, + "愣": 1.7588538575608321, + "污": 5.64848837748731, + "吡": 0.22395592547386675, + "啶": 0.2151576569731077, + "尿": 3.775257029416611, + "苷": 0.510299573044025, + "硒": 0.1447715089670353, + "钛": 0.8006424335690736, + "锆": 0.13837276823921052, + "锰": 1.0589915904549985, + "砜": 0.05118992582259811, + "橙": 0.9022224426232917, + "硝": 1.5852880153185853, + "虐": 0.7318559707449575, + "笼": 3.7128693073203194, + "泳": 1.7356584224224672, + "缶": 0.07838457391585336, + "羧": 0.21835702733702006, + "踢": 2.8314427720624584, + "亍": 0.14957056451290388, + "虢": 0.10637906460008671, + "畿": 0.3231364067551506, + "冥": 0.9454139425361089, + "哉": 0.8622303130743869, + "聪": 3.054598854945347, + "椒": 3.4185272338403805, + "狄": 1.2429553863799603, + "姚": 2.6170849576803286, + "孟": 4.024008075210799, + "岷": 0.25994884206788105, + "巅": 0.35832948075818677, + "祯": 3.1369826418160907, + "弼": 1.05419253490913, + "虏": 1.8484362277503785, + "彝": 1.105382460731728, + "禧": 2.8434404109271294, + "敖": 0.2639480550227715, + "靖": 4.179177537860549, + "昭": 2.610686216952504, + "晨": 4.008811065982215, + "嫩": 3.5712971687171966, + "柔": 4.979819971429622, + "殇": 0.051989768413576214, + "殷": 3.7400639554135746, + "汴": 0.5742869803222727, + "沣": 0.1407722960121448, + "沪": 2.4675143931674244, + "璞": 0.22235624029191056, + "泓": 0.10797874978204289, + "琛": 0.9662098499015394, + "晏": 0.427115943582303, + "淳": 1.5356977746779434, + "澎": 0.4879039804966383, + "濠": 0.29354223088896103, + "濡": 0.5702877673673822, + "浣": 2.0459973477219684, + "炀": 0.2463515180212534, + "琢": 1.0669900163647794, + "祁": 1.0949845070490127, + "庚": 0.6734674616035564, + "阔": 6.38354371859618, + "婷": 0.5550907581387983, + "芷": 1.2949451547935364, + "蔚": 0.46870775831316397, + "苻": 0.2663475827957058, + "茜": 0.18716316628887433, + "荥": 0.15197009228583816, + "荫": 1.2229593216055081, + "霖": 2.5339013282186067, + "葭": 0.07118599059705051, + "襄": 16.5559417906556, + "奢": 1.3869270527560178, + "邺": 0.3951222399431792, + "昂": 3.20017020650336, + "墉": 0.04079197213988287, + "滕": 0.5047006749071783, + "镝": 0.025594962911299056, + "阗": 0.09198189796248098, + "瑜": 2.3747326526139654, + "亏": 4.441525907701364, + "秤": 0.48870382308761634, + "耗": 4.175978167496637, + "窟": 2.187569486325091, + "傣": 0.7766471558397308, + "颇": 5.150986285898935, + "铜": 9.249379722070698, + "吞": 3.501710863302102, + "堦": 0.0023995277729342867, + "骤": 1.8228412648390797, + "尤": 9.930845609584033, + "殢": 0.05838850914140097, + "蚁": 1.1293777384610708, + "飙": 0.2327541939746258, + "岫": 0.16636725892344387, + "镖": 1.6788695984630226, + "惨": 5.0646032860733, + "拂": 1.57489006163587, + "暮": 1.4221201267590537, + "氤": 0.07918441650683146, + "氲": 0.18796300887985246, + "霭": 0.17436568483322482, + "篦": 0.06158787950531335, + "纹": 4.4439254354742985, + "绕": 6.965029282237255, + "翳": 0.05838850914140097, + "骧": 0.07918441650683146, + "鹜": 0.09678095350834955, + "赴": 5.356545831780306, + "翅": 2.540300068946431, + "铮": 0.938215359217306, + "锣": 1.221359636423552, + "雁": 1.8532352832962473, + "巫": 1.1437749050986765, + "霓": 0.40152098067100395, + "漫": 5.408535600193882, + "享": 9.309367916394054, + "谅": 2.0204023848106694, + "剥": 3.6792759184992394, + "勉": 1.8084440982014738, + "赢": 3.836045066330946, + "殴": 0.4095194065807849, + "磋": 0.8166392853886355, + "祝": 5.4565261556525675, + "亓": 0.06078803691433526, + "崩": 2.0963874309535884, + "焚": 1.8692321351158092, + "卅": 0.2527502587490782, + "斓": 0.34873136966644963, + "呈": 9.227783972114288, + "披": 4.161581000859031, + "梏": 0.06238772209629145, + "棓": 0.020795907365430483, + "榖": 0.04399134250379526, + "樂": 0.004799055545868573, + "崾": 0.06478724986922574, + "钒": 0.40232082326198204, + "鹢": 0.007998425909780954, + "羖": 0.0023995277729342867, + "脏": 4.6878774257226175, + "腑": 1.0525928497271735, + "绑": 1.6924669225096503, + "苓": 0.4239165732183906, + "厦": 2.270753115786813, + "械": 9.187791842565384, + "虾": 1.959614347896334, + "蟆": 0.43751389726501827, + "蛤": 0.46950760090414206, + "犴": 0.037592601775970486, + "渫": 0.021595749956408578, + "醯": 0.0887825275985686, + "陉": 0.08958237018954669, + "亖": 0.003199370363912382, + "亗": 0.001599685181956191, + "宙": 2.645079448364562, + "兑": 2.849039309063976, + "彭": 3.4289251875230953, + "瑟": 1.374129571300368, + "裔": 1.1605715995092165, + "钾": 1.2581523956085443, + "亜": 0.015996851819561907, + "亝": 0.004799055545868573, + "亞": 0.010397953682715242, + "亟": 0.3375335733927563, + "佚": 0.477506026813923, + "猿": 0.9238181925797003, + "奋": 7.911243067364343, + "憍": 0.007998425909780954, + "亣": 0.05998819432335716, + "轭": 0.17996458297007148, + "耦": 0.18476363851594005, + "媾": 0.15836883301366292, + "瘁": 0.13037434232942954, + "缠": 2.953818688482107, + "凝": 5.3805411095096485, + "迫": 10.106011137008236, + "壕": 0.6406739153734544, + "颈": 3.4121284931125557, + "洄": 0.32873530489199726, + "描": 5.660486016351982, + "纠": 3.724866946184991, + "羔": 0.2655477402047277, + "茧": 0.5071002026801125, + "褥": 0.40312066585296014, + "帚": 0.376725860350683, + "叭": 0.7558512484743003, + "瓷": 2.738661031508999, + "榭": 0.33113483266493154, + "亯": 0.5342948507733678, + "亰": 0.013597324046627625, + "亱": 0.0183963795924962, + "吻": 3.0897919289483826, + "鉴": 4.435927009564518, + "昵": 0.23595356433853817, + "疏": 4.7542643607738, + "叛": 3.4713168448449343, + "亳": 0.1271749719655172, + "亴": 0.06878646282411621, + "亵": 0.2831442772062458, + "亶": 0.06318756468726955, + "亷": 0.00719858331880286, + "亸": 0.34473215671155916, + "亹": 0.055189138777488586, + "狮": 3.823247584875297, + "骐": 0.02479512032032096, + "骥": 0.18396379592496195, + "俎": 0.09998032387226194, + "炸": 7.396944281365427, + "削": 4.495915203887875, + "稠": 0.7246573874261545, + "嘶": 0.8350356649811317, + "嘈": 0.34233262893862487, + "沸": 1.7468562186961605, + "畜": 3.9376250753851645, + "妖": 4.028807130756667, + "寰": 1.72606031133073, + "孵": 0.6358748598275858, + "拟": 5.326151813323138, + "憧": 0.23755324952049436, + "叵": 0.2111584440182172, + "惶": 1.650875107778789, + "涣": 0.3047400271626544, + "偎": 0.30314034198069817, + "恟": 0.004799055545868573, + "汹": 0.8790270074849269, + "涵": 2.406726356253089, + "荟": 0.21835702733702006, + "萃": 0.48470461013272587, + "疯": 3.301750215557578, + "魅": 1.0749884422745604, + "卬": 0.02719464809325525, + "渣": 0.8030419613420079, + "溺": 0.4823050823597916, + "啧": 0.36872743444090206, + "臧": 0.23515372174756008, + "亻": 0.012797481455649528, + "刂": 0.16876678669637815, + "亽": 0.0023995277729342867, + "亾": 0.4055201936258944, + "俩": 3.618487881584904, + "邡": 0.0183963795924962, + "炒": 5.8948398955085635, + "锉": 0.13437355528432005, + "羌": 0.9742082758113203, + "寡": 5.968425413878549, + "溥": 0.3551301103942744, + "仃": 0.1247754441925829, + "仄": 0.16716710151442196, + "佣": 2.0491967180858808, + "鳌": 0.9982035535406631, + "岂": 4.9590240640641925, + "萌": 0.9158197666699194, + "芽": 1.6140823485937967, + "仈": 0.02879433327521144, + "仉": 0.031993703639123815, + "昨": 7.179387096619385, + "蝉": 0.7462531373825632, + "蜕": 0.34633184189351535, + "胄": 0.326335777119063, + "仌": 0.001599685181956191, + "梗": 1.0054021368594661, + "彰": 0.8942240167135108, + "毓": 0.519097841544784, + "潇": 1.1253785255061806, + "瑷": 0.12157607382867051, + "珲": 0.12157607382867051, + "鸥": 0.26234836984081533, + "茵": 0.6038811561884622, + "这": 460.31421016343984, + "仐": 0.019196222183474294, + "廪": 0.10797874978204289, + "猝": 0.3071395549355887, + "颉": 0.18716316628887433, + "凌": 4.162380843450009, + "煦": 0.29754144384385156, + "灿": 1.4349176082147035, + "笛": 1.475709580354586, + "侣": 0.8254375538893945, + "仛": 0.1231757590106267, + "仜": 0.005598898136846668, + "仝": 0.03359338882108001, + "仟": 0.02319543513836477, + "仠": 0.0183963795924962, + "仡": 0.36312853630405534, + "庖": 0.21435781438212959, + "拆": 4.188775648952286, + "闭": 12.45594866930188, + "朕": 1.9660130886241587, + "锌": 1.5476954135426149, + "烃": 0.5342948507733678, + "侑": 0.0903822127805248, + "赭": 0.09678095350834955, + "呕": 0.9598111091737146, + "咋": 1.3253391732507043, + "悸": 0.3391332585747125, + "怖": 1.942817653485794, + "恼": 3.318546909968118, + "骇": 1.482108321082411, + "捧": 3.1369826418160907, + "眩": 0.5750868229132508, + "慰": 3.5457022058058976, + "瞠": 0.16556741633246577, + "窒": 0.544692804456083, + "媛": 0.37112696221383634, + "嫒": 0.02719464809325525, + "吓": 4.907034295650616, + "嘻": 1.8324393759308168, + "躺": 3.0529991697633907, + "甥": 0.3551301103942744, + "郞": 0.006398740727824764, + "儆": 0.09118205537150288, + "赎": 0.7486526651554973, + "拙": 0.7374548688818041, + "奸": 4.387936454105832, + "飡": 0.019196222183474294, + "赈": 0.3951222399431792, + "沫": 1.4173210712131854, + "蛾": 0.6742673041945345, + "狸": 0.6718677764216002, + "饵": 0.8326361372081974, + "诋": 0.08718284241661241, + "碫": 0.0023995277729342867, + "筌": 0.007998425909780954, + "筦": 0.0367927591849924, + "驭": 0.38312460107850776, + "啖": 0.053589453595532396, + "喂": 2.118783023500975, + "餧": 0.0023995277729342867, + "莛": 0.012797481455649528, + "蚓": 0.39992129548904776, + "螳": 0.10637906460008671, + "蠡": 0.8774273223029707, + "瑱": 0.004799055545868573, + "貍": 0.009598111091737147, + "殉": 0.8574312575285183, + "郄": 0.0183963795924962, + "镒": 0.05598898136846669, + "飨": 0.1247754441925829, + "仨": 0.07518520355194097, + "菁": 0.1263751293745391, + "仫": 0.05039008323162002, + "仮": 0.025594962911299056, + "仯": 0.00879826850075905, + "弥": 3.7072704091834727, + "俛": 0.009598111091737147, + "睫": 0.477506026813923, + "窃": 1.6228806170945558, + "脖": 1.9684126163970932, + "唾": 0.7830458965675555, + "韶": 0.37752570294166105, + "吟": 3.1857730398657544, + "仱": 0.003199370363912382, + "忒": 0.5262964248635867, + "仳": 0.0023995277729342867, + "仴": 0.02719464809325525, + "仵": 0.031193861048145723, + "仺": 0.043191499912817156, + "佥": 0.16636725892344387, + "挚": 0.6022814710065059, + "萱": 0.3511308974393839, + "惕": 0.9830065443120793, + "忻": 0.15836883301366292, + "芬": 2.6658753557299923, + "浚": 0.6350750172366078, + "淞": 0.5206975267267402, + "锷": 0.08638299982563431, + "斌": 1.7588538575608321, + "贺": 4.48951646316005, + "仼": 0.011997638864671433, + "仾": 0.003199370363912382, + "仿": 5.5101156092481, + "徨": 0.17436568483322482, + "瑙": 1.1829671920566034, + "膳": 1.2541531826536538, + "伀": 0.09278174055345909, + "鹅": 2.9026287626595084, + "伃": 0.0527896110045543, + "伄": 0.0183963795924962, + "伅": 0.03039401845716763, + "伆": 0.043191499912817156, + "伈": 0.00719858331880286, + "睍": 0.02719464809325525, + "鹉": 0.21035860142723914, + "伉": 0.05039008323162002, + "俪": 0.18636332369789624, + "鸠": 0.8030419613420079, + "茨": 1.8972266258000425, + "庇": 1.0437945812264147, + "琳": 1.5684913209080453, + "绶": 0.3239362493461287, + "姬": 0.6478724986922574, + "伋": 0.004799055545868573, + "贡": 8.108804187335933, + "薇": 1.0269978868158747, + "焱": 0.0527896110045543, + "娟": 1.146974275462589, + "珀": 0.4759063416319668, + "伎": 0.3815249158965516, + "蒿": 1.0413950534534804, + "侍": 6.607499644070047, + "黛": 0.6294761190997612, + "铿": 0.4055201936258944, + "腊": 5.22457180426892, + "汛": 0.9654100073105614, + "炽": 0.5510915451839078, + "磐": 0.4127187769446973, + "娲": 0.45431059167555826, + "咶": 0.003999212954890477, + "麒": 0.3903231843973106, + "雏": 0.5182979989538059, + "髓": 1.3757292564823242, + "憩": 0.2671474253866839, + "伒": 0.032793546230101916, + "伓": 0.04879039804966383, + "伔": 0.02479512032032096, + "伕": 0.06878646282411621, + "伖": 0.004799055545868573, + "焰": 1.850035912932335, + "嗷": 0.2503507309761439, + "烁": 0.7942436928412488, + "纭": 0.33033499007395345, + "铄": 0.09838063869030575, + "喣": 0.00719858331880286, + "漂": 3.0114073550325298, + "攸": 0.5830852488230316, + "揉": 0.9790073313571889, + "伶": 0.6662688782847536, + "弧": 1.465311626671871, + "渥": 0.27514585129646485, + "絮": 0.9430144147631746, + "汰": 1.079787497820429, + "飏": 0.032793546230101916, + "剿": 1.8188420518841892, + "伛": 0.012797481455649528, + "偻": 0.18556348110691817, + "伝": 0.012797481455649528, + "伞": 2.077991051361092, + "柄": 3.239362493461287, + "帜": 1.7100634595111681, + "幻": 2.9522190033001503, + "檄": 0.2791450642513553, + "绯": 0.34473215671155916, + "诵": 1.455713515580134, + "颂": 1.7132628298750807, + "搧": 0.10078016646324003, + "伡": 0.013597324046627625, + "伢": 0.0183963795924962, + "伣": 0.009598111091737147, + "俘": 4.2663603802771615, + "疤": 0.5318953230004335, + "肺": 2.8762339571572313, + "肾": 2.9162260867061365, + "勃": 3.1025894104040326, + "楹": 0.43191499912817155, + "伧": 0.02879433327521144, + "伨": 0.001599685181956191, + "伩": 0.021595749956408578, + "伫": 0.13277387010236386, + "伬": 0.012797481455649528, + "杖": 3.456919678207329, + "篪": 0.0903822127805248, + "禹": 1.1253785255061806, + "郑": 6.543512236791799, + "猛": 9.023024268823894, + "伱": 0.003199370363912382, + "伲": 0.04799055545868573, + "伷": 0.001599685181956191, + "懒": 1.5892872282734758, + "伹": 0.001599685181956191, + "瑕": 0.9566117388098022, + "蠙": 0.0183963795924962, + "伻": 0.0023995277729342867, + "伾": 0.007998425909780954, + "佀": 0.003999212954890477, + "鹃": 1.4749097377636082, + "瑛": 0.4911033508605507, + "佇": 0.006398740727824764, + "佉": 0.013597324046627625, + "熔": 1.9452171812587282, + "凹": 1.1309774236430272, + "哑": 1.9220217461203635, + "斟": 1.014200405360225, + "酌": 0.695063211559965, + "悄": 5.334150239232919, + "徊": 0.661469822738885, + "洼": 0.9998032387226194, + "浓": 6.869048171319885, + "泵": 1.030197257179787, + "肪": 1.4709105248087178, + "辐": 3.2201662712778125, + "饔": 0.22875498101973532, + "诱": 2.8002489110143127, + "胀": 2.9154262441151584, + "膨": 2.1667735789596607, + "虱": 0.3063397123446106, + "佔": 0.003999212954890477, + "暐": 0.05039008323162002, + "铧": 0.06238772209629145, + "兮": 0.6318756468726955, + "晔": 0.2647478976137496, + "椿": 0.5286959526365211, + "沅": 0.8790270074849269, + "涞": 0.24795120320320962, + "凼": 0.0703861480060724, + "涟": 0.4479118509477335, + "濂": 1.1077819885046623, + "炳": 1.4141217008492728, + "棠": 0.7918441650683146, + "祚": 0.32873530489199726, + "庥": 0.05838850914140097, + "涛": 1.9532156071685094, + "淇": 0.4679079157221859, + "钿": 0.07998425909780954, + "衲": 0.418317675081544, + "蛟": 0.6342751746456298, + "佖": 0.001599685181956191, + "佗": 0.108778592373021, + "佘": 0.0703861480060724, + "卓": 2.553097550402081, + "孽": 0.8342358223901536, + "镭": 0.10797874978204289, + "皱": 2.56189581890284, + "漾": 0.29354223088896103, + "熄": 0.736655026290826, + "烬": 0.217557184746042, + "燃": 5.242168341270438, + "腥": 1.4501146174432873, + "秽": 0.5846849340049879, + "嫋": 0.023995277729342866, + "缭": 0.4239165732183906, + "赘": 0.41911751767252203, + "柑": 0.7438536096096288, + "诞": 2.8234443461526775, + "陀": 2.7922504851045313, + "龛": 0.2607486846588591, + "俑": 0.39832161030709157, + "裳": 0.6854651004682278, + "揖": 0.9142200814879632, + "祟": 0.5366943785463021, + "缚": 1.7652525982886569, + "赔": 2.8026484387872466, + "佝": 0.1575689904226848, + "瘘": 0.09198189796248098, + "佟": 0.4823050823597916, + "赶": 16.07603623606874, + "佡": 0.003199370363912382, + "佼": 0.2527502587490782, + "佤": 0.11277780532791146, + "佮": 0.0023995277729342867, + "佯": 0.32873530489199726, + "嗔": 0.6022814710065059, + "佰": 0.02319543513836477, + "佲": 0.04639087027672954, + "肴": 2.3123449305176744, + "馐": 0.27354616611450866, + "酿": 1.5516946264975053, + "併": 0.07598504614291908, + "聱": 0.023995277729342866, + "佷": 0.5214973693177182, + "佸": 2.081990264315982, + "佹": 0.7326558133359355, + "僪": 0.0023995277729342867, + "佺": 0.4495115361296897, + "佻": 0.04399134250379526, + "镞": 0.3007408142077639, + "佽": 0.38392444366948586, + "佾": 0.00719858331880286, + "倖": 0.02479512032032096, + "掼": 0.10397953682715243, + "谤": 0.2527502587490782, + "侀": 0.22955482361071342, + "侁": 0.006398740727824764, + "侂": 0.02319543513836477, + "侃": 0.5238968970906526, + "訚": 0.004799055545868573, + "谔": 0.12237591641964861, + "媳": 2.386730291478637, + "來": 0.0175965370015181, + "侈": 0.7270569151990889, + "闳": 0.18236411074300576, + "侉": 0.0175965370015181, + "侊": 0.1775650551971372, + "侌": 0.001599685181956191, + "舜": 0.7726479428848403, + "樊": 1.7716513390164814, + "熊": 5.113393684122965, + "琬": 0.019196222183474294, + "侎": 0.023995277729342866, + "侏": 0.24795120320320962, + "侒": 0.015197009228583814, + "侓": 0.001599685181956191, + "侔": 0.035992916594014296, + "侚": 0.003199370363912382, + "侜": 0.004799055545868573, + "丱": 0.0023995277729342867, + "葫": 1.0062019794504442, + "缔": 1.8396379592496197, + "砲": 0.02719464809325525, + "逮": 1.6068837652749939, + "価": 0.001599685181956191, + "侤": 0.004799055545868573, + "侥": 0.5926833599147687, + "缉": 0.920618822215788, + "舷": 0.33033499007395345, + "侩": 0.03839244436694859, + "侪": 0.05598898136846669, + "侬": 0.07998425909780954, + "侭": 0.004799055545868573, + "侮": 1.2405558586070262, + "蔑": 0.6510718690561698, + "猥": 0.13277387010236386, + "岑": 0.3871238140333982, + "某": 18.55874763846475, + "瑾": 0.41911751767252203, + "忱": 0.34873136966644963, + "埒": 0.02639480550227715, + "薛": 1.7492557464690948, + "冉": 0.6942633689689869, + "侲": 0.0023995277729342867, + "侳": 0.003199370363912382, + "侶": 0.001599685181956191, + "侷": 0.0023995277729342867, + "侸": 0.0023995277729342867, + "侹": 0.0023995277729342867, + "秘": 15.51374689461114, + "笺": 0.5126991008169592, + "係": 0.003999212954890477, + "狭": 2.804248123969203, + "膝": 1.8044448852465833, + "焼": 0.013597324046627625, + "俅": 0.24235230506636293, + "俇": 0.007998425909780954, + "俉": 0.005598898136846668, + "俏": 0.761450146611147, + "悍": 0.963010479537627, + "俌": 0.4071198788078506, + "俍": 0.003999212954890477, + "樽": 0.0887825275985686, + "俓": 0.001599685181956191, + "俔": 0.24075261988440674, + "俕": 0.001599685181956191, + "琐": 1.0685897015467356, + "谛": 0.44871169353871154, + "俚": 0.23915293470245055, + "俜": 0.032793546230101916, + "墒": 0.16556741633246577, + "谍": 0.560689656275645, + "钻": 4.535907333436779, + "棚": 2.41072556920798, + "溼": 0.07918441650683146, + "翊": 1.1413753773257422, + "秣": 0.1263751293745391, + "募": 1.700465348419431, + "猷": 0.22315608288288863, + "岱": 1.2149608956957272, + "燮": 0.07918441650683146, + "豚": 1.1797678216926908, + "冗": 0.24475183283929722, + "熵": 0.17276599965126863, + "拈": 1.0261980442248966, + "诃": 0.27594569388744294, + "邸": 0.5758866655042287, + "缰": 0.5398937489102145, + "俢": 0.009598111091737147, + "俣": 0.13517339787529814, + "俤": 0.003999212954890477, + "俥": 0.005598898136846668, + "俧": 0.015197009228583814, + "俨": 0.34713168448449344, + "俬": 0.003999212954890477, + "朴": 2.8154459202428965, + "堤": 3.988015158616784, + "撰": 2.3603354859763597, + "漪": 0.3559299529852525, + "纂": 0.6550710820110601, + "缮": 1.2205597938325736, + "葺": 0.393522554761223, + "砺": 0.25914899947690295, + "癖": 0.22955482361071342, + "瞰": 0.6806660449223593, + "弭": 0.0903822127805248, + "戢": 0.04399134250379526, + "孺": 0.40871956398980686, + "俰": 0.010397953682715242, + "俳": 0.09678095350834955, + "俵": 0.00719858331880286, + "俶": 0.04639087027672954, + "褖": 0.0023995277729342867, + "俺": 2.413125096980914, + "俻": 0.001599685181956191, + "俽": 0.003199370363912382, + "俾": 0.3375335733927563, + "挹": 0.044791185094773346, + "倀": 0.001599685181956191, + "倁": 0.001599685181956191, + "倅": 0.003999212954890477, + "倈": 0.001599685181956191, + "倉": 0.00719858331880286, + "個": 0.010397953682715242, + "倌": 0.13357371269334195, + "睐": 0.585484776595966, + "倏": 0.5990821006425936, + "倐": 0.021595749956408578, + "們": 0.025594962911299056, + "蔗": 0.9526125258549117, + "嗓": 1.322139802886792, + "嚼": 1.0925849792760784, + "坍": 0.29754144384385156, + "屣": 0.0351930740030362, + "囷": 0.11917654605573623, + "耙": 0.6758669893764907, + "楣": 0.18956269406180865, + "淌": 0.544692804456083, + "焊": 0.5846849340049879, + "绷": 0.644673128328345, + "闸": 1.6604732188705262, + "倓": 0.06798662023313812, + "倔": 0.38552412885144205, + "倨": 0.0887825275985686, + "傲": 1.8796300887985244, + "犟": 0.13597324046627624, + "倕": 0.003199370363912382, + "倗": 0.021595749956408578, + "倘": 5.494118757428538, + "挟": 0.988605442448926, + "倛": 0.02319543513836477, + "倜": 0.12557528678356097, + "傥": 0.07918441650683146, + "倝": 0.055189138777488586, + "倞": 0.09838063869030575, + "讽": 1.2749490900190843, + "抒": 0.9710089054474079, + "倠": 0.00719858331880286, + "倢": 0.009598111091737147, + "倣": 0.004799055545868573, + "倥": 0.04639087027672954, + "偬": 0.04799055545868573, + "怠": 0.9310167758985032, + "倧": 0.012797481455649528, + "倩": 0.21835702733702006, + "璐": 0.5694879247764041, + "徵": 0.18956269406180865, + "燠": 0.02319543513836477, + "焕": 1.9220217461203635, + "贻": 0.5406935915011926, + "倬": 0.04079197213988287, + "倭": 0.7486526651554973, + "寇": 1.3501342935710252, + "倮": 0.009598111091737147, + "倰": 0.001599685181956191, + "倱": 0.001599685181956191, + "倲": 0.00879826850075905, + "倴": 0.0023995277729342867, + "倵": 0.001599685181956191, + "倹": 0.00719858331880286, + "倻": 0.007998425909780954, + "倽": 0.005598898136846668, + "沥": 0.5598898136846668, + "轧": 0.7174588041073517, + "颓": 0.5310954804094554, + "偀": 0.007998425909780954, + "偁": 0.031993703639123815, + "偂": 0.037592601775970486, + "櫜": 0.011997638864671433, + "觌": 0.022395592547386673, + "偄": 0.004799055545868573, + "偅": 0.7382547114727822, + "偆": 0.005598898136846668, + "哭": 10.044423257502924, + "惺": 0.6326754894636736, + "押": 2.988211919894165, + "摔": 2.9098273459783113, + "癫": 0.4327148417191497, + "缎": 0.8654296834382994, + "偈": 0.14557135155801337, + "偉": 0.007998425909780954, + "偊": 0.0023995277729342867, + "偌": 0.2695469531596182, + "偍": 0.007998425909780954, + "慵": 0.11037827755497717, + "肼": 0.05758866655042288, + "瘫": 0.7910443224773365, + "窄": 2.2235624029191055, + "胖": 6.39634120005183, + "袒": 0.3207368789822163, + "偐": 0.0175965370015181, + "偑": 0.006398740727824764, + "偒": 0.003199370363912382, + "偓": 0.027994490684233344, + "偔": 0.004799055545868573, + "偖": 0.031193861048145723, + "偗": 0.015996851819561907, + "偘": 0.001599685181956191, + "偙": 0.0023995277729342867, + "偛": 0.031993703639123815, + "匀": 1.7876481908360435, + "娶": 2.3307413101101706, + "歇": 4.0224083900288425, + "贮": 1.288546414065712, + "驶": 3.264957456372586, + "偞": 0.001599685181956191, + "偣": 0.16636725892344387, + "偤": 0.00879826850075905, + "偦": 0.020795907365430483, + "偧": 0.00719858331880286, + "偩": 0.011197796273693337, + "偪": 0.007998425909780954, + "偫": 0.004799055545868573, + "偭": 0.006398740727824764, + "偮": 0.0023995277729342867, + "偯": 0.007998425909780954, + "偱": 0.001599685181956191, + "偲": 0.005598898136846668, + "側": 0.001599685181956191, + "耍": 1.6596733762795484, + "搬": 3.879236566243763, + "樑": 0.003999212954890477, + "偺": 0.0023995277729342867, + "偼": 0.007998425909780954, + "偾": 0.019196222183474294, + "傀": 0.4879039804966383, + "儡": 0.47510649904098873, + "傃": 0.003199370363912382, + "傄": 0.001599685181956191, + "悌": 0.0543892961865105, + "泛": 9.198189796248098, + "璇": 2.0308003384933846, + "琮": 0.09598111091737146, + "繇": 0.09678095350834955, + "傇": 0.001599685181956191, + "傈": 0.11117812014595528, + "僳": 0.10717890719106479, + "傉": 0.019996064774452385, + "偟": 0.0023995277729342867, + "傐": 0.001599685181956191, + "傑": 0.0023995277729342867, + "傒": 0.021595749956408578, + "傕": 0.11837670346475813, + "傗": 0.9334163036714375, + "傘": 0.035992916594014296, + "備": 1.0437945812264147, + "傚": 1.3789286268462366, + "傛": 1.0821870255933632, + "傜": 0.3911230269882887, + "傝": 0.6638693505118193, + "傞": 0.3087392401175449, + "傢": 0.006398740727824764, + "傤": 0.001599685181956191, + "傦": 0.09518126832639337, + "傧": 0.02719464809325525, + "傩": 0.09838063869030575, + "傪": 0.001599685181956191, + "傫": 0.0023995277729342867, + "涎": 0.37752570294166105, + "傭": 0.0023995277729342867, + "屹": 0.18716316628887433, + "睨": 0.16716710151442196, + "嶙": 0.14957056451290388, + "峋": 0.1247754441925829, + "債": 0.001599685181956191, + "傺": 0.00719858331880286, + "傻": 3.222565799050747, + "唧": 0.7126597485614832, + "叽": 0.47190712867707635, + "屄": 0.011997638864671433, + "憨": 0.4215170454454563, + "傽": 0.0023995277729342867, + "僄": 0.004799055545868573, + "僅": 0.001599685181956191, + "僆": 0.007998425909780954, + "僇": 0.015996851819561907, + "僈": 0.007998425909780954, + "僌": 0.0023995277729342867, + "僑": 0.003199370363912382, + "僓": 0.007998425909780954, + "僖": 0.08158394427976574, + "僗": 0.020795907365430483, + "僘": 0.001599685181956191, + "僚": 2.1299808197746684, + "僛": 0.035992916594014296, + "僜": 0.005598898136846668, + "僝": 0.00719858331880286, + "僡": 0.004799055545868573, + "僢": 0.0023995277729342867, + "僥": 0.003999212954890477, + "僦": 0.027994490684233344, + "袍": 3.0274042068520917, + "僬": 0.010397953682715242, + "僭": 3.3025500581485563, + "僰": 0.02479512032032096, + "僵": 2.033199866266319, + "價": 0.00879826850075905, + "僺": 0.001599685181956191, + "僼": 0.006398740727824764, + "僽": 0.00719858331880286, + "儁": 0.0527896110045543, + "儂": 0.0023995277729342867, + "億": 0.001599685181956191, + "儇": 0.005598898136846668, + "儉": 0.02479512032032096, + "儊": 0.011197796273693337, + "儋": 0.08078410168878765, + "儌": 0.015996851819561907, + "儍": 0.001599685181956191, + "儎": 0.032793546230101916, + "儏": 0.29034286052504865, + "儐": 0.03039401845716763, + "墨": 6.881045810184555, + "艮": 0.2311545087926696, + "儓": 0.02719464809325525, + "儔": 0.001599685181956191, + "儕": 0.05758866655042288, + "儗": 0.051989768413576214, + "儙": 0.006398740727824764, + "儚": 0.16476757374148768, + "儜": 0.027994490684233344, + "儠": 0.003999212954890477, + "儢": 0.001599685181956191, + "儣": 0.0023995277729342867, + "儤": 0.003199370363912382, + "儦": 0.003999212954890477, + "儧": 0.001599685181956191, + "儨": 0.03839244436694859, + "優": 0.003199370363912382, + "儫": 0.05678882395944478, + "儭": 0.022395592547386673, + "儰": 0.004799055545868573, + "儲": 0.0175965370015181, + "儳": 0.031993703639123815, + "儴": 0.37512617516872676, + "儵": 0.003199370363912382, + "儷": 0.011997638864671433, + "儸": 0.001599685181956191, + "儹": 0.06238772209629145, + "儻": 0.01439716663760572, + "哮": 0.5678882395944478, + "喘": 2.1403787734573836, + "鹫": 0.18876285147083052, + "祀": 2.8106468646970275, + "兂": 0.38392444366948586, + "凳": 1.1605715995092165, + "彬": 0.9478134703090432, + "昊": 0.13677308305725433, + "匿": 0.6134792672801993, + "狩": 0.6726676190125783, + "祺": 0.9134202388969851, + "阋": 0.09118205537150288, + "嚐": 0.03839244436694859, + "妣": 0.02319543513836477, + "捡": 1.0269978868158747, + "隗": 0.2335540365656039, + "谴": 1.1197796273693337, + "蝼": 0.08158394427976574, + "卤": 1.542896357996746, + "唸": 0.08318362946172193, + "炫": 0.511899258225981, + "熠": 0.5758866655042287, + "霁": 0.09518126832639337, + "拴": 0.5998819432335717, + "掺": 0.4583098046304487, + "秃": 1.1973643586942089, + "緒": 0.0023995277729342867, + "膀": 2.1395789308664055, + "蕊": 0.6318756468726955, + "裸": 1.4997048580839292, + "荏": 0.05998819432335716, + "苒": 0.04559102768575144, + "霏": 0.2655477402047277, + "兊": 0.003999212954890477, + "缇": 0.20076049033550197, + "缅": 1.4109223304853604, + "馥": 0.09598111091737146, + "汀": 0.48470461013272587, + "谯": 0.11117812014595528, + "兌": 0.015996851819561907, + "烫": 1.266150821518325, + "筛": 0.8590309427104745, + "荧": 0.6174784802350898, + "骚": 1.6284795152314024, + "兏": 0.029594175866189534, + "児": 0.006398740727824764, + "卦": 1.9020256813459113, + "兒": 0.0183963795924962, + "兓": 0.003999212954890477, + "麞": 0.004799055545868573, + "崽": 0.22155639770093247, + "凫": 0.08318362946172193, + "烹": 1.5252998209952282, + "鹘": 0.34873136966644963, + "兕": 0.016796694410540006, + "兖": 0.25115057356712195, + "兗": 0.004799055545868573, + "兘": 0.8502326742097155, + "豺": 0.15836883301366292, + "锢": 0.30314034198069817, + "鍪": 0.1415721386031229, + "兠": 0.006398740727824764, + "厕": 0.9438142573541527, + "彀": 0.15676914783170673, + "坞": 0.7222578596532203, + "昇": 0.1767652126061591, + "瞳": 0.3535304252123182, + "殓": 0.20875891624528292, + "渗": 2.2835505972424626, + "禀": 2.8170456054248523, + "窖": 0.9286172481255689, + "闱": 0.10957843496399909, + "內": 0.02719464809325525, + "揭": 4.903834925286703, + "歼": 2.3019469768349587, + "淹": 0.9830065443120793, + "赵": 11.085018468365424, + "烤": 4.889437758649097, + "蝎": 0.477506026813923, + "兩": 0.011997638864671433, + "嘎": 0.6574706097839945, + "庵": 1.8228412648390797, + "稚": 0.7566510910652784, + "纮": 0.019196222183474294, + "陌": 1.1669703402370413, + "茴": 0.07118599059705051, + "闽": 1.2605519233814784, + "匣": 0.9750081184022985, + "遏": 1.0765881274565166, + "询": 7.220179068759268, + "衔": 3.009007827259595, + "娼": 0.35433026780329635, + "稷": 2.638680707636737, + "杵": 0.3679275918499239, + "恚": 0.1471710367399696, + "瓒": 0.27434600870548675, + "萼": 1.0086015072233783, + "鞅": 0.15996851819561908, + "寓": 1.760453542742788, + "帑": 0.0735855183699848, + "髦": 0.4559102768575144, + "每": 52.63204201413161, + "筷": 0.9998032387226194, + "骅": 0.25674947170396867, + "贿": 1.3701303583454776, + "窘": 0.4831049249507697, + "圩": 0.23515372174756008, + "讬": 0.019196222183474294, + "爻": 0.1055792220091086, + "韬": 0.7374548688818041, + "啊": 17.915674195318363, + "蕙": 0.09678095350834955, + "桨": 0.829436766844285, + "苕": 0.9246180351706784, + "匪": 1.774850709380394, + "挽": 2.337939893428973, + "溅": 0.7982429057961393, + "赚": 2.2323606714198645, + "馨": 0.7814462113855993, + "雎": 0.027994490684233344, + "缪": 0.30234049938972013, + "栈": 0.6342751746456298, + "妄": 2.1235820790468436, + "圻": 0.7086605356065927, + "隘": 0.6726676190125783, + "漓": 0.7518520355194098, + "匆": 3.600091501992408, + "匽": 0.00879826850075905, + "拏": 0.032793546230101916, + "燹": 0.037592601775970486, + "痞": 0.1751655274242029, + "诡": 1.3093423214311424, + "饷": 0.8646298408473212, + "鬻": 0.10237985164519622, + "呢": 23.189836240227923, + "杳": 0.12397560160160481, + "锐": 2.975414438438515, + "痈": 0.17436568483322482, + "疽": 0.19196222183474293, + "啮": 0.18556348110691817, + "齧": 0.020795907365430483, + "饴": 0.27514585129646485, + "蟹": 1.4405165063515502, + "貂": 0.5510915451839078, + "鹞": 0.18796300887985246, + "噬": 0.5398937489102145, + "槛": 0.7638496743840811, + "迒": 0.0023995277729342867, + "兾": 0.003199370363912382, + "冁": 0.0023995277729342867, + "冂": 0.003199370363912382, + "冃": 0.0023995277729342867, + "泌": 2.3747326526139654, + "啡": 1.6900673947367157, + "埔": 1.230957747515289, + "嵌": 1.4765094229455644, + "戮": 0.6422736005554107, + "擦": 3.8880348347445226, + "敛": 1.2485542845168072, + "涝": 0.6310758042817173, + "瓤": 0.09758079609932765, + "孢": 0.8718284241661242, + "疚": 0.42311673062741256, + "痔": 0.21035860142723914, + "衬": 1.2717497196551717, + "讧": 0.6598701375569287, + "踝": 0.2487510457941877, + "骼": 0.6078803691433526, + "冇": 0.0023995277729342867, + "崎": 0.4975020915883754, + "菀": 0.06318756468726955, + "闵": 0.47110728608609825, + "赌": 2.5003079393975267, + "醮": 0.12157607382867051, + "冏": 0.019196222183474294, + "冐": 0.0023995277729342867, + "冑": 0.009598111091737147, + "冕": 0.5662885544124916, + "旒": 0.0351930740030362, + "枱": 0.031193861048145723, + "靴": 0.6726676190125783, + "谘": 0.07118599059705051, + "凋": 0.27274632352353056, + "溉": 1.0485936367722832, + "冝": 0.003199370363912382, + "冞": 0.001599685181956191, + "屦": 0.02319543513836477, + "瘿": 0.10317969423617432, + "冡": 0.001599685181956191, + "冣": 0.003199370363912382, + "瞢": 0.004799055545868573, + "顽": 2.782652374012794, + "冦": 0.05758866655042288, + "冧": 0.1415721386031229, + "冨": 0.3255359345280849, + "冩": 0.1615682033775753, + "冪": 0.18156426815202767, + "冫": 0.0023995277729342867, + "娅": 0.1631678885595315, + "箑": 0.00879826850075905, + "菇": 1.2861468862927776, + "冭": 0.13757292564823242, + "冮": 0.13517339787529814, + "葆": 0.08798268500759052, + "眯": 0.8486329890277593, + "瞄": 1.1829671920566034, + "桢": 0.18236411074300576, + "甄": 0.5382940637282583, + "樾": 0.05118992582259811, + "淬": 0.22475576806484485, + "霆": 0.3815249158965516, + "荀": 0.30314034198069817, + "粹": 1.4989050154929509, + "咆": 0.22315608288288863, + "坨": 0.13357371269334195, + "裹": 2.0651935699054427, + "楔": 0.26234836984081533, + "橇": 0.18796300887985246, + "瀑": 1.196564516103231, + "碛": 0.17356584224224672, + "碴": 0.10477937941813051, + "窿": 0.3807250733055735, + "蟾": 0.6374745450095421, + "镩": 0.003999212954890477, + "韧": 0.8726282667571021, + "垮": 1.4797087933094766, + "澡": 0.6790663597404032, + "盹": 0.18876285147083052, + "襟": 1.4109223304853604, + "凄": 1.4293187100778566, + "嘲": 1.1085818310956403, + "噤": 0.15197009228583816, + "涡": 1.2229593216055081, + "腌": 0.5910836747328125, + "颤": 2.974614595847537, + "飕": 0.2959417586618953, + "啤": 0.8518323593916718, + "冼": 0.05598898136846669, + "冽": 0.13197402751138576, + "冿": 0.09278174055345909, + "怆": 0.13277387010236386, + "恻": 0.3207368789822163, + "惘": 0.292742388297983, + "噶": 0.7270569151990889, + "凇": 0.11277780532791146, + "凈": 0.00719858331880286, + "嗖": 0.3343342030288439, + "拌": 1.7140626724660586, + "簌": 0.4415131102199087, + "薯": 1.3293383862055945, + "敝": 0.8838260630307955, + "萎": 0.6478724986922574, + "尧": 0.6102798969162868, + "轹": 0.00879826850075905, + "凍": 0.006398740727824764, + "鳍": 1.9620138756692682, + "拢": 1.3925259508928645, + "凒": 0.0023995277729342867, + "凔": 0.001599685181956191, + "凖": 0.01439716663760572, + "凗": 0.005598898136846668, + "凘": 0.001599685181956191, + "凛": 1.533298246905009, + "眸": 0.27274632352353056, + "睇": 0.011197796273693337, + "凞": 0.0023995277729342867, + "帔": 0.051989768413576214, + "笯": 0.0023995277729342867, + "蘑": 0.5982822580516155, + "枭": 0.6110797395072649, + "梧": 0.6238772209629145, + "麋": 1.7588538575608321, + "蜚": 0.17276599965126863, + "箫": 0.5926833599147687, + "翥": 0.0367927591849924, + "蟠": 0.6134792672801993, + "鬐": 0.005598898136846668, + "吪": 0.0023995277729342867, + "唳": 0.06798662023313812, + "処": 0.003199370363912382, + "凨": 0.001599685181956191, + "诏": 6.459528764739099, + "轼": 0.21995671251897628, + "凮": 0.005598898136846668, + "厄": 1.2149608956957272, + "鳄": 0.8046416465239641, + "裰": 0.11917654605573623, + "凵": 0.022395592547386673, + "畸": 0.7942436928412488, + "殡": 0.6110797395072649, + "芙": 3.1169865770416383, + "淤": 1.213361210513771, + "纰": 0.23995277729342865, + "脓": 0.8014422761600517, + "惰": 0.5031009897252221, + "毂": 0.22395592547386675, + "镫": 0.1623680459685534, + "枘": 0.02879433327521144, + "隧": 1.1189797847783556, + "舔": 0.29754144384385156, + "螂": 0.19996064774452388, + "刁": 0.4367140546740401, + "覃": 0.1247754441925829, + "猾": 0.39912145289806966, + "翎": 0.17916474037909338, + "搯": 0.005598898136846668, + "刄": 0.021595749956408578, + "娆": 0.3615288511220992, + "娩": 0.30234049938972013, + "岐": 0.22395592547386675, + "酵": 0.5646888692305354, + "掰": 0.29114270311602675, + "劈": 1.7532549594239855, + "擘": 0.05598898136846669, + "梳": 1.2205597938325736, + "胙": 0.02639480550227715, + "蘖": 0.08238378687074384, + "镳": 0.11677701828280194, + "餍": 0.04159181473086097, + "瑳": 0.0023995277729342867, + "拊": 0.07278567577900669, + "刈": 0.13837276823921052, + "刍": 0.16476757374148768, + "荛": 0.010397953682715242, + "刎": 0.21915686992799818, + "夤": 0.07998425909780954, + "栄": 0.004799055545868573, + "刓": 0.00719858331880286, + "刕": 0.08478331464367812, + "刖": 0.06398740727824763, + "甯": 0.4415131102199087, + "氓": 0.6382743876005202, + "昕": 0.3783255455326392, + "峤": 0.04639087027672954, + "藜": 0.16476757374148768, + "琦": 1.8564346536601597, + "劭": 0.037592601775970486, + "歆": 0.30314034198069817, + "呐": 1.181367506874647, + "臻": 0.38392444366948586, + "姝": 0.7942436928412488, + "姥": 1.522900293222294, + "圪": 0.43431452690110584, + "瘩": 0.5039008323162002, + "恢": 6.975427235919971, + "泮": 0.022395592547386673, + "於": 0.443912637992843, + "烨": 0.04879039804966383, + "趁": 2.861836790519626, + "湛": 0.9854060720850136, + "焯": 0.27754537906939913, + "祉": 0.04559102768575144, + "卣": 0.10957843496399909, + "叟": 0.13517339787529814, + "芊": 0.08718284241661241, + "荃": 0.3111387678904792, + "桦": 0.6086802117343307, + "銮": 0.21995671251897628, + "邓": 6.468327033239858, + "骜": 0.06398740727824763, + "愎": 0.08158394427976574, + "镀": 0.3527305826213401, + "雇": 2.4667145505764463, + "痍": 0.0367927591849924, + "寥": 0.6758669893764907, + "钜": 0.07198583318802859, + "刜": 0.003199370363912382, + "绽": 0.9078213407601384, + "啼": 0.8262373964803726, + "峥": 0.09438142573541526, + "嵘": 0.11037827755497717, + "刞": 0.029594175866189534, + "刡": 0.0023995277729342867, + "別": 0.016796694410540006, + "刨": 0.6350750172366078, + "惛": 0.025594962911299056, + "牵": 5.004615091749944, + "窦": 1.080587340411407, + "绾": 0.510299573044025, + "钝": 0.6758669893764907, + "嘌": 0.12877465714747338, + "呤": 0.1399724534211667, + "廖": 0.7814462113855993, + "抡": 0.27834522166037723, + "琵": 0.5830852488230316, + "琶": 0.5638890266395573, + "恙": 0.2855438049791801, + "趴": 0.7110600633795269, + "刬": 0.006398740727824764, + "刭": 0.006398740727824764, + "痧": 0.10717890719106479, + "腻": 1.3093423214311424, + "铲": 1.2165605808776832, + "哪": 22.72992675041552, + "刳": 0.035992916594014296, + "鉥": 0.021595749956408578, + "夭": 0.4223168880364344, + "剔": 0.5790860358681412, + "醣": 0.06238772209629145, + "漱": 0.40152098067100395, + "麸": 0.06558709246020383, + "戳": 1.198964043876165, + "辊": 0.06638693505118193, + "猬": 0.21435781438212959, + "绣": 4.919031934515287, + "蓟": 0.4935028786334849, + "蒺": 0.07118599059705051, + "镂": 0.5246967396816307, + "刼": 0.003199370363912382, + "刽": 0.10797874978204289, + "刿": 0.031993703639123815, + "怵": 0.15037040710388194, + "剀": 0.015996851819561907, + "剁": 0.6734674616035564, + "岚": 0.5950828876877031, + "剃": 0.7270569151990889, + "剄": 0.001599685181956191, + "剅": 1.6380776263231396, + "則": 0.003999212954890477, + "剉": 4.691876638677509, + "苹": 1.3861272101650395, + "剋": 0.007998425909780954, + "剌": 0.9022224426232917, + "悖": 0.6094800543253088, + "哨": 2.9106271885692894, + "疐": 0.009598111091737147, + "渺": 0.5310954804094554, + "邵": 1.2781484603829967, + "剎": 0.025594962911299056, + "剐": 0.27194648093255247, + "吷": 0.004799055545868573, + "弩": 0.6606699801479069, + "羚": 0.5974824154606373, + "诀": 1.3885267379379738, + "剒": 0.00719858331880286, + "撩": 0.561489498866623, + "剕": 0.009598111091737147, + "坼": 0.01439716663760572, + "蚌": 0.727856757790067, + "剗": 0.004799055545868573, + "剚": 0.00719858331880286, + "剛": 0.003999212954890477, + "剜": 0.1615682033775753, + "剞": 0.001599685181956191, + "剟": 0.004799055545868573, + "剠": 0.011197796273693337, + "剡": 0.027994490684233344, + "剢": 0.0183963795924962, + "剤": 0.0351930740030362, + "椎": 1.4629120988989366, + "剦": 0.011197796273693337, + "剨": 0.003999212954890477, + "剮": 0.001599685181956191, + "睾": 0.3727266473957925, + "剰": 0.29034286052504865, + "腕": 1.8796300887985244, + "剳": 0.055189138777488586, + "剴": 0.001599685181956191, + "剷": 0.007998425909780954, + "剸": 0.019996064774452385, + "剹": 0.0023995277729342867, + "剺": 0.005598898136846668, + "剻": 0.006398740727824764, + "剼": 0.0703861480060724, + "剽": 0.1623680459685534, + "劁": 0.016796694410540006, + "劂": 0.001599685181956191, + "劄": 0.020795907365430483, + "劅": 0.11437749050986766, + "啪": 0.8910246463495984, + "劊": 0.0183963795924962, + "劋": 0.006398740727824764, + "劍": 0.2703467957505963, + "劎": 0.00719858331880286, + "劓": 0.043191499912817156, + "劖": 0.007998425909780954, + "劘": 0.009598111091737147, + "劙": 0.012797481455649528, + "劚": 0.035992916594014296, + "殚": 0.108778592373021, + "扛": 0.7750474706577746, + "黜": 0.3255359345280849, + "诫": 0.5694879247764041, + "矶": 0.9374155166263279, + "酱": 1.6572738485066139, + "釜": 1.221359636423552, + "劾": 0.6814658875133374, + "榴": 1.4525141452162214, + "箍": 0.627876433917805, + "劢": 0.022395592547386673, + "劦": 0.001599685181956191, + "劧": 0.46870775831316397, + "窾": 0.009598111091737147, + "迅": 9.78127504507113, + "戡": 0.027994490684233344, + "撼": 0.9022224426232917, + "蛹": 0.29114270311602675, + "辄": 0.2663475827957058, + "纣": 0.2831442772062458, + "簸": 0.29994097161678585, + "劬": 0.08078410168878765, + "劯": 0.11437749050986766, + "宸": 3.0673963364009964, + "劵": 0.001599685181956191, + "劸": 0.001599685181956191, + "効": 0.15596930524072863, + "劻": 0.32793546230101916, + "劼": 0.006398740727824764, + "蹙": 0.34633184189351535, + "阱": 0.48550445272370396, + "谿": 0.03039401845716763, + "勅": 0.003199370363912382, + "拓": 3.225765169414659, + "蠢": 1.0597914330459766, + "勌": 0.003199370363912382, + "勐": 0.06718677764216002, + "庞": 3.14978012327174, + "勔": 0.015996851819561907, + "勖": 0.06878646282411621, + "勗": 0.031993703639123815, + "勘": 1.6236804596855339, + "勝": 0.001599685181956191, + "勠": 0.0023995277729342867, + "勣": 0.02479512032032096, + "恳": 1.2037630994220339, + "嬉": 0.4079197213988287, + "勨": 0.03919228695792668, + "勩": 0.2335540365656039, + "勪": 0.6262767487358487, + "勫": 1.3045432658852736, + "勬": 1.03739584049859, + "勭": 0.5710876099583602, + "勮": 0.6374745450095421, + "勯": 0.6054808413704182, + "勰": 0.055189138777488586, + "勶": 0.3495312122574278, + "脔": 0.015996851819561907, + "勻": 0.001599685181956191, + "娌": 0.8030419613420079, + "芡": 0.08478331464367812, + "阑": 0.24395199024831915, + "匂": 0.0023995277729342867, + "馅": 0.29994097161678585, + "拯": 0.5166983137718496, + "栎": 0.48390476754174777, + "袱": 1.0277977294068525, + "遽": 0.14797087933094766, + "匈": 2.2683535880138788, + "匋": 0.009598111091737147, + "匍": 0.1807644255610496, + "匐": 0.17596537001518103, + "匏": 0.03839244436694859, + "匕": 0.9350159888533937, + "鬯": 0.027994490684233344, + "汞": 0.8838260630307955, + "痰": 0.9710089054474079, + "钡": 0.41511830471763156, + "铯": 0.08238378687074384, + "镁": 0.6646691931027973, + "鸱": 0.31193861048145727, + "戍": 0.5079000452710907, + "阜": 0.9918048128128385, + "塬": 0.1631678885595315, + "峪": 0.418317675081544, + "彊": 0.05678882395944478, + "斐": 1.1029829329587937, + "碚": 0.02879433327521144, + "辕": 0.6374745450095421, + "鄙": 1.5772895894088044, + "郦": 0.04719071286770763, + "鲵": 0.2983412864348296, + "匚": 0.04079197213988287, + "匜": 0.005598898136846668, + "匝": 0.2647478976137496, + "匟": 0.0023995277729342867, + "帷": 0.5990821006425936, + "匦": 0.13757292564823242, + "酋": 0.6790663597404032, + "匬": 0.005598898136846668, + "匭": 0.02879433327521144, + "匴": 0.001599685181956191, + "陬": 0.03039401845716763, + "罔": 0.20395986069941435, + "匼": 0.009598111091737147, + "匾": 2.128381134592712, + "幺": 2.686671263095423, + "桡": 0.10797874978204289, + "楺": 0.0023995277729342867, + "糠": 0.3703271196228582, + "卂": 0.04079197213988287, + "轸": 0.053589453595532396, + "叮": 1.3861272101650395, + "咛": 0.15197009228583816, + "峒": 0.2335540365656039, + "嶂": 0.12237591641964861, + "莼": 0.25674947170396867, + "瓠": 0.04639087027672954, + "胱": 0.42551625840034685, + "癈": 0.00719858331880286, + "酣": 0.5630891840485792, + "卌": 0.001599685181956191, + "卍": 0.003199370363912382, + "婕": 0.1231757590106267, + "妤": 0.09838063869030575, + "筝": 0.6342751746456298, + "蓥": 0.03999212954890477, + "蘅": 0.06878646282411621, + "卐": 0.0023995277729342867, + "怯": 1.4253194971229664, + "龌": 0.13277387010236386, + "龊": 0.13197402751138576, + "荦": 0.07678488873389717, + "鼐": 0.24555167543027534, + "孑": 0.10477937941813051, + "骆": 0.9662098499015394, + "淘": 1.634078413368249, + "褂": 0.7190584892893078, + "詹": 1.2525534974716974, + "绞": 1.0845865533662975, + "嫖": 0.2959417586618953, + "囚": 1.3109420066130986, + "棹": 0.05678882395944478, + "沱": 0.3383334159837344, + "浔": 0.11757686087378004, + "籽": 0.5015013045432659, + "舣": 0.007998425909780954, + "鴂": 0.004799055545868573, + "鴃": 0.004799055545868573, + "迦": 1.146974275462589, + "卙": 0.004799055545868573, + "奕": 0.9406148869902403, + "弈": 0.25754931429494676, + "腯": 0.0023995277729342867, + "筮": 0.07278567577900669, + "卞": 1.1013832477768375, + "卟": 0.10317969423617432, + "啉": 0.10717890719106479, + "嗒": 0.3663279066679678, + "迈": 2.9842127069392745, + "铉": 0.06878646282411621, + "阎": 1.4605125711260023, + "绂": 0.09438142573541526, + "鼾": 0.27594569388744294, + "卨": 0.006398740727824764, + "卩": 0.001599685181956191, + "喇": 2.4075261988440677, + "葑": 0.18716316628887433, + "卮": 0.11677701828280194, + "榫": 0.13117418492040767, + "钤": 0.159168675604641, + "竦": 0.18236411074300576, + "耸": 1.3389364972973319, + "覈": 0.01439716663760572, + "宛": 2.4227232080726515, + "愀": 0.031993703639123815, + "漩": 0.5734871377312944, + "猴": 3.259358558235739, + "帘": 1.6828688114179131, + "帙": 0.16396773115050958, + "菸": 0.034393231412058106, + "卺": 0.019196222183474294, + "卻": 0.013597324046627625, + "厀": 0.00879826850075905, + "扪": 0.10158000905421814, + "扼": 0.7086605356065927, + "旷": 1.7524551168330071, + "叱": 0.4831049249507697, + "闰": 0.2319543513836477, + "榨": 1.3861272101650395, + "憎": 0.7462531373825632, + "饫": 0.06318756468726955, + "厍": 0.1271749719655172, + "狻": 0.19276206442572102, + "厐": 0.001599685181956191, + "厑": 0.003199370363912382, + "厓": 0.025594962911299056, + "厔": 0.05598898136846669, + "厖": 0.04399134250379526, + "厗": 0.0023995277729342867, + "茸": 0.7966432206141831, + "厛": 0.1551694626497505, + "厜": 0.11757686087378004, + "燎": 0.3047400271626544, + "厞": 0.003199370363912382, + "鏸": 0.0023995277729342867, + "宥": 0.20715923106332673, + "厠": 0.04719071286770763, + "厡": 0.013597324046627625, + "厣": 0.06558709246020383, + "厤": 0.04079197213988287, + "厧": 0.01439716663760572, + "厩": 0.13037434232942954, + "厫": 0.010397953682715242, + "厬": 0.003199370363912382, + "厭": 0.06878646282411621, + "厮": 2.0308003384933846, + "厰": 0.015996851819561907, + "厱": 0.003199370363912382, + "厲": 0.0023995277729342867, + "厶": 0.037592601775970486, + "厷": 0.13437355528432005, + "厹": 0.005598898136846668, + "厺": 0.003199370363912382, + "汙": 0.053589453595532396, + "浄": 0.015996851819561907, + "厼": 0.003199370363912382, + "衙": 3.7472625387323775, + "叁": 0.02639480550227715, + "贰": 0.27354616611450866, + "芪": 0.16556741633246577, + "谒": 0.4535107490845801, + "參": 0.02479512032032096, + "叅": 0.001599685181956191, + "叆": 0.10158000905421814, + "叇": 0.006398740727824764, + "笄": 0.055189138777488586, + "阪": 0.376725860350683, + "姜": 2.1403787734573836, + "榆": 0.653471396829104, + "泾": 0.3735264899867706, + "睛": 9.726085906293642, + "钏": 0.11917654605573623, + "靥": 0.10158000905421814, + "哺": 0.9334163036714375, + "讥": 0.6694682486486659, + "垄": 1.7628530705157226, + "町": 0.1575689904226848, + "褶": 0.7166589615163735, + "诘": 0.4247164158093687, + "诬": 0.7694485725209278, + "铐": 0.33353436043786583, + "収": 0.06638693505118193, + "叏": 0.10397953682715243, + "嗲": 0.09438142573541526, + "擿": 0.04079197213988287, + "怔": 2.3819312359327682, + "憷": 0.0543892961865105, + "踔": 0.0903822127805248, + "抖": 3.080193817856646, + "楞": 0.7494525077464754, + "獃": 0.01439716663760572, + "硎": 0.11837670346475813, + "诨": 0.15436962005877244, + "簪": 0.31593782343634774, + "聩": 0.06158787950531335, + "蔫": 0.15996851819561908, + "踊": 0.3191371938002601, + "辫": 0.8814265352578613, + "闷": 3.2529598175079144, + "叓": 0.16876678669637815, + "陂": 1.3541335065259157, + "叕": 0.0543892961865105, + "媲": 0.20395986069941435, + "蜴": 0.11677701828280194, + "叚": 0.055189138777488586, + "叜": 0.010397953682715242, + "叞": 0.17836489778811532, + "吖": 0.03359338882108001, + "叡": 0.09678095350834955, + "蚤": 0.17596537001518103, + "玑": 0.1607683607865972, + "壅": 0.12077623123769242, + "疡": 0.39752176771611347, + "阝": 0.013597324046627625, + "晰": 1.5796891171817387, + "樟": 0.4047203510349163, + "泗": 0.376725860350683, + "滇": 0.9502129980819775, + "瑚": 1.0501933219542394, + "皓": 0.39912145289806966, + "砚": 0.5766865080952068, + "蜥": 0.2551497865220125, + "畔": 1.4117221730763387, + "邗": 0.07518520355194097, + "邳": 0.09918048128128384, + "叧": 0.10158000905421814, + "叨": 0.7086605356065927, + "咕": 1.522900293222294, + "唠": 0.2951419160709173, + "唆": 0.5350946933643459, + "嚣": 0.8830262204398174, + "嚷": 1.715662357648015, + "噹": 0.10797874978204289, + "咚": 0.8326361372081974, + "哦": 2.8450400961090856, + "挖": 4.245564472911731, + "撤": 8.851058111763605, + "吒": 0.12077623123769242, + "咤": 0.08718284241661241, + "诧": 1.172569238373888, + "镛": 0.0351930740030362, + "恂": 0.037592601775970486, + "娣": 0.19436174960767721, + "蒋": 6.293961348406633, + "袁": 11.94005019812101, + "翦": 0.10397953682715243, + "衽": 0.06798662023313812, + "叴": 0.04159181473086097, + "哗": 1.4917064321741482, + "挻": 0.0023995277729342867, + "苞": 0.3919228695792668, + "脤": 0.0023995277729342867, + "苔": 0.9494131554909994, + "钊": 1.4197205989861195, + "咷": 0.00719858331880286, + "啕": 0.1471710367399696, + "镗": 0.1751655274242029, + "崔": 1.4157213860312292, + "铎": 0.23435387915658198, + "谳": 0.03919228695792668, + "玮": 0.3895233418063325, + "惋": 0.23755324952049436, + "叺": 0.16796694410540006, + "叻": 0.0527896110045543, + "叼": 0.17276599965126863, + "喳": 0.3087392401175449, + "呱": 0.2687471105686401, + "叾": 0.1471710367399696, + "叿": 0.031193861048145723, + "吀": 0.01439716663760572, + "咈": 0.004799055545868573, + "吂": 0.015996851819561907, + "堑": 0.5350946933643459, + "屎": 0.5974824154606373, + "螃": 0.1623680459685534, + "饺": 0.460709332403383, + "吅": 0.0023995277729342867, + "吆": 0.6822657301043155, + "吇": 0.04159181473086097, + "涤": 0.5414934340921707, + "衮": 1.1117812014595527, + "檀": 0.9286172481255689, + "唁": 0.16876678669637815, + "沽": 1.2421555437889824, + "锚": 0.4303153139462154, + "吋": 0.04799055545868573, + "忾": 0.2135579717911515, + "慨": 2.294748393516156, + "莺": 0.45750996203947064, + "轶": 0.4119189343537192, + "鹊": 0.552691230365864, + "妓": 1.1261783680971584, + "闺": 0.8014422761600517, + "遐": 0.4095194065807849, + "鞿": 0.0023995277729342867, + "鞚": 0.0023995277729342867, + "羿": 0.04719071286770763, + "隋": 2.4971085690336143, + "蕃": 1.080587340411407, + "棂": 0.4495115361296897, + "桔": 0.3415327863476468, + "唬": 0.8646298408473212, + "吔": 0.005598898136846668, + "祜": 0.1463711941489915, + "吗": 17.430169742594657, + "吘": 0.034393231412058106, + "吙": 0.04159181473086097, + "逑": 0.0543892961865105, + "吜": 0.0023995277729342867, + "啬": 0.1775650551971372, + "翕": 0.06638693505118193, + "咯": 0.8518323593916718, + "哆": 0.4767061842229449, + "哌": 0.05998819432335716, + "喃": 1.6604732188705262, + "吣": 0.031993703639123815, + "吥": 0.003999212954890477, + "哒": 0.29674160125287347, + "吩": 2.6178848002713067, + "蓼": 0.10158000905421814, + "噀": 0.04879039804966383, + "潠": 0.003999212954890477, + "鄱": 0.29034286052504865, + "鹂": 0.043191499912817156, + "哧": 0.4631088601763173, + "吮": 0.27594569388744294, + "舐": 0.15037040710388194, + "吱": 0.6894643134231183, + "唔": 0.3927227121702449, + "吲": 0.05118992582259811, + "哚": 0.0367927591849924, + "熬": 1.6436765244599862, + "廑": 0.012797481455649528, + "婵": 0.09758079609932765, + "琏": 0.2151576569731077, + "熹": 0.4447124805838211, + "晗": 0.0903822127805248, + "缃": 0.17276599965126863, + "珩": 0.2687471105686401, + "茱": 0.07518520355194097, + "萸": 0.055189138777488586, + "恪": 0.5334950081823897, + "貞": 0.0023995277729342867, + "趼": 0.021595749956408578, + "鞠": 0.34233262893862487, + "吶": 0.0175965370015181, + "擂": 0.6694682486486659, + "疵": 0.1575689904226848, + "蚧": 0.15836883301366292, + "吽": 0.009598111091737147, + "吿": 0.003199370363912382, + "哟": 1.6108829782298844, + "呂": 0.0023995277729342867, + "呃": 0.15436962005877244, + "挣": 2.722664179689437, + "饩": 0.11837670346475813, + "罄": 0.17916474037909338, + "呋": 0.11597717569182385, + "呎": 0.08718284241661241, + "呑": 0.001599685181956191, + "呒": 0.04799055545868573, + "呓": 0.07518520355194097, + "呔": 0.02639480550227715, + "呖": 0.04079197213988287, + "呗": 0.21035860142723914, + "呙": 0.015197009228583814, + "呛": 0.6062806839613963, + "噫": 0.08398347205270003, + "唈": 0.0023995277729342867, + "呟": 0.0023995277729342867, + "呠": 0.001599685181956191, + "呣": 0.003199370363912382, + "呦": 0.1231757590106267, + "棣": 2.5434994393103434, + "祈": 1.0445944238173928, + "巍": 1.3045432658852736, + "峙": 0.6510718690561698, + "颐": 0.8014422761600517, + "锜": 0.6518717116471479, + "澍": 0.04799055545868573, + "睿": 0.987805599857948, + "赧": 0.0543892961865105, + "彥": 0.005598898136846668, + "呪": 0.00719858331880286, + "呫": 0.04719071286770763, + "呬": 0.20316001810843629, + "呭": 0.3495312122574278, + "呮": 0.2471513606122315, + "呯": 0.1831639533339839, + "呰": 0.460709332403383, + "呲": 0.04799055545868573, + "呴": 0.15037040710388194, + "呶": 0.08798268500759052, + "呷": 0.1807644255610496, + "呸": 0.4447124805838211, + "呻": 0.6542712394200821, + "雉": 0.2711466383415744, + "灼": 1.014200405360225, + "蹇": 1.2989443677484271, + "舛": 0.10158000905421814, + "呾": 0.0023995277729342867, + "咂": 0.18156426815202767, + "咃": 0.16396773115050958, + "咅": 0.001599685181956191, + "咇": 0.001599685181956191, + "娈": 0.1463711941489915, + "珅": 0.15356977746779435, + "矫": 0.8414344057089566, + "灸": 0.6790663597404032, + "咍": 0.0023995277729342867, + "诅": 0.2471513606122315, + "咔": 0.26154852724983724, + "嚓": 0.3255359345280849, + "咾": 0.004799055545868573, + "哝": 0.3047400271626544, + "喨": 0.015197009228583814, + "嘟": 0.6358748598275858, + "咖": 1.6172817189577091, + "渍": 0.3703271196228582, + "喱": 0.025594962911299056, + "咙": 0.4879039804966383, + "咝": 0.12797481455649526, + "咥": 0.001599685181956191, + "咦": 0.6582704523749726, + "咧": 0.8766274797119927, + "咨": 3.8976329458362593, + "咩": 0.04959024064064192, + "咫": 0.27514585129646485, + "咭": 0.11437749050986766, + "噔": 0.13917261083018861, + "咱": 16.504751864833, + "嗽": 1.2333572752882231, + "咴": 0.03999212954890477, + "咵": 0.003999212954890477, + "豊": 0.010397953682715242, + "酥": 0.9838063869030573, + "咹": 0.005598898136846668, + "咻": 0.05998819432335716, + "咼": 0.001599685181956191, + "咿": 0.1247754441925829, + "嚎": 0.49190319345152866, + "恸": 0.22315608288288863, + "瘠": 0.20635938847234864, + "哂": 0.17836489778811532, + "哃": 0.001599685181956191, + "逗": 0.9342161462624156, + "嗦": 0.5990821006425936, + "啰": 0.2463515180212534, + "噻": 0.08078410168878765, + "彗": 0.30234049938972013, + "哊": 2.0324000236753403, + "铛": 0.11357764791888957, + "哎": 1.533298246905009, + "哏": 0.03039401845716763, + "哐": 0.12797481455649526, + "哓": 0.02319543513836477, + "瘏": 0.009598111091737147, + "哔": 0.044791185094773346, + "哕": 0.06478724986922574, + "哖": 0.001599685181956191, + "哙": 0.022395592547386673, + "哜": 0.010397953682715242, + "哞": 0.013597324046627625, + "哠": 0.022395592547386673, + "員": 0.003999212954890477, + "哱": 0.0351930740030362, + "畴": 2.120382708682931, + "哳": 0.01439716663760572, + "哵": 0.11917654605573623, + "啜": 0.1623680459685534, + "醨": 0.011997638864671433, + "歠": 0.01439716663760572, + "哻": 0.005598898136846668, + "哽": 0.5262964248635867, + "哿": 0.015996851819561907, + "唃": 0.006398740727824764, + "唄": 0.003999212954890477, + "疱": 0.20475970329039245, + "腭": 0.1471710367399696, + "唉": 2.0403984495851217, + "唎": 0.005598898136846668, + "铂": 0.2807447494333115, + "徕": 0.08958237018954669, + "奘": 0.21995671251897628, + "牒": 0.6910639986050745, + "耿": 1.0949845070490127, + "唖": 0.001599685181956191, + "唙": 0.0023995277729342867, + "唞": 0.003199370363912382, + "嗑": 0.08238378687074384, + "唢": 0.14237198119410102, + "唣": 0.037592601775970486, + "啾": 0.1575689904226848, + "唨": 0.013597324046627625, + "唪": 0.003199370363912382, + "唫": 0.0023995277729342867, + "唰": 0.14557135155801337, + "唲": 0.006398740727824764, + "唴": 0.05678882395944478, + "唵": 0.02639480550227715, + "唶": 0.0023995277729342867, + "唹": 0.013597324046627625, + "唺": 0.02879433327521144, + "唻": 0.019996064774452385, + "唼": 0.005598898136846668, + "唽": 0.0023995277729342867, + "唿": 0.10637906460008671, + "啀": 0.19196222183474293, + "啁": 0.035992916594014296, + "啂": 0.001599685181956191, + "啅": 0.00719858331880286, + "娥": 1.6388774689141177, + "榷": 0.31353829566341346, + "逵": 0.979807173948167, + "啋": 0.03919228695792668, + "啎": 0.001599685181956191, + "問": 0.0023995277729342867, + "啐": 0.19196222183474293, + "啑": 0.004799055545868573, + "啒": 0.03999212954890477, + "啓": 0.032793546230101916, + "啗": 0.5998819432335717, + "啘": 0.035992916594014296, + "啙": 0.0023995277729342867, + "啛": 0.0351930740030362, + "啝": 0.003999212954890477, + "啢": 0.00719858331880286, + "啣": 0.010397953682715242, + "瘌": 0.016796694410540006, + "啫": 0.016796694410540006, + "啭": 0.031993703639123815, + "檗": 0.04239165732183906, + "毡": 0.7070608504246364, + "啯": 0.027994490684233344, + "啱": 0.001599685181956191, + "啲": 0.005598898136846668, + "啵": 0.11277780532791146, + "啹": 0.031993703639123815, + "啺": 0.010397953682715242, + "啿": 0.04799055545868573, + "阡": 0.13117418492040767, + "喁": 0.03919228695792668, + "喅": 0.07998425909780954, + "喆": 0.019196222183474294, + "嘛": 3.8408441218768146, + "蛄": 0.08238378687074384, + "喈": 0.011997638864671433, + "喋": 0.1951615921986553, + "喌": 0.04559102768575144, + "喎": 0.07758473132487526, + "噁": 0.011997638864671433, + "喓": 0.0023995277729342867, + "喔": 0.10237985164519622, + "喕": 0.003199370363912382, + "喚": 0.003199370363912382, + "喛": 0.001599685181956191, + "幛": 0.03839244436694859, + "筵": 0.7182586466983298, + "抃": 0.00879826850075905, + "喟": 0.08718284241661241, + "喤": 0.0023995277729342867, + "喦": 0.013597324046627625, + "喧": 1.28934625665669, + "喵": 0.43751389726501827, + "嚏": 0.1967612773806115, + "喹": 0.09518126832639337, + "喽": 0.44071326762893065, + "喾": 0.07198583318802859, + "嗂": 0.001599685181956191, + "嗄": 0.08718284241661241, + "嗅": 0.6990624245148556, + "嗉": 0.03839244436694859, + "嗌": 0.0527896110045543, + "嗍": 0.06478724986922574, + "嗏": 0.0351930740030362, + "嗐": 0.4679079157221859, + "嗕": 0.6942633689689869, + "嗗": 0.8894249611676422, + "嗘": 0.5718874525493383, + "嗙": 0.29034286052504865, + "嗚": 0.29674160125287347, + "嗛": 0.2327541939746258, + "痂": 0.07278567577900669, + "嗝": 0.14957056451290388, + "嗞": 0.004799055545868573, + "嗡": 0.8862255908037299, + "嘤": 0.22395592547386675, + "嗢": 0.003999212954890477, + "嗤": 1.063790646000867, + "嗥": 0.10078016646324003, + "嗨": 0.30553986975363245, + "嗫": 0.17996458297007148, + "嚅": 0.18636332369789624, + "嗬": 0.17916474037909338, + "嗭": 0.7102602207885488, + "嗯": 1.7724511816074597, + "嗳": 0.34633184189351535, + "嗵": 0.12557528678356097, + "嗶": 0.001599685181956191, + "嗻": 0.06158787950531335, + "嗾": 0.022395592547386673, + "嘀": 0.42311673062741256, + "嘁": 0.15117024969486006, + "圳": 3.1929716231845573, + "馔": 0.5710876099583602, + "嘣": 0.09438142573541526, + "嘏": 0.02719464809325525, + "嘓": 0.004799055545868573, + "嘚": 0.00719858331880286, + "嘞": 0.04559102768575144, + "囔": 0.13917261083018861, + "嘡": 0.015197009228583814, + "嘦": 0.0023995277729342867, + "嘧": 0.11677701828280194, + "嘫": 0.07438536096096289, + "嘬": 0.05758866655042288, + "嘭": 0.13917261083018861, + "嘯": 0.003999212954890477, + "讪": 0.3367337308017782, + "谑": 0.3007408142077639, + "馋": 0.47350681385903254, + "嘷": 0.001599685181956191, + "嘹": 0.11117812014595528, + "嘼": 0.001599685181956191, + "嘾": 0.009598111091737147, + "嘿": 1.942817653485794, + "噇": 0.0023995277729342867, + "噉": 0.0023995277729342867, + "噌": 0.051989768413576214, + "噍": 0.009598111091737147, + "膈": 0.09998032387226194, + "噑": 0.001599685181956191, + "噕": 0.003199370363912382, + "噗": 0.5486920174109735, + "噘": 0.07198583318802859, + "噙": 0.17196615706029053, + "囌": 0.0023995277729342867, + "噢": 0.653471396829104, + "噣": 0.016796694410540006, + "捲": 0.0023995277729342867, + "噦": 0.019996064774452385, + "噧": 0.010397953682715242, + "皿": 0.26234836984081533, + "噩": 0.4263161009913249, + "鲨": 0.7726479428848403, + "箘": 0.010397953682715242, + "脐": 0.21995671251897628, + "噭": 0.009598111091737147, + "噯": 0.04879039804966383, + "噰": 0.019996064774452385, + "噱": 0.05118992582259811, + "噲": 0.001599685181956191, + "噳": 0.01439716663760572, + "噴": 0.00719858331880286, + "噵": 0.001599685181956191, + "噷": 0.6110797395072649, + "噸": 0.18556348110691817, + "噺": 0.06318756468726955, + "噼": 0.15356977746779435, + "噾": 0.04719071286770763, + "噿": 0.0023995277729342867, + "嚂": 0.003199370363912382, + "嚇": 0.01439716663760572, + "嚈": 0.02319543513836477, + "嚊": 0.004799055545868573, + "嚌": 0.011197796273693337, + "嚑": 0.27834522166037723, + "嚒": 0.019196222183474294, + "嚕": 0.005598898136846668, + "嚖": 0.001599685181956191, + "嚗": 0.001599685181956191, + "嚘": 0.0023995277729342867, + "嚜": 0.3927227121702449, + "嚟": 0.031993703639123815, + "嚦": 0.10637906460008671, + "嚧": 0.02639480550227715, + "嚨": 0.004799055545868573, + "嚩": 0.011997638864671433, + "嚫": 0.1959614347896334, + "嚭": 0.5031009897252221, + "嚮": 0.08958237018954669, + "嚯": 0.029594175866189534, + "嚱": 0.001599685181956191, + "嚳": 0.005598898136846668, + "龈": 0.23915293470245055, + "搥": 0.0183963795924962, + "蚴": 0.13917261083018861, + "膪": 0.0023995277729342867, + "萤": 0.5566904433207545, + "囍": 0.0023995277729342867, + "囏": 0.001599685181956191, + "囓": 0.004799055545868573, + "囗": 0.001599685181956191, + "掾": 0.08558315723465622, + "囝": 0.001599685181956191, + "纥": 0.11997638864671432, + "囟": 0.06878646282411621, + "囡": 0.02879433327521144, + "鲂": 0.10158000905421814, + "団": 0.010397953682715242, + "囤": 0.20555954588137057, + "囥": 0.043191499912817156, + "囦": 0.19436174960767721, + "囧": 0.5230970544996745, + "囨": 0.4127187769446973, + "囩": 0.159168675604641, + "囪": 0.14557135155801337, + "囫": 0.08318362946172193, + "囵": 0.08318362946172193, + "囬": 0.0903822127805248, + "囿": 0.12237591641964861, + "囮": 0.003199370363912382, + "惫": 0.5638890266395573, + "阨": 0.015996851819561907, + "囱": 0.18236411074300576, + "砌": 1.5620925801802203, + "囹": 0.04159181473086097, + "圄": 0.03999212954890477, + "谎": 1.1693698680099758, + "颅": 0.6622696653298631, + "圉": 0.07598504614291908, + "圊": 0.001599685181956191, + "國": 0.007998425909780954, + "圌": 0.0023995277729342867, + "園": 0.007998425909780954, + "圓": 0.001599685181956191, + "圖": 0.003999212954890477, + "圗": 0.009598111091737147, + "團": 0.001599685181956191, + "圚": 0.003199370363912382, + "圜": 0.1975611199715896, + "圞": 0.003999212954890477, + "蠕": 0.4831049249507697, + "坷": 0.22395592547386675, + "埂": 0.21995671251897628, + "槿": 0.07678488873389717, + "疙": 0.5166983137718496, + "穰": 0.05118992582259811, + "茯": 0.3559299529852525, + "蝗": 0.4655083879492516, + "褐": 1.718061885420949, + "遁": 0.48630429531468206, + "鲮": 0.034393231412058106, + "鳖": 0.477506026813923, + "圢": 0.00879826850075905, + "镯": 0.31993703639123816, + "圥": 0.001599685181956191, + "圧": 0.0023995277729342867, + "垸": 4.127987612037951, + "圫": 0.003199370363912382, + "圬": 0.003199370363912382, + "臬": 0.05039008323162002, + "圮": 0.021595749956408578, + "圯": 0.020795907365430483, + "窨": 0.08158394427976574, + "圷": 0.022395592547386673, + "圹": 0.02639480550227715, + "磙": 0.02719464809325525, + "圼": 0.015197009228583814, + "坃": 0.18476363851594005, + "坆": 0.006398740727824764, + "坈": 0.006398740727824764, + "坋": 0.0023995277729342867, + "坌": 0.012797481455649528, + "斃": 0.0023995277729342867, + "幄": 0.1231757590106267, + "坒": 0.001599685181956191, + "坔": 0.001599685181956191, + "坕": 0.001599685181956191, + "坘": 0.001599685181956191, + "坙": 0.004799055545868573, + "茔": 0.04159181473086097, + "溷": 0.015996851819561907, + "坢": 0.031193861048145723, + "坥": 0.0023995277729342867, + "坧": 0.005598898136846668, + "坩": 0.05838850914140097, + "埚": 0.04959024064064192, + "坫": 0.006398740727824764, + "坭": 0.0183963795924962, + "坮": 0.001599685181956191, + "坳": 0.1951615921986553, + "坵": 0.003999212954890477, + "坶": 0.0351930740030362, + "坹": 0.003199370363912382, + "坻": 0.02719464809325525, + "垀": 0.001599685181956191, + "垁": 0.05039008323162002, + "搨": 0.011997638864671433, + "铩": 0.1431718237850791, + "涕": 0.6566707671930164, + "髫": 0.015996851819561907, + "垅": 0.053589453595532396, + "垆": 0.0183963795924962, + "垇": 0.003199370363912382, + "垉": 0.003199370363912382, + "垊": 0.01439716663760572, + "垍": 0.003999212954890477, + "垎": 0.27594569388744294, + "垏": 0.04799055545868573, + "垐": 0.0175965370015181, + "垑": 0.001599685181956191, + "垔": 0.0023995277729342867, + "垕": 0.034393231412058106, + "垖": 0.00879826850075905, + "垗": 0.009598111091737147, + "垘": 0.0023995277729342867, + "垙": 0.055189138777488586, + "垚": 0.2311545087926696, + "垜": 1.3301382287965728, + "垝": 0.04639087027672954, + "垞": 0.001599685181956191, + "垟": 0.019996064774452385, + "垡": 0.03039401845716763, + "垤": 0.00879826850075905, + "垧": 0.005598898136846668, + "垨": 0.04559102768575144, + "垩": 0.27434600870548675, + "垪": 0.015996851819561907, + "垬": 0.5846849340049879, + "垭": 0.11757686087378004, + "垯": 0.04959024064064192, + "垰": 0.043191499912817156, + "垱": 1.2373564882431136, + "垴": 0.003199370363912382, + "垵": 0.04159181473086097, + "垶": 0.0175965370015181, + "垷": 0.003199370363912382, + "垺": 0.003199370363912382, + "垼": 0.001599685181956191, + "垽": 0.01439716663760572, + "埁": 0.012797481455649528, + "埄": 0.04959024064064192, + "埅": 0.020795907365430483, + "埆": 0.1263751293745391, + "埇": 0.034393231412058106, + "埉": 0.006398740727824764, + "埌": 0.594283045096725, + "埍": 0.05039008323162002, + "隍": 0.14797087933094766, + "埐": 0.0023995277729342867, + "埑": 0.009598111091737147, + "埓": 0.013597324046627625, + "埕": 0.009598111091737147, + "埖": 0.003999212954890477, + "埗": 0.07118599059705051, + "埘": 0.02319543513836477, + "埛": 0.05758866655042288, + "埜": 0.019196222183474294, + "埝": 0.009598111091737147, + "埞": 0.019196222183474294, + "埡": 0.020795907365430483, + "埢": 0.031193861048145723, + "埤": 0.001599685181956191, + "埥": 0.011997638864671433, + "埧": 0.03359338882108001, + "埪": 0.001599685181956191, + "埬": 0.001599685181956191, + "埭": 0.020795907365430483, + "埮": 0.011997638864671433, + "埱": 0.001599685181956191, + "埳": 0.0023995277729342867, + "埴": 0.00879826850075905, + "埵": 0.006398740727824764, + "執": 0.003999212954890477, + "埸": 0.0023995277729342867, + "讷": 0.32793546230101916, + "萘": 0.13197402751138576, + "埼": 0.001599685181956191, + "埽": 0.11917654605573623, + "堀": 0.010397953682715242, + "堃": 0.037592601775970486, + "堅": 0.001599685181956191, + "堉": 0.0175965370015181, + "堋": 0.07918441650683146, + "堌": 0.001599685181956191, + "堍": 0.006398740727824764, + "堎": 0.0023995277729342867, + "堐": 0.001599685181956191, + "堙": 0.03359338882108001, + "甑": 0.11197796273693338, + "堚": 0.007998425909780954, + "堛": 0.035992916594014296, + "堜": 0.28794333275211437, + "堝": 1.0269978868158747, + "堞": 0.05598898136846669, + "堟": 0.33033499007395345, + "堠": 0.013597324046627625, + "堢": 0.22715529583777913, + "堣": 0.20316001810843629, + "堥": 0.16396773115050958, + "堨": 0.001599685181956191, + "堬": 0.1831639533339839, + "報": 0.007998425909780954, + "場": 0.001599685181956191, + "胤": 0.6934635263780089, + "堺": 0.003999212954890477, + "堼": 0.001599685181956191, + "塄": 0.03999212954890477, + "塍": 0.00879826850075905, + "塏": 0.0351930740030362, + "塓": 0.001599685181956191, + "茏": 0.09598111091737146, + "塖": 0.0175965370015181, + "塙": 0.003999212954890477, + "塠": 0.05118992582259811, + "塢": 0.003199370363912382, + "塨": 0.00719858331880286, + "塩": 0.029594175866189534, + "铇": 0.003999212954890477, + "塯": 0.005598898136846668, + "塴": 0.05758866655042288, + "塵": 0.007998425909780954, + "塶": 0.001599685181956191, + "塷": 0.001599685181956191, + "塸": 0.003199370363912382, + "塻": 0.003999212954890477, + "塽": 0.3943223973522011, + "墁": 0.00719858331880286, + "墊": 0.01439716663760572, + "墍": 0.18636332369789624, + "墎": 0.003199370363912382, + "墏": 0.001599685181956191, + "墑": 0.003999212954890477, + "碣": 0.11997638864671432, + "墕": 0.005598898136846668, + "墖": 0.034393231412058106, + "増": 0.0023995277729342867, + "墚": 0.001599685181956191, + "墛": 0.009598111091737147, + "墜": 0.2871434901611363, + "墝": 0.01439716663760572, + "墠": 0.34793152707547154, + "墡": 0.022395592547386673, + "墣": 0.003999212954890477, + "墤": 0.034393231412058106, + "墥": 0.003199370363912382, + "墦": 0.309539082708523, + "墧": 0.013597324046627625, + "黔": 1.088585766321188, + "墬": 0.003199370363912382, + "墭": 0.015197009228583814, + "墮": 0.5622893414576011, + "墰": 0.02719464809325525, + "墳": 0.001599685181956191, + "墵": 0.003199370363912382, + "墶": 0.0023995277729342867, + "墷": 0.009598111091737147, + "墸": 0.00879826850075905, + "墹": 0.003999212954890477, + "墺": 0.011997638864671433, + "墻": 0.0023995277729342867, + "墼": 0.012797481455649528, + "墽": 0.029594175866189534, + "墿": 0.055189138777488586, + "壀": 0.001599685181956191, + "壂": 0.08638299982563431, + "壃": 0.03839244436694859, + "壄": 0.01439716663760572, + "壆": 0.003999212954890477, + "壇": 0.19036253665278674, + "壈": 0.012797481455649528, + "壊": 0.11597717569182385, + "壋": 0.00719858331880286, + "壌": 0.005598898136846668, + "壍": 0.00879826850075905, + "壎": 0.00719858331880286, + "壒": 0.11357764791888957, + "壓": 0.019996064774452385, + "壖": 0.001599685181956191, + "壘": 0.06718677764216002, + "壙": 0.020795907365430483, + "壜": 0.0023995277729342867, + "壬": 0.45431059167555826, + "秧": 0.3383334159837344, + "壷": 0.006398740727824764, + "夁": 0.001599685181956191, + "夂": 0.04239165732183906, + "夆": 0.015197009228583814, + "夈": 0.10158000905421814, + "変": 0.7486526651554973, + "夊": 0.9358158314443717, + "夋": 0.6622696653298631, + "夌": 0.4335146843101278, + "栓": 0.585484776595966, + "夎": 0.4807053971778354, + "徳": 0.019996064774452385, + "恵": 0.006398740727824764, + "惇": 0.09438142573541526, + "懋": 0.11597717569182385, + "楙": 0.05598898136846669, + "覇": 0.0023995277729342867, + "焘": 0.39912145289806966, + "汐": 0.27434600870548675, + "煊": 0.2815445920242896, + "珺": 0.009598111091737147, + "筱": 0.032793546230101916, + "尕": 0.0903822127805248, + "绥": 0.619078165417046, + "锄": 0.4807053971778354, + "夐": 0.20395986069941435, + "豁": 0.9902051276308823, + "檐": 2.3675340692951625, + "稃": 0.019996064774452385, + "夙": 0.17596537001518103, + "夛": 0.15836883301366292, + "濛": 0.12557528678356097, + "戗": 0.08318362946172193, + "夢": 0.001599685181956191, + "桉": 0.08158394427976574, + "妺": 0.004799055545868573, + "娄": 0.2663475827957058, + "庾": 0.10797874978204289, + "挞": 0.11197796273693338, + "榱": 0.02639480550227715, + "烩": 0.7254572300171326, + "梵": 0.6646691931027973, + "棕": 1.3725298861184119, + "榕": 0.3559299529852525, + "氅": 0.05998819432335716, + "礴": 0.12877465714747338, + "鲢": 0.6982625819238775, + "猩": 0.41991736026350013, + "盂": 0.2959417586618953, + "椽": 0.13117418492040767, + "篆": 0.7134595911524613, + "腩": 0.027994490684233344, + "菠": 0.3719268048048144, + "鲆": 0.0903822127805248, + "蒜": 0.7078606930156146, + "螯": 0.15276993487681623, + "衿": 0.04879039804966383, + "袄": 0.5958827302786811, + "惭": 0.8790270074849269, + "诰": 0.8910246463495984, + "蚜": 0.18956269406180865, + "辂": 0.1775650551971372, + "邱": 0.8022421187510298, + "滂": 0.13277387010236386, + "鸨": 0.1463711941489915, + "麴": 0.023995277729342866, + "湫": 0.07838457391585336, + "夨": 0.012797481455649528, + "娱": 1.910024107255692, + "峨": 1.366131145390587, + "潢": 0.2119582866091953, + "痘": 0.24075261988440674, + "牖": 0.06238772209629145, + "熳": 0.029594175866189534, + "罡": 0.25674947170396867, + "慷": 0.9678095350834955, + "菩": 1.574090219044892, + "蝴": 0.535894535955324, + "迥": 0.5558906007297764, + "稊": 0.00719858331880286, + "抠": 0.3111387678904792, + "陡": 1.7092636169201902, + "夬": 0.001599685181956191, + "秾": 0.04239165732183906, + "穠": 0.0023995277729342867, + "砣": 0.06718677764216002, + "苄": 0.09758079609932765, + "搔": 0.4391135824469744, + "蝨": 0.023995277729342866, + "夶": 0.001599685181956191, + "眶": 0.8478331464367812, + "夼": 0.004799055545868573, + "夾": 0.001599685181956191, + "奁": 0.13597324046627624, + "奂": 0.07118599059705051, + "袂": 0.15836883301366292, + "奌": 0.001599685181956191, + "奓": 0.00879826850075905, + "掖": 0.4335146843101278, + "奚": 0.318337351209282, + "奠": 2.160374838231836, + "奡": 0.004799055545868573, + "奤": 0.031193861048145723, + "珈": 0.4535107490845801, + "奭": 0.07118599059705051, + "奮": 0.05758866655042288, + "奯": 0.003999212954890477, + "奱": 0.0023995277729342867, + "奲": 0.34633184189351535, + "婢": 1.2925456270206024, + "驸": 0.6302759616907392, + "宄": 0.07838457391585336, + "掳": 0.5598898136846668, + "她": 112.25390843082081, + "奼": 0.00719858331880286, + "嫣": 1.3669309879815652, + "箎": 0.009598111091737147, + "隨": 0.2255556106558229, + "荼": 0.27274632352353056, + "膻": 0.16636725892344387, + "醍": 0.03359338882108001, + "醐": 0.031193861048145723, + "鲠": 0.044791185094773346, + "嫔": 0.6878646282411621, + "媵": 0.007998425909780954, + "嫱": 0.02639480550227715, + "妅": 0.001599685181956191, + "嫫": 0.02479512032032096, + "妊": 0.5094997304530469, + "娠": 0.46870775831316397, + "媸": 0.06238772209629145, + "蚩": 0.11277780532791146, + "妎": 0.001599685181956191, + "妏": 0.010397953682715242, + "氛": 2.747459300009758, + "妗": 0.24475183283929722, + "妘": 0.00879826850075905, + "诣": 0.5806857210500973, + "妞": 0.38872349921535443, + "妧": 0.013597324046627625, + "妩": 0.17036647187833434, + "妪": 0.05838850914140097, + "妫": 0.18956269406180865, + "妬": 0.0023995277729342867, + "妭": 0.03039401845716763, + "妯": 0.09438142573541526, + "妱": 0.010397953682715242, + "妲": 0.019196222183474294, + "妳": 0.051989768413576214, + "妴": 0.0023995277729342867, + "妶": 0.004799055545868573, + "妸": 0.34473215671155916, + "妽": 0.0527896110045543, + "姁": 0.007998425909780954, + "姂": 0.003999212954890477, + "姃": 0.006398740727824764, + "姄": 0.032793546230101916, + "姇": 0.04879039804966383, + "姈": 0.012797481455649528, + "姉": 0.09358158314443717, + "姌": 0.019996064774452385, + "姎": 0.011197796273693337, + "姏": 0.16716710151442196, + "姒": 0.07518520355194097, + "姖": 0.005598898136846668, + "姗": 0.5015013045432659, + "姘": 0.4647085453582735, + "姙": 0.04239165732183906, + "畹": 0.16396773115050958, + "苌": 0.10477937941813051, + "姛": 0.051989768413576214, + "芋": 0.9102208685330727, + "姞": 0.10477937941813051, + "姟": 0.07518520355194097, + "姠": 0.010397953682715242, + "姡": 0.00879826850075905, + "姢": 0.0367927591849924, + "姤": 0.11037827755497717, + "姦": 0.03839244436694859, + "姩": 0.25754931429494676, + "姪": 0.023995277729342866, + "姫": 0.004799055545868573, + "姭": 0.006398740727824764, + "姮": 0.04639087027672954, + "姯": 0.001599685181956191, + "姱": 0.0367927591849924, + "姳": 0.09198189796248098, + "姴": 0.031993703639123815, + "姵": 0.02479512032032096, + "姷": 0.011197796273693337, + "姸": 0.019996064774452385, + "姹": 0.6742673041945345, + "姺": 0.001599685181956191, + "姽": 0.02319543513836477, + "娀": 0.003199370363912382, + "娂": 0.003999212954890477, + "娉": 0.5758866655042287, + "婀": 0.17356584224224672, + "娊": 0.019196222183474294, + "娍": 0.07918441650683146, + "娑": 0.7238575448351764, + "娓": 0.31993703639123816, + "娖": 0.0023995277729342867, + "娙": 0.001599685181956191, + "娡": 0.13837276823921052, + "娭": 0.001599685181956191, + "娮": 0.004799055545868573, + "娽": 0.001599685181956191, + "娾": 0.016796694410540006, + "娿": 0.09758079609932765, + "婁": 0.2655477402047277, + "婂": 0.4511112213116458, + "婃": 0.33113483266493154, + "婄": 0.2135579717911515, + "婅": 0.18796300887985246, + "婇": 0.11677701828280194, + "婊": 0.5302956378184773, + "婌": 0.001599685181956191, + "婍": 0.003199370363912382, + "婏": 0.2839441197972239, + "婒": 0.001599685181956191, + "婠": 0.004799055545868573, + "婧": 0.06878646282411621, + "婪": 0.4223168880364344, + "婰": 0.001599685181956191, + "婲": 0.4071198788078506, + "婳": 0.012797481455649528, + "婺": 0.15996851819561908, + "婻": 0.001599685181956191, + "婼": 0.021595749956408578, + "婽": 0.0527896110045543, + "媁": 0.007998425909780954, + "媉": 0.003199370363912382, + "媋": 0.005598898136846668, + "妁": 0.023995277729342866, + "媖": 0.011197796273693337, + "媜": 0.001599685181956191, + "媠": 0.009598111091737147, + "媦": 0.001599685181956191, + "媪": 0.032793546230101916, + "媭": 0.001599685181956191, + "媯": 0.00879826850075905, + "媰": 0.011197796273693337, + "媱": 0.004799055545868573, + "媴": 0.053589453595532396, + "媶": 0.001599685181956191, + "媷": 0.031193861048145723, + "媹": 0.004799055545868573, + "媺": 0.04879039804966383, + "媼": 0.003199370363912382, + "媽": 0.001599685181956191, + "嫀": 0.00879826850075905, + "嫃": 0.013597324046627625, + "嫄": 0.016796694410540006, + "嫅": 0.0023995277729342867, + "嫆": 0.0175965370015181, + "嫈": 0.0175965370015181, + "嫍": 0.11517733310084576, + "嫎": 0.005598898136846668, + "嫏": 0.003999212954890477, + "嫑": 0.025594962911299056, + "嫓": 0.011197796273693337, + "嫗": 0.0023995277729342867, + "嫘": 0.2311545087926696, + "嫙": 0.010397953682715242, + "嫛": 0.003999212954890477, + "嫜": 0.00879826850075905, + "嫝": 0.00719858331880286, + "嫞": 0.0023995277729342867, + "嫟": 0.0175965370015181, + "嫠": 0.032793546230101916, + "嫡": 0.47510649904098873, + "嫢": 0.07598504614291908, + "嫤": 0.0527896110045543, + "嫥": 0.006398740727824764, + "嫦": 0.22155639770093247, + "嫧": 0.005598898136846668, + "嫨": 0.03359338882108001, + "嫪": 0.02879433327521144, + "毐": 0.04959024064064192, + "嫭": 0.07278567577900669, + "嫮": 0.003199370363912382, + "嫰": 0.001599685181956191, + "嫳": 0.21435781438212959, + "嫵": 0.015996851819561907, + "嫸": 0.001599685181956191, + "嫼": 0.001599685181956191, + "嫾": 0.02319543513836477, + "嫿": 0.007998425909780954, + "嬀": 0.02319543513836477, + "嬁": 0.0367927591849924, + "嬋": 0.001599685181956191, + "嬎": 0.003199370363912382, + "嬖": 0.11837670346475813, + "嬗": 0.08158394427976574, + "嬚": 0.003199370363912382, + "嬝": 0.00719858331880286, + "嬠": 0.001599685181956191, + "嬢": 0.001599685181956191, + "嬤": 0.001599685181956191, + "嬧": 0.007998425909780954, + "嬨": 0.11437749050986766, + "嬩": 0.5294957952274992, + "嬪": 0.8150396002066793, + "嬫": 0.6222775357809583, + "嬬": 0.2815445920242896, + "嬭": 0.24155246247538484, + "嬮": 0.2671474253866839, + "嬲": 0.0367927591849924, + "嬴": 0.06718677764216002, + "嬶": 0.3727266473957925, + "嬷": 0.35832948075818677, + "嬾": 0.003199370363912382, + "孀": 0.13357371269334195, + "孃": 0.006398740727824764, + "孆": 0.001599685181956191, + "孈": 0.004799055545868573, + "孊": 0.001599685181956191, + "孎": 0.023995277729342866, + "鹑": 0.15836883301366292, + "昶": 0.019996064774452385, + "洵": 0.06238772209629145, + "釦": 0.0527896110045543, + "澈": 0.6022814710065059, + "痫": 0.16796694410540006, + "筠": 0.07838457391585336, + "钰": 0.2319543513836477, + "孓": 0.005598898136846668, + "晁": 0.29034286052504865, + "贲": 0.13917261083018861, + "甾": 0.13517339787529814, + "孖": 0.004799055545868573, + "邈": 0.08238378687074384, + "抿": 0.34313247152960297, + "膑": 0.05598898136846669, + "诒": 0.09278174055345909, + "璿": 0.00879826850075905, + "孛": 0.20156033292648007, + "汲": 0.4631088601763173, + "孞": 0.004799055545868573, + "舫": 0.08078410168878765, + "崮": 0.0735855183699848, + "轲": 0.07678488873389717, + "鳏": 0.044791185094773346, + "孥": 0.023995277729342866, + "孨": 0.1247754441925829, + "孪": 0.13117418492040767, + "孫": 0.0023995277729342867, + "孬": 0.07118599059705051, + "孭": 0.003999212954890477, + "孮": 0.003999212954890477, + "孰": 0.42951547135523727, + "孱": 0.07118599059705051, + "孲": 0.02639480550227715, + "孳": 0.3551301103942744, + "矻": 0.006398740727824764, + "孴": 0.3495312122574278, + "學": 0.004799055545868573, + "孾": 0.07918441650683146, + "宀": 0.17196615706029053, + "洱": 0.17356584224224672, + "毋": 0.6014816284155278, + "缬": 0.09758079609932765, + "蒗": 0.021595749956408578, + "谧": 0.1431718237850791, + "邕": 0.11037827755497717, + "阐": 2.5410999115374096, + "恬": 0.24795120320320962, + "渖": 0.04159181473086097, + "珂": 0.8430340908909126, + "瓿": 0.055189138777488586, + "惬": 0.25914899947690295, + "宊": 0.0175965370015181, + "裴": 0.7582507762472346, + "杲": 0.06798662023313812, + "碁": 0.0735855183699848, + "宐": 0.005598898136846668, + "宑": 0.011997638864671433, + "宓": 0.1263751293745391, + "砻": 0.15037040710388194, + "宔": 0.005598898136846668, + "宕": 0.4039205084439383, + "嵬": 0.0527896110045543, + "澶": 2.804248123969203, + "铣": 0.27514585129646485, + "藕": 3.8336455385580117, + "蜒": 0.7966432206141831, + "砧": 0.14877072192192578, + "実": 0.001599685181956191, + "埶": 0.00719858331880286, + "煽": 0.5838850914140098, + "磬": 0.1055792220091086, + "宩": 0.001599685181956191, + "觐": 0.2583491568859248, + "宬": 0.011197796273693337, + "宭": 0.003199370363912382, + "宮": 0.013597324046627625, + "宱": 0.003199370363912382, + "臊": 0.23515372174756008, + "酖": 0.011997638864671433, + "鸩": 0.16716710151442196, + "旰": 0.06878646282411621, + "宷": 0.003199370363912382, + "掬": 0.159168675604641, + "敞": 1.0853863959572756, + "餞": 0.0023995277729342867, + "饯": 0.217557184746042, + "寀": 0.02879433327521144, + "寃": 0.00719858331880286, + "柚": 0.1983609625625677, + "寈": 0.004799055545868573, + "浠": 4.302353296871176, + "铀": 0.7838457391585336, + "寎": 0.0023995277729342867, + "寑": 0.004799055545868573, + "暄": 0.21275812920017342, + "疟": 0.27674553647842104, + "痹": 0.451911063902624, + "碜": 0.07118599059705051, + "秕": 0.032793546230101916, + "螿": 0.007998425909780954, + "寔": 0.09598111091737146, + "寕": 0.02719464809325525, + "寖": 0.011197796273693337, + "寗": 0.019196222183474294, + "寘": 0.04239165732183906, + "寙": 0.0183963795924962, + "寚": 0.11437749050986766, + "寜": 0.021595749956408578, + "苫": 0.22315608288288863, + "寠": 0.001599685181956191, + "寣": 0.007998425909780954, + "寤": 0.12877465714747338, + "寧": 0.011997638864671433, + "寫": 0.02319543513836477, + "寬": 0.001599685181956191, + "寯": 0.003999212954890477, + "寱": 0.001599685181956191, + "寲": 0.07678488873389717, + "寳": 0.037592601775970486, + "寶": 0.023995277729342866, + "寷": 0.02719464809325525, + "醌": 0.30154065679874203, + "茦": 0.0023995277729342867, + "疣": 0.15996851819561908, + "瘢": 0.1775650551971372, + "绎": 0.5326951655914116, + "寽": 0.00719858331880286, + "対": 0.003199370363912382, + "羯": 0.1911623792437648, + "豨": 0.022395592547386673, + "诩": 0.16636725892344387, + "専": 0.004799055545868573, + "尃": 0.023995277729342866, + "尅": 0.011197796273693337, + "將": 0.001599685181956191, + "專": 0.005598898136846668, + "巩": 1.9492163942136187, + "璩": 0.025594962911299056, + "洧": 0.013597324046627625, + "尋": 0.005598898136846668, + "尌": 0.0735855183699848, + "導": 0.001599685181956191, + "痲": 0.019196222183474294, + "鳕": 0.1271749719655172, + "榄": 0.5686880821854259, + "鹭": 0.17436568483322482, + "蚂": 0.6430734431463888, + "蜻": 0.13917261083018861, + "蜓": 0.15197009228583816, + "蝌": 0.34713168448449344, + "蚪": 0.2855438049791801, + "蟊": 0.03999212954890477, + "馒": 0.6678685634667098, + "驿": 1.1797678216926908, + "黠": 0.1399724534211667, + "尐": 0.012797481455649528, + "尓": 0.029594175866189534, + "尗": 0.011997638864671433, + "螨": 0.27274632352353056, + "尙": 0.006398740727824764, + "莒": 0.0903822127805248, + "尛": 0.001599685181956191, + "尞": 0.011997638864671433, + "尟": 0.006398740727824764, + "尡": 0.0023995277729342867, + "尢": 0.015996851819561907, + "尣": 0.001599685181956191, + "尥": 0.029594175866189534, + "尨": 0.011997638864671433, + "尩": 0.001599685181956191, + "尪": 0.0183963795924962, + "尭": 0.001599685181956191, + "尮": 0.007998425909780954, + "尯": 0.217557184746042, + "尰": 0.04719071286770763, + "尳": 0.0023995277729342867, + "尵": 0.001599685181956191, + "尶": 0.004799055545868573, + "毗": 0.7494525077464754, + "黙": 0.0023995277729342867, + "蠖": 0.09518126832639337, + "尻": 0.06318756468726955, + "炜": 0.06638693505118193, + "潴": 0.06958630541509431, + "蹐": 0.023995277729342866, + "屃": 0.00879826850075905, + "屆": 0.00719858331880286, + "屇": 0.0023995277729342867, + "柘": 0.0735855183699848, + "屌": 0.04079197213988287, + "屍": 0.021595749956408578, + "蚵": 0.016796694410540006, + "蜋": 0.009598111091737147, + "屐": 0.06718677764216002, + "屘": 0.0023995277729342867, + "屙": 0.07278567577900669, + "屜": 0.007998425909780954, + "屝": 0.001599685181956191, + "屟": 0.0023995277729342867, + "屡": 2.033199866266319, + "舄": 0.015197009228583814, + "屪": 0.004799055545868573, + "屫": 0.003999212954890477, + "屬": 0.010397953682715242, + "屭": 0.015197009228583814, + "渟": 0.019196222183474294, + "旮": 0.05598898136846669, + "旯": 0.05758866655042288, + "楂": 0.40632003621687257, + "殽": 0.006398740727824764, + "湋": 0.0023995277729342867, + "榉": 0.05758866655042288, + "砠": 0.0023995277729342867, + "柿": 0.5558906007297764, + "竽": 0.07758473132487526, + "蔌": 0.004799055545868573, + "棁": 0.027994490684233344, + "蔬": 2.136379560502493, + "澨": 0.0023995277729342867, + "魈": 0.04079197213988287, + "屳": 0.013597324046627625, + "屸": 0.04559102768575144, + "屺": 0.015197009228583814, + "屻": 0.05998819432335716, + "屼": 2.2395592547386673, + "屽": 3.3049495859214906, + "屾": 2.4243228932546073, + "岀": 0.9582114239917584, + "虵": 0.0023995277729342867, + "蹉": 0.04639087027672954, + "跎": 0.08558315723465622, + "聿": 0.08718284241661241, + "岃": 1.4789089507184987, + "岄": 0.7526518781103879, + "岅": 0.001599685181956191, + "岈": 0.005598898136846668, + "岋": 0.2607486846588591, + "岌": 0.13197402751138576, + "岍": 0.004799055545868573, + "岕": 0.003199370363912382, + "岘": 0.24475183283929722, + "岙": 0.007998425909780954, + "岜": 0.0351930740030362, + "岞": 0.0023995277729342867, + "岢": 0.1247754441925829, + "岣": 0.1271749719655172, + "岤": 0.003999212954890477, + "岧": 0.006398740727824764, + "蔷": 0.32873530489199726, + "岪": 0.0351930740030362, + "岬": 0.2167573421550639, + "岴": 0.001599685181956191, + "岵": 0.035992916594014296, + "岶": 0.0023995277729342867, + "岺": 0.0023995277729342867, + "岼": 0.005598898136846668, + "岽": 0.0175965370015181, + "岾": 0.007998425909780954, + "岿": 0.02639480550227715, + "峁": 0.22475576806484485, + "峂": 0.0023995277729342867, + "峄": 0.04399134250379526, + "峅": 0.003999212954890477, + "峆": 0.003199370363912382, + "峇": 0.1263751293745391, + "峍": 0.001599685181956191, + "峎": 0.001599685181956191, + "峖": 0.0023995277729342867, + "峗": 0.003199370363912382, + "峘": 0.005598898136846668, + "峚": 0.003199370363912382, + "峛": 0.003999212954890477, + "峜": 0.0023995277729342867, + "峝": 0.003199370363912382, + "峞": 0.21035860142723914, + "峟": 0.001599685181956191, + "峣": 0.2279551384287572, + "嵋": 1.0565920626820642, + "峩": 0.0023995277729342867, + "峫": 0.003999212954890477, + "峯": 0.005598898136846668, + "峱": 0.00719858331880286, + "峴": 0.001599685181956191, + "峵": 0.003999212954890477, + "島": 0.001599685181956191, + "峸": 0.006398740727824764, + "峹": 0.003199370363912382, + "峺": 0.007998425909780954, + "彫": 0.02719464809325525, + "峼": 0.0023995277729342867, + "崁": 0.00879826850075905, + "崂": 0.1831639533339839, + "崃": 0.12797481455649526, + "崄": 0.25994884206788105, + "崅": 0.006398740727824764, + "崆": 0.21995671251897628, + "鳂": 0.00719858331880286, + "吰": 0.0023995277729342867, + "谹": 0.003999212954890477, + "崈": 0.04639087027672954, + "崉": 0.03359338882108001, + "崊": 0.004799055545868573, + "崋": 0.07918441650683146, + "崌": 0.019196222183474294, + "崍": 0.021595749956408578, + "岖": 0.2319543513836477, + "嵚": 0.00719858331880286, + "崏": 0.037592601775970486, + "崐": 0.07438536096096289, + "崑": 0.015996851819561907, + "崒": 0.011197796273693337, + "崓": 0.003199370363912382, + "洙": 0.032793546230101916, + "瀚": 0.19996064774452388, + "頑": 0.0023995277729342867, + "颢": 0.053589453595532396, + "崕": 0.019196222183474294, + "崗": 0.0175965370015181, + "崘": 0.0023995277729342867, + "崙": 0.005598898136846668, + "崚": 0.24155246247538484, + "嶒": 0.009598111091737147, + "崜": 0.00719858331880286, + "崞": 0.019196222183474294, + "崟": 0.0367927591849924, + "崠": 0.019196222183474294, + "崡": 0.055189138777488586, + "崤": 0.05838850914140097, + "崥": 0.003999212954890477, + "崦": 0.0175965370015181, + "崧": 0.11997638864671432, + "崨": 0.001599685181956191, + "崪": 0.009598111091737147, + "崬": 0.001599685181956191, + "崭": 0.5374942211372802, + "崯": 0.010397953682715242, + "崰": 0.023995277729342866, + "崱": 0.02719464809325525, + "崲": 0.02719464809325525, + "崳": 0.021595749956408578, + "崴": 0.08558315723465622, + "崸": 0.016796694410540006, + "崹": 0.001599685181956191, + "崼": 0.05118992582259811, + "嵁": 0.08478331464367812, + "嵂": 0.019196222183474294, + "嵃": 0.006398740727824764, + "嵄": 0.0175965370015181, + "嵅": 0.001599685181956191, + "嵆": 0.04239165732183906, + "嵇": 0.031193861048145723, + "嵈": 0.13437355528432005, + "嵉": 0.006398740727824764, + "嵊": 0.11517733310084576, + "镶": 0.9982035535406631, + "嵍": 0.003199370363912382, + "嵎": 0.021595749956408578, + "嵏": 0.009598111091737147, + "嵐": 0.005598898136846668, + "嵑": 0.00719858331880286, + "嵒": 0.023995277729342866, + "嵓": 0.0023995277729342867, + "嵕": 0.007998425909780954, + "嵖": 0.003199370363912382, + "嵗": 0.001599685181956191, + "嵙": 0.003999212954890477, + "嵛": 0.02719464809325525, + "嵜": 0.001599685181956191, + "嵝": 0.031193861048145723, + "嵟": 0.003199370363912382, + "嵡": 0.016796694410540006, + "嵦": 0.003199370363912382, + "嵧": 0.005598898136846668, + "嵨": 0.0023995277729342867, + "嵪": 0.003999212954890477, + "嵫": 0.023995277729342866, + "嵮": 0.016796694410540006, + "嵯": 0.055189138777488586, + "嵴": 0.06718677764216002, + "嵵": 0.005598898136846668, + "嵶": 0.003199370363912382, + "嵷": 0.003999212954890477, + "嵸": 0.010397953682715242, + "嵹": 0.0023995277729342867, + "嵺": 0.015197009228583814, + "嵻": 0.0023995277729342867, + "嵽": 0.0023995277729342867, + "嵾": 0.001599685181956191, + "嵿": 0.006398740727824764, + "嶀": 0.0023995277729342867, + "嶁": 0.015197009228583814, + "嶃": 0.03999212954890477, + "嶄": 0.5342948507733678, + "嶅": 1.080587340411407, + "嶆": 0.8566314149375404, + "嶇": 0.4623090175853392, + "嶈": 0.6822657301043155, + "嶉": 0.20635938847234864, + "嶊": 0.003999212954890477, + "嶎": 0.004799055545868573, + "嶏": 0.1399724534211667, + "嶐": 0.003199370363912382, + "嶓": 0.003199370363912382, + "嶔": 0.003199370363912382, + "嶖": 0.001599685181956191, + "嶛": 0.010397953682715242, + "嶜": 0.003999212954890477, + "嶝": 0.003999212954890477, + "嶞": 0.001599685181956191, + "嶟": 0.0023995277729342867, + "嶡": 0.00719858331880286, + "嶫": 0.005598898136846668, + "嶯": 0.20715923106332673, + "嶲": 0.001599685181956191, + "嶳": 0.003999212954890477, + "嶽": 0.007998425909780954, + "巂": 0.016796694410540006, + "巈": 0.019996064774452385, + "巉": 0.01439716663760572, + "矗": 0.6766668319674688, + "巎": 0.004799055545868573, + "巔": 0.003999212954890477, + "巖": 0.007998425909780954, + "巙": 0.003199370363912382, + "巛": 0.001599685181956191, + "巜": 0.009598111091737147, + "楝": 0.21835702733702006, + "芎": 0.07838457391585336, + "巟": 0.015197009228583814, + "辎": 0.1615682033775753, + "挈": 0.10957843496399909, + "绌": 0.3127384530724353, + "胳": 1.1773682939197567, + "萦": 0.20475970329039245, + "蓓": 0.04799055545868573, + "炊": 0.5694879247764041, + "砰": 1.0197993034970718, + "蟒": 0.42791578617328113, + "巰": 0.005598898136846668, + "淖": 0.37512617516872676, + "巵": 0.003199370363912382, + "巶": 0.02639480550227715, + "巹": 0.006398740727824764, + "巺": 0.003999212954890477, + "巻": 0.043191499912817156, + "巼": 0.019996064774452385, + "巽": 0.1607683607865972, + "帼": 0.09758079609932765, + "巿": 0.05918835173237907, + "帀": 0.3007408142077639, + "廛": 0.043191499912817156, + "麇": 0.029594175866189534, + "樐": 0.00879826850075905, + "粝": 0.06398740727824763, + "颿": 0.0023995277729342867, + "樯": 0.06078803691433526, + "帇": 0.14237198119410102, + "帉": 0.04959024064064192, + "綦": 0.03999212954890477, + "帍": 0.00879826850075905, + "帎": 0.00719858331880286, + "帏": 0.04719071286770763, + "箔": 0.5023011471342439, + "帓": 0.04559102768575144, + "揩": 0.43831373985599636, + "邢": 1.2845472011108214, + "帗": 0.001599685181956191, + "辇": 0.6406739153734544, + "帞": 0.0023995277729342867, + "帠": 0.001599685181956191, + "帡": 0.004799055545868573, + "帤": 0.021595749956408578, + "绦": 0.22635545324680104, + "帨": 0.001599685181956191, + "師": 0.10078016646324003, + "帬": 0.005598898136846668, + "篾": 0.11677701828280194, + "帯": 0.001599685181956191, + "帰": 0.011997638864671433, + "帲": 0.0023995277729342867, + "帳": 0.0023995277729342867, + "帴": 0.11197796273693338, + "帶": 0.011997638864671433, + "帹": 0.0367927591849924, + "帺": 0.04959024064064192, + "帻": 0.23995277729342865, + "缨": 0.2711466383415744, + "帾": 0.010397953682715242, + "帿": 0.09438142573541526, + "幃": 0.003999212954890477, + "幆": 0.010397953682715242, + "幇": 0.23755324952049436, + "幉": 0.003999212954890477, + "幊": 0.0023995277729342867, + "幌": 0.48550445272370396, + "幎": 0.001599685181956191, + "幏": 0.010397953682715242, + "幑": 0.001599685181956191, + "幒": 0.007998425909780954, + "幓": 0.3391332585747125, + "幖": 0.003199370363912382, + "幗": 0.010397953682715242, + "幙": 0.13117418492040767, + "幞": 0.032793546230101916, + "椰": 0.6398740727824763, + "涸": 0.2647478976137496, + "澹": 0.5646888692305354, + "辜": 1.3773289416642807, + "籴": 0.07438536096096289, + "湮": 0.18236411074300576, + "溲": 0.0367927591849924, + "卲": 0.0023995277729342867, + "幵": 0.003999212954890477, + "徧": 0.004799055545868573, + "辔": 0.24075261988440674, + "幷": 0.044791185094773346, + "笞": 0.1775650551971372, + "黾": 0.08398347205270003, + "幹": 0.009598111091737147, + "鹨": 0.035992916594014296, + "麽": 0.38872349921535443, + "篁": 0.031193861048145723, + "邃": 0.20875891624528292, + "诙": 0.24475183283929722, + "幾": 0.0183963795924962, + "旃": 0.10637906460008671, + "藿": 0.0527896110045543, + "袤": 0.09358158314443717, + "譬": 0.8014422761600517, + "庀": 0.08798268500759052, + "翟": 0.2487510457941877, + "庅": 0.0023995277729342867, + "暨": 0.49590240640641925, + "庉": 0.001599685181956191, + "笫": 0.07838457391585336, + "庋": 0.18236411074300576, + "庑": 0.45750996203947064, + "谩": 0.3087392401175449, + "庘": 0.019196222183474294, + "庛": 0.031993703639123815, + "庝": 0.5230970544996745, + "庠": 0.06638693505118193, + "庡": 0.5206975267267402, + "庢": 0.6230773783719364, + "庣": 0.27594569388744294, + "庤": 0.2119582866091953, + "絜": 0.023995277729342866, + "庨": 0.1615682033775753, + "庯": 0.1959614347896334, + "庳": 0.003999212954890477, + "祐": 0.5366943785463021, + "碩": 0.0023995277729342867, + "皦": 0.031193861048145723, + "庹": 0.43431452690110584, + "庼": 0.001599685181956191, + "廁": 0.001599685181956191, + "廂": 0.001599685181956191, + "廄": 0.0023995277729342867, + "廆": 0.020795907365430483, + "懦": 0.49190319345152866, + "廋": 0.00879826850075905, + "廌": 0.004799055545868573, + "廒": 0.013597324046627625, + "廕": 0.003199370363912382, + "锴": 0.023995277729342866, + "廗": 0.0023995277729342867, + "廙": 0.001599685181956191, + "廚": 0.006398740727824764, + "廝": 0.001599685181956191, + "廠": 0.001599685181956191, + "廡": 0.001599685181956191, + "廣": 0.001599685181956191, + "廨": 0.06078803691433526, + "廬": 0.001599685181956191, + "廭": 0.001599685181956191, + "廱": 0.003999212954890477, + "廲": 0.007998425909780954, + "廴": 0.0367927591849924, + "廵": 0.0175965370015181, + "搁": 1.4861075340373016, + "跂": 0.01439716663760572, + "廸": 0.0023995277729342867, + "瓴": 0.04079197213988287, + "廽": 0.001599685181956191, + "廾": 0.010397953682715242, + "柙": 0.034393231412058106, + "涮": 0.16396773115050958, + "衩": 0.08318362946172193, + "裆": 0.16956662928735625, + "镰": 0.33193467525590964, + "阖": 0.318337351209282, + "弁": 0.1967612773806115, + "馀": 0.12157607382867051, + "曳": 0.4415131102199087, + "绉": 0.7110600633795269, + "弇": 0.019196222183474294, + "弉": 0.003199370363912382, + "羸": 0.04639087027672954, + "弌": 0.001599685181956191, + "弍": 0.001599685181956191, + "弎": 0.0023995277729342867, + "弑": 0.13917261083018861, + "弒": 0.005598898136846668, + "弔": 0.0023995277729342867, + "弖": 0.003999212954890477, + "弝": 0.04159181473086097, + "荪": 0.2799449068423334, + "昀": 0.05118992582259811, + "浜": 5.684481294081325, + "挢": 0.02879433327521144, + "骞": 0.8054414891149422, + "燊": 0.015197009228583814, + "珏": 0.00719858331880286, + "璁": 0.921418664806766, + "皙": 0.09518126832639337, + "缙": 0.3503310548484058, + "郁": 3.385733687610278, + "翮": 0.022395592547386673, + "弡": 0.02639480550227715, + "弢": 0.03839244436694859, + "弤": 0.005598898136846668, + "弨": 0.001599685181956191, + "弪": 0.001599685181956191, + "弬": 0.09678095350834955, + "弰": 0.019996064774452385, + "徘": 0.5142987859989154, + "弳": 0.010397953682715242, + "弴": 0.004799055545868573, + "張": 0.31993703639123816, + "弶": 0.04799055545868573, + "強": 0.03919228695792668, + "弸": 0.02719464809325525, + "铰": 0.17276599965126863, + "铗": 0.010397953682715242, + "甙": 0.08478331464367812, + "浉": 0.11597717569182385, + "聒": 0.09838063869030575, + "弻": 0.034393231412058106, + "弽": 0.20236017551745816, + "彁": 0.09438142573541526, + "彂": 0.1831639533339839, + "彃": 0.011997638864671433, + "彅": 0.00719858331880286, + "彇": 0.08478331464367812, + "彈": 0.08398347205270003, + "彉": 0.06078803691433526, + "彌": 0.020795907365430483, + "彍": 0.019196222183474294, + "彎": 0.001599685181956191, + "柢": 0.06638693505118193, + "彔": 0.020795907365430483, + "彖": 0.016796694410540006, + "汜": 0.09358158314443717, + "彘": 0.09198189796248098, + "彙": 0.031193861048145723, + "彛": 0.11757686087378004, + "彜": 0.11277780532791146, + "彞": 0.023995277729342866, + "彟": 0.0527896110045543, + "槁": 0.08638299982563431, + "憔": 0.3383334159837344, + "悴": 0.40152098067100395, + "彣": 0.003199370363912382, + "彤": 0.3807250733055735, + "彧": 0.32713561971004107, + "彨": 0.13197402751138576, + "珮": 0.27594569388744294, + "畈": 0.02879433327521144, + "彮": 0.035992916594014296, + "彯": 0.0023995277729342867, + "瘅": 0.004799055545868573, + "彲": 0.4479118509477335, + "彳": 0.013597324046627625, + "彴": 0.031193861048145723, + "彵": 0.001599685181956191, + "彶": 0.021595749956408578, + "彷": 0.22235624029191056, + "徉": 0.06558709246020383, + "彸": 0.05039008323162002, + "彺": 0.011197796273693337, + "彽": 0.0023995277729342867, + "彾": 0.023995277729342866, + "彿": 0.022395592547386673, + "徂": 0.009598111091737147, + "徃": 0.14877072192192578, + "徆": 0.012797481455649528, + "狡": 0.7622499892021251, + "後": 0.9670096924925174, + "徍": 0.013597324046627625, + "徎": 0.012797481455649528, + "莘": 0.10158000905421814, + "畲": 0.42791578617328113, + "瑄": 0.031993703639123815, + "徑": 0.00719858331880286, + "従": 0.001599685181956191, + "徜": 0.05838850914140097, + "徝": 0.001599685181956191, + "從": 0.003999212954890477, + "徢": 0.006398740727824764, + "復": 0.001599685181956191, + "徬": 0.032793546230101916, + "徭": 0.3575296381672087, + "醺": 0.16476757374148768, + "徯": 0.00719858331880286, + "徰": 0.003999212954890477, + "迴": 0.011197796273693337, + "輶": 0.004799055545868573, + "徺": 0.003199370363912382, + "徼": 0.021595749956408578, + "忁": 0.0023995277729342867, + "搅": 1.5109026543576225, + "旌": 0.4455123231747992, + "忐": 0.18876285147083052, + "忑": 0.1775650551971372, + "掏": 1.9364189127579694, + "殒": 0.09678095350834955, + "湃": 0.31673766602732584, + "恍": 1.2869467288837557, + "惚": 0.393522554761223, + "脥": 0.011997638864671433, + "绠": 0.2647478976137496, + "忄": 0.003199370363912382, + "忇": 0.001599685181956191, + "忈": 0.003199370363912382, + "忊": 0.010397953682715242, + "忋": 0.05039008323162002, + "忎": 0.27754537906939913, + "忏": 0.2487510457941877, + "忓": 0.41991736026350013, + "忔": 0.3231364067551506, + "忕": 0.159168675604641, + "忖": 0.35832948075818677, + "忚": 0.17196615706029053, + "忛": 0.11117812014595528, + "忝": 0.07598504614291908, + "忞": 0.007998425909780954, + "忡": 0.3919228695792668, + "忣": 0.001599685181956191, + "忤": 0.13517339787529814, + "忥": 0.0903822127805248, + "忦": 0.003999212954890477, + "悒": 0.04159181473086097, + "懑": 0.12397560160160481, + "谗": 0.17276599965126863, + "忪": 0.04399134250379526, + "撕": 1.7740508667894157, + "忬": 0.005598898136846668, + "忭": 0.010397953682715242, + "忲": 0.0023995277729342867, + "忶": 0.001599685181956191, + "忷": 0.001599685181956191, + "忸": 0.10637906460008671, + "怩": 0.10957843496399909, + "忹": 0.001599685181956191, + "忼": 0.0023995277729342867, + "鸷": 0.07198583318802859, + "韫": 0.06318756468726955, + "纡": 0.07918441650683146, + "隼": 0.19996064774452388, + "怂": 0.30793939752656674, + "恿": 0.2279551384287572, + "怃": 0.011197796273693337, + "怄": 0.07998425909780954, + "怅": 0.30154065679874203, + "怈": 0.011997638864671433, + "怊": 0.001599685181956191, + "怍": 0.016796694410540006, + "怏": 0.16796694410540006, + "猊": 0.06078803691433526, + "睁": 2.714665753779656, + "怗": 0.003999212954890477, + "怘": 0.00879826850075905, + "怙": 0.04559102768575144, + "怛": 0.055189138777488586, + "湍": 0.49190319345152866, + "怞": 0.0023995277729342867, + "怟": 0.0023995277729342867, + "怢": 0.0023995277729342867, + "怣": 0.003999212954890477, + "怦": 0.7918441650683146, + "赂": 0.644673128328345, + "怼": 0.1263751293745391, + "讶": 1.0693895441377137, + "怫": 0.04639087027672954, + "怬": 0.003199370363912382, + "怭": 0.001599685181956191, + "怱": 0.010397953682715242, + "怲": 0.0023995277729342867, + "怳": 0.0023995277729342867, + "怶": 0.001599685181956191, + "怹": 0.001599685181956191, + "怿": 0.010397953682715242, + "恁": 0.3063397123446106, + "恄": 0.001599685181956191, + "恅": 0.010397953682715242, + "恆": 0.003199370363912382, + "恇": 0.00719858331880286, + "恈": 0.003999212954890477, + "恉": 0.001599685181956191, + "恊": 0.012797481455649528, + "恎": 0.003199370363912382, + "恓": 0.02319543513836477, + "恔": 0.0023995277729342867, + "恛": 0.003199370363912382, + "恜": 0.003999212954890477, + "恞": 0.001599685181956191, + "恠": 0.004799055545868573, + "恑": 0.0023995277729342867, + "憰": 0.004799055545868573, + "睢": 0.19276206442572102, + "恥": 0.0023995277729342867, + "恦": 0.001599685181956191, + "恧": 0.003999212954890477, + "恫": 0.10158000905421814, + "猲": 0.03039401845716763, + "瘝": 0.0367927591849924, + "瞋": 0.02639480550227715, + "烽": 0.33033499007395345, + "恲": 0.010397953682715242, + "恴": 0.0023995277729342867, + "詈": 0.1271749719655172, + "恹": 0.03839244436694859, + "恽": 0.05998819432335716, + "悀": 0.006398740727824764, + "悁": 0.0023995277729342867, + "悂": 0.003999212954890477, + "悃": 0.019996064774452385, + "愊": 0.0023995277729342867, + "悅": 0.006398740727824764, + "悆": 0.08798268500759052, + "悇": 0.07758473132487526, + "悈": 0.003199370363912382, + "窣": 0.06718677764216002, + "悊": 0.17196615706029053, + "悎": 0.06958630541509431, + "悏": 0.009598111091737147, + "悐": 0.009598111091737147, + "悑": 0.003199370363912382, + "悓": 0.3911230269882887, + "悕": 0.09838063869030575, + "悗": 0.3399331011656906, + "悘": 0.003199370363912382, + "悙": 0.006398740727824764, + "悚": 0.2711466383415744, + "悜": 0.1751655274242029, + "悝": 0.03919228695792668, + "悡": 0.015197009228583814, + "悥": 0.019196222183474294, + "悧": 0.10158000905421814, + "悪": 0.0023995277729342867, + "悫": 0.005598898136846668, + "狟": 0.0023995277729342867, + "抉": 0.5023011471342439, + "鞀": 0.0023995277729342867, + "鼗": 0.04639087027672954, + "悭": 0.0351930740030362, + "悰": 0.019196222183474294, + "悳": 0.00719858331880286, + "悵": 0.001599685181956191, + "悶": 0.08958237018954669, + "悷": 0.00719858331880286, + "悹": 0.003199370363912382, + "悺": 0.007998425909780954, + "悻": 0.27194648093255247, + "悽": 0.0183963795924962, + "悾": 0.007998425909780954, + "悿": 0.0023995277729342867, + "惀": 0.06558709246020383, + "惁": 0.019196222183474294, + "惂": 0.08398347205270003, + "惃": 0.003199370363912382, + "惄": 0.003199370363912382, + "愫": 0.06638693505118193, + "忺": 0.0023995277729342867, + "惆": 0.15037040710388194, + "惈": 0.01439716663760572, + "惉": 0.1447715089670353, + "褫": 0.06558709246020383, + "愕": 0.8278370816623288, + "蜇": 0.09278174055345909, + "惌": 0.025594962911299056, + "惎": 0.0023995277729342867, + "惏": 0.001599685181956191, + "惐": 0.0023995277729342867, + "惓": 0.006398740727824764, + "惔": 0.0175965370015181, + "惖": 0.003999212954890477, + "惙": 0.004799055545868573, + "惝": 0.010397953682715242, + "惞": 0.005598898136846668, + "惡": 0.004799055545868573, + "惢": 0.005598898136846668, + "惣": 0.013597324046627625, + "惤": 0.07118599059705051, + "惥": 0.011197796273693337, + "惦": 0.3359338882108001, + "毖": 0.06558709246020383, + "惪": 0.001599685181956191, + "椭": 0.8534320445736279, + "惲": 0.003999212954890477, + "惴": 0.38872349921535443, + "惸": 0.006398740727824764, + "惽": 0.007998425909780954, + "愃": 0.001599685181956191, + "愅": 0.003999212954890477, + "愇": 0.001599685181956191, + "愌": 0.006398740727824764, + "愍": 0.04719071286770763, + "愒": 0.021595749956408578, + "愔": 0.012797481455649528, + "愖": 0.001599685181956191, + "愘": 0.011197796273693337, + "愙": 0.001599685181956191, + "愛": 0.015197009228583814, + "愜": 0.004799055545868573, + "愝": 0.001599685181956191, + "愞": 0.007998425909780954, + "愠": 0.1263751293745391, + "愢": 0.0023995277729342867, + "愦": 0.03999212954890477, + "愨": 0.009598111091737147, + "愩": 0.06078803691433526, + "愪": 0.2703467957505963, + "愬": 0.41911751767252203, + "愭": 0.318337351209282, + "愮": 0.1623680459685534, + "愯": 0.11197796273693338, + "愰": 0.10957843496399909, + "愱": 0.006398740727824764, + "愲": 0.001599685181956191, + "愴": 0.0023995277729342867, + "愶": 0.19916080515354578, + "愻": 0.0023995277729342867, + "愽": 0.0023995277729342867, + "愾": 0.003199370363912382, + "慀": 0.001599685181956191, + "慁": 0.003199370363912382, + "慂": 0.010397953682715242, + "慅": 0.001599685181956191, + "慆": 0.001599685181956191, + "慇": 0.00719858331880286, + "瞿": 0.5646888692305354, + "慊": 0.10957843496399909, + "慴": 0.009598111091737147, + "慓": 0.016796694410540006, + "慘": 0.0023995277729342867, + "慛": 0.1767652126061591, + "慜": 0.001599685181956191, + "慝": 0.01439716663760572, + "慥": 0.0023995277729342867, + "慫": 0.001599685181956191, + "慱": 0.001599685181956191, + "慸": 0.00879826850075905, + "慹": 0.004799055545868573, + "慺": 0.003199370363912382, + "慾": 0.005598898136846668, + "憉": 0.02719464809325525, + "憋": 0.8262373964803726, + "憐": 0.003199370363912382, + "憖": 0.015996851819561907, + "憗": 0.005598898136846668, + "憚": 0.009598111091737147, + "憜": 0.04959024064064192, + "憝": 0.005598898136846668, + "憞": 0.0175965370015181, + "憟": 0.006398740727824764, + "憡": 0.07438536096096289, + "憦": 0.001599685181956191, + "憬": 0.2151576569731077, + "憪": 0.003999212954890477, + "憯": 0.02319543513836477, + "憲": 0.004799055545868573, + "憳": 0.18876285147083052, + "憶": 0.0023995277729342867, + "憸": 0.005598898136846668, + "憺": 0.006398740727824764, + "憻": 0.001599685181956191, + "憿": 0.13197402751138576, + "懅": 0.003199370363912382, + "懆": 0.02319543513836477, + "懇": 0.011197796273693337, + "懌": 0.035992916594014296, + "懍": 0.006398740727824764, + "懓": 0.0023995277729342867, + "懔": 0.04719071286770763, + "懗": 0.03919228695792668, + "懙": 0.011197796273693337, + "懜": 0.03359338882108001, + "懝": 0.003199370363912382, + "懞": 0.00719858331880286, + "懟": 0.0023995277729342867, + "懠": 0.031993703639123815, + "懡": 0.24075261988440674, + "懫": 0.001599685181956191, + "懬": 0.0023995277729342867, + "谡": 0.11917654605573623, + "懭": 0.001599685181956191, + "懱": 0.001599685181956191, + "懵": 0.2943420734799392, + "懽": 0.01439716663760572, + "戀": 0.003199370363912382, + "戆": 0.023995277729342866, + "戉": 0.001599685181956191, + "戋": 0.003999212954890477, + "傯": 0.0023995277729342867, + "勷": 0.0023995277729342867, + "斫": 0.17596537001518103, + "黼": 0.15037040710388194, + "戔": 0.01439716663760572, + "戕": 0.08158394427976574, + "戙": 0.05838850914140097, + "戛": 0.2863436475701582, + "锵": 0.20875891624528292, + "瓮": 0.6422736005554107, + "戜": 0.5310954804094554, + "戝": 0.6654690356937755, + "戞": 0.38392444366948586, + "戠": 0.3815249158965516, + "戣": 0.3343342030288439, + "戤": 0.0023995277729342867, + "戥": 0.01439716663760572, + "戦": 0.12237591641964861, + "稾": 0.004799055545868573, + "適": 0.044791185094773346, + "戬": 0.005598898136846668, + "戯": 0.2111584440182172, + "戰": 0.003199370363912382, + "逍": 0.8966235444864451, + "誊": 0.21915686992799818, + "戽": 0.003199370363912382, + "藓": 0.3255359345280849, + "扃": 0.010397953682715242, + "扆": 0.022395592547386673, + "扳": 0.9662098499015394, + "枷": 0.4479118509477335, + "胼": 0.043191499912817156, + "胝": 0.05678882395944478, + "扌": 0.016796694410540006, + "薮": 0.08638299982563431, + "赉": 0.04799055545868573, + "掀": 2.042797977358056, + "獠": 0.14877072192192578, + "踩": 1.1165802570054213, + "榧": 0.108778592373021, + "槼": 0.051989768413576214, + "烊": 0.0703861480060724, + "瞌": 0.19996064774452388, + "砸": 2.0891888476347855, + "箇": 0.013597324046627625, + "趸": 0.17356584224224672, + "扔": 2.250757051012361, + "扜": 0.010397953682715242, + "扞": 0.011197796273693337, + "扠": 0.037592601775970486, + "扢": 0.02479512032032096, + "籥": 0.011997638864671433, + "绊": 0.5262964248635867, + "襻": 0.025594962911299056, + "扤": 0.010397953682715242, + "扥": 0.001599685181956191, + "扦": 0.0887825275985686, + "眴": 0.011997638864671433, + "砑": 0.035992916594014296, + "扱": 0.015197009228583814, + "扵": 0.003999212954890477, + "柩": 0.5534910729568421, + "祛": 0.33273451784688773, + "砉": 0.032793546230101916, + "扺": 0.003199370363912382, + "抁": 0.004799055545868573, + "抅": 0.0023995277729342867, + "抆": 0.00719858331880286, + "拭": 0.519097841544784, + "抇": 0.0023995277729342867, + "抍": 0.02879433327521144, + "抎": 0.003999212954890477, + "阄": 0.5374942211372802, + "畀": 0.021595749956408578, + "搂": 1.1933651457393184, + "擞": 0.25355010134005623, + "硷": 0.14877072192192578, + "餗": 0.009598111091737147, + "熨": 0.16796694410540006, + "髀": 0.055189138777488586, + "抟": 0.053589453595532396, + "雠": 0.10158000905421814, + "抨": 0.3783255455326392, + "撷": 0.05118992582259811, + "黡": 0.0023995277729342867, + "椠": 0.0023995277729342867, + "抴": 0.004799055545868573, + "牾": 0.015996851819561907, + "抺": 0.003199370363912382, + "抻": 0.0543892961865105, + "搐": 0.24315214765734103, + "抾": 0.0023995277729342867, + "拃": 0.006398740727824764, + "拄": 0.27194648093255247, + "髭": 0.07518520355194097, + "捭": 0.03359338882108001, + "縴": 0.00719858331880286, + "搤": 0.004799055545868573, + "拋": 0.09918048128128384, + "脯": 0.45671011944849255, + "拎": 0.4655083879492516, + "攫": 0.2543499439310344, + "拑": 0.003999212954890477, + "擢": 0.30154065679874203, + "磉": 0.0023995277729342867, + "挛": 0.34233262893862487, + "拚": 1.2605519233814784, + "赇": 0.0023995277729342867, + "旛": 0.00719858331880286, + "袓": 0.006398740727824764, + "拝": 0.001599685181956191, + "拞": 0.0023995277729342867, + "拠": 0.005598898136846668, + "拡": 0.009598111091737147, + "拤": 0.0183963795924962, + "篲": 0.003999212954890477, + "拧": 0.5790860358681412, + "拫": 0.04639087027672954, + "拮": 0.15676914783170673, + "拰": 0.5238968970906526, + "拲": 0.001599685181956191, + "掿": 0.0023995277729342867, + "拵": 0.001599685181956191, + "拶": 0.0183963795924962, + "拹": 0.003999212954890477, + "拺": 0.02719464809325525, + "拻": 0.010397953682715242, + "攞": 0.00719858331880286, + "橐": 0.12957449973845148, + "挄": 0.016796694410540006, + "皁": 0.027994490684233344, + "谪": 0.13117418492040767, + "俫": 0.0023995277729342867, + "钮": 0.2983412864348296, + "挋": 0.00879826850075905, + "挌": 0.00879826850075905, + "挎": 0.5934832025057469, + "挏": 0.001599685181956191, + "舋": 0.0023995277729342867, + "斡": 0.9158197666699194, + "挒": 0.020795907365430483, + "挓": 0.012797481455649528, + "挗": 0.011197796273693337, + "挙": 0.03039401845716763, + "挜": 0.005598898136846668, + "挝": 0.3175375086183039, + "捩": 0.02319543513836477, + "撧": 0.009598111091737147, + "抂": 0.0023995277729342867, + "挧": 0.019996064774452385, + "挬": 0.0023995277729342867, + "挮": 0.001599685181956191, + "嘳": 0.0023995277729342867, + "濯": 0.09118205537150288, + "挰": 0.016796694410540006, + "挲": 0.06958630541509431, + "挳": 0.003999212954890477, + "挴": 0.005598898136846668, + "挶": 0.13757292564823242, + "挷": 0.0023995277729342867, + "挸": 0.003199370363912382, + "挼": 0.015197009228583814, + "搓": 0.6726676190125783, + "捀": 0.003999212954890477, + "捂": 0.5766865080952068, + "捃": 0.006398740727824764, + "捅": 0.5326951655914116, + "掐": 0.4991017767703316, + "捊": 0.00719858331880286, + "揎": 0.05598898136846669, + "捌": 0.05039008323162002, + "捍": 0.43991342503795255, + "捎": 0.661469822738885, + "捒": 0.003199370363912382, + "捨": 0.001599685181956191, + "捯": 0.0023995277729342867, + "捰": 0.004799055545868573, + "捵": 0.0023995277729342867, + "捶": 0.5814855636410754, + "捽": 0.034393231412058106, + "掂": 0.2831442772062458, + "掆": 0.001599685181956191, + "臀": 0.6630695079208412, + "掋": 0.029594175866189534, + "甩": 1.3557331917078719, + "敕": 0.8318362946172194, + "掍": 0.11517733310084576, + "掎": 0.016796694410540006, + "襼": 0.0023995277729342867, + "掑": 0.13517339787529814, + "掓": 0.15676914783170673, + "掔": 0.09278174055345909, + "掕": 0.06238772209629145, + "掗": 0.05838850914140097, + "掛": 0.001599685181956191, + "掞": 0.07998425909780954, + "胠": 0.003999212954890477, + "赜": 0.07438536096096289, + "掣": 0.5590899710936887, + "掤": 0.003199370363912382, + "搪": 0.23995277729342865, + "胔": 0.0023995277729342867, + "掭": 0.005598898136846668, + "掮": 0.053589453595532396, + "掯": 0.005598898136846668, + "掴": 0.025594962911299056, + "骰": 0.4055201936258944, + "掸": 0.18556348110691817, + "揄": 0.06078803691433526, + "眵": 0.012797481455649528, + "揌": 0.006398740727824764, + "換": 0.005598898136846668, + "揝": 0.011197796273693337, + "揞": 0.003199370363912382, + "揠": 0.00879826850075905, + "揯": 0.001599685181956191, + "揲": 0.010397953682715242, + "揳": 0.0023995277729342867, + "揵": 0.03359338882108001, + "揶": 0.04639087027672954, + "揸": 0.006398740727824764, + "揹": 0.004799055545868573, + "揾": 0.009598111091737147, + "揿": 0.08398347205270003, + "搀": 0.5974824154606373, + "搆": 0.00719858331880286, + "搇": 0.004799055545868573, + "搊": 0.001599685181956191, + "搋": 0.0023995277729342867, + "搌": 0.0023995277729342867, + "搦": 0.11757686087378004, + "踟": 0.06238772209629145, + "蹰": 0.05758866655042288, + "搕": 0.003999212954890477, + "搛": 0.01439716663760572, + "搠": 0.18716316628887433, + "搢": 0.0023995277729342867, + "搣": 0.0023995277729342867, + "搫": 0.011197796273693337, + "裢": 0.06398740727824763, + "搮": 0.005598898136846668, + "搰": 0.013597324046627625, + "搱": 0.06398740727824763, + "搲": 0.004799055545868573, + "搳": 0.0023995277729342867, + "搴": 0.5886841469598784, + "搷": 0.051989768413576214, + "搸": 0.005598898136846668, + "搹": 0.003199370363912382, + "搼": 0.0023995277729342867, + "搽": 0.12877465714747338, + "搾": 0.003199370363912382, + "搿": 0.07998425909780954, + "摀": 0.004799055545868573, + "摁": 0.08398347205270003, + "摅": 0.005598898136846668, + "麰": 0.0023995277729342867, + "橹": 0.2135579717911515, + "摈": 0.15356977746779435, + "摐": 0.023995277729342866, + "摑": 0.05758866655042288, + "摒": 0.19436174960767721, + "摓": 0.003199370363912382, + "萄": 2.8098470221060494, + "摙": 0.001599685181956191, + "摜": 0.02319543513836477, + "摝": 0.03839244436694859, + "摟": 0.010397953682715242, + "摠": 0.003999212954890477, + "摢": 0.07438536096096289, + "摤": 0.004799055545868573, + "摥": 0.023995277729342866, + "摦": 0.005598898136846668, + "摬": 0.004799055545868573, + "摭": 0.0175965370015181, + "摱": 0.011197796273693337, + "摲": 0.001599685181956191, + "摵": 0.011997638864671433, + "摷": 0.020795907365430483, + "摺": 0.2463515180212534, + "摽": 0.019996064774452385, + "撂": 0.32953514748297535, + "撄": 0.023995277729342866, + "篙": 0.1575689904226848, + "锏": 0.4391135824469744, + "撖": 0.003199370363912382, + "撗": 0.0023995277729342867, + "撚": 0.0023995277729342867, + "撢": 0.00719858331880286, + "撬": 0.7038614800607241, + "穅": 0.009598111091737147, + "閧": 0.0023995277729342867, + "撯": 0.009598111091737147, + "撱": 0.0527896110045543, + "撲": 0.25355010134005623, + "撳": 0.451911063902624, + "撴": 0.2471513606122315, + "撵": 0.3375335733927563, + "撶": 0.26154852724983724, + "撸": 0.1575689904226848, + "撹": 0.13597324046627624, + "撺": 0.13837276823921052, + "撻": 0.07998425909780954, + "蚍": 0.06078803691433526, + "蜉": 0.03919228695792668, + "擀": 0.13117418492040767, + "擄": 0.14957056451290388, + "擊": 0.001599685181956191, + "觚": 0.04239165732183906, + "擐": 0.015197009228583814, + "擔": 0.003199370363912382, + "擗": 0.00719858331880286, + "擝": 0.004799055545868573, + "擣": 0.004799055545868573, + "擤": 0.034393231412058106, + "擭": 0.043191499912817156, + "擴": 0.001599685181956191, + "擻": 0.001599685181956191, + "擽": 0.05598898136846669, + "攁": 0.003999212954890477, + "攉": 0.016796694410540006, + "攠": 0.001599685181956191, + "攢": 0.0023995277729342867, + "攣": 0.00719858331880286, + "攥": 0.2671474253866839, + "攦": 0.001599685181956191, + "攧": 0.013597324046627625, + "攨": 0.003199370363912382, + "攪": 0.004799055545868573, + "攬": 0.001599685181956191, + "攭": 0.001599685181956191, + "攮": 0.0183963795924962, + "攱": 0.012797481455649528, + "攲": 0.013597324046627625, + "攴": 0.001599685181956191, + "攵": 0.016796694410540006, + "歛": 0.009598111091737147, + "毿": 0.0023995277729342867, + "攺": 0.004799055545868573, + "讦": 0.06638693505118193, + "箴": 0.13117418492040767, + "攼": 0.010397953682715242, + "攽": 0.009598111091737147, + "敀": 0.001599685181956191, + "敁": 0.005598898136846668, + "敪": 0.0023995277729342867, + "敂": 0.0023995277729342867, + "敄": 0.015996851819561907, + "敇": 0.009598111091737147, + "敉": 0.023995277729342866, + "敊": 0.06318756468726955, + "敋": 0.05118992582259811, + "敎": 0.003999212954890477, + "敓": 0.1959614347896334, + "敔": 0.004799055545868573, + "敗": 0.013597324046627625, + "猱": 0.055189138777488586, + "痪": 0.4559102768575144, + "敚": 0.001599685181956191, + "敜": 0.00719858331880286, + "綈": 0.03999212954890477, + "绨": 0.043191499912817156, + "枵": 0.012797481455649528, + "敟": 0.011997638864671433, + "敠": 0.004799055545868573, + "敤": 0.12557528678356097, + "敥": 0.009598111091737147, + "敧": 0.00719858331880286, + "敨": 0.001599685181956191, + "敩": 0.010397953682715242, + "敫": 0.02719464809325525, + "穉": 0.005598898136846668, + "敭": 0.004799055545868573, + "敮": 0.07438536096096289, + "敯": 0.0887825275985686, + "敱": 0.1271749719655172, + "敳": 0.006398740727824764, + "饬": 0.28794333275211437, + "數": 0.03039401845716763, + "敹": 0.031993703639123815, + "敺": 0.044791185094773346, + "敻": 0.004799055545868573, + "敼": 0.06238772209629145, + "敾": 0.05918835173237907, + "斀": 0.004799055545868573, + "斁": 0.11277780532791146, + "斂": 0.15676914783170673, + "蝥": 0.003999212954890477, + "筲": 0.019196222183474294, + "蟋": 0.1935619070166991, + "蟀": 0.23755324952049436, + "鹌": 0.08718284241661241, + "斝": 0.021595749956408578, + "斠": 0.006398740727824764, + "斨": 0.004799055545868573, + "琱": 0.0023995277729342867, + "珪": 0.2831442772062458, + "缣": 0.06238772209629145, + "脰": 0.004799055545868573, + "齑": 0.06718677764216002, + "绛": 0.42791578617328113, + "斲": 0.0023995277729342867, + "斵": 0.0023995277729342867, + "芩": 0.07678488873389717, + "玟": 0.00719858331880286, + "骖": 0.01439716663760572, + "斺": 0.18796300887985246, + "斻": 0.035992916594014296, + "玖": 0.09598111091737146, + "褵": 0.0023995277729342867, + "斾": 0.23835309211147246, + "斿": 0.3679275918499239, + "旀": 0.22715529583777913, + "蒐": 0.022395592547386673, + "旂": 0.1407722960121448, + "旄": 0.0543892961865105, + "旆": 0.06718677764216002, + "旇": 0.18556348110691817, + "旈": 0.06558709246020383, + "旉": 0.003199370363912382, + "铆": 0.15596930524072863, + "旎": 0.08958237018954669, + "旓": 0.1263751293745391, + "旖": 0.07758473132487526, + "柰": 0.011197796273693337, + "蜗": 0.2663475827957058, + "衾": 0.10237985164519622, + "疪": 0.0023995277729342867, + "炙": 0.41991736026350013, + "罣": 0.006398740727824764, + "谰": 0.029594175866189534, + "旡": 0.003999212954890477, + "晷": 0.08158394427976574, + "昃": 0.02639480550227715, + "湲": 0.00719858331880286, + "朘": 0.013597324046627625, + "珥": 0.043191499912817156, + "籼": 0.06078803691433526, + "韭": 0.19196222183474293, + "菘": 0.020795907365430483, + "潦": 0.20875891624528292, + "獭": 0.2111584440182172, + "魃": 0.10237985164519622, + "旲": 0.003999212954890477, + "旳": 0.0023995277729342867, + "旴": 0.0023995277729342867, + "曷": 0.043191499912817156, + "诎": 0.04959024064064192, + "旸": 0.06558709246020383, + "旹": 0.0023995277729342867, + "旻": 0.04159181473086097, + "旼": 0.003199370363912382, + "昈": 0.001599685181956191, + "昉": 0.07678488873389717, + "歜": 0.011197796273693337, + "锃": 0.06238772209629145, + "暸": 0.010397953682715242, + "矾": 0.460709332403383, + "瞶": 0.0023995277729342867, + "昐": 0.003199370363912382, + "昑": 0.00719858331880286, + "昖": 0.016796694410540006, + "昚": 0.005598898136846668, + "昛": 0.001599685181956191, + "昝": 0.011197796273693337, + "昞": 0.05678882395944478, + "槎": 0.4631088601763173, + "栱": 0.02719464809325525, + "昢": 0.0735855183699848, + "昣": 0.003199370363912382, + "昩": 0.013597324046627625, + "昪": 0.03039401845716763, + "昫": 0.0175965370015181, + "昬": 0.009598111091737147, + "昰": 0.020795907365430483, + "昱": 0.11357764791888957, + "昴": 0.03999212954890477, + "昸": 0.0023995277729342867, + "昺": 0.019196222183474294, + "昿": 0.001599685181956191, + "時": 0.004799055545868573, + "晅": 0.001599685181956191, + "晇": 0.0023995277729342867, + "晈": 0.0023995277729342867, + "鲍": 1.0789876552294508, + "晛": 0.0023995277729342867, + "晞": 0.05039008323162002, + "晠": 0.03359338882108001, + "晡": 0.01439716663760572, + "晢": 0.03999212954890477, + "晣": 0.02639480550227715, + "晥": 0.015197009228583814, + "晧": 0.003999212954890477, + "晩": 0.16956662928735625, + "晪": 0.001599685181956191, + "晫": 0.1623680459685534, + "晬": 0.006398740727824764, + "晱": 0.009598111091737147, + "晳": 0.01439716663760572, + "霹": 0.3527305826213401, + "雳": 0.3383334159837344, + "晹": 0.0023995277729342867, + "莓": 0.13597324046627624, + "晻": 0.001599685181956191, + "晽": 0.012797481455649528, + "晾": 0.3127384530724353, + "晿": 0.001599685181956191, + "暀": 0.08558315723465622, + "暁": 0.005598898136846668, + "暃": 0.003199370363912382, + "暅": 0.04159181473086097, + "暆": 0.003199370363912382, + "暋": 0.001599685181956191, + "暌": 0.034393231412058106, + "暍": 0.07278567577900669, + "暎": 0.0175965370015181, + "暒": 0.032793546230101916, + "壼": 0.0023995277729342867, + "黝": 0.4215170454454563, + "暘": 0.0175965370015181, + "暚": 0.019196222183474294, + "暟": 0.035992916594014296, + "暠": 0.03039401845716763, + "暡": 0.015996851819561907, + "暢": 0.001599685181956191, + "暣": 0.043191499912817156, + "暩": 0.003199370363912382, + "暬": 0.0023995277729342867, + "暭": 0.003999212954890477, + "爨": 0.04079197213988287, + "舂": 0.29674160125287347, + "朦": 0.7022617948787678, + "胧": 0.7238575448351764, + "暱": 0.5430931192741268, + "暲": 0.0735855183699848, + "殄": 0.0367927591849924, + "暵": 0.001599685181956191, + "暹": 0.1399724534211667, + "暻": 0.004799055545868573, + "暾": 0.02719464809325525, + "暿": 0.0023995277729342867, + "曁": 0.001599685181956191, + "曂": 0.004799055545868573, + "曆": 0.006398740727824764, + "曌": 0.012797481455649528, + "曍": 0.0023995277729342867, + "曎": 0.001599685181956191, + "曓": 0.0023995277729342867, + "曖": 0.003199370363912382, + "曗": 0.00879826850075905, + "曘": 0.04639087027672954, + "曚": 0.12557528678356097, + "曨": 0.009598111091737147, + "曛": 0.02879433327521144, + "曞": 0.17996458297007148, + "曟": 0.1263751293745391, + "曠": 0.11517733310084576, + "曡": 0.08798268500759052, + "曢": 0.04159181473086097, + "曤": 0.001599685181956191, + "曧": 0.004799055545868573, + "曩": 0.015996851819561907, + "曪": 0.08478331464367812, + "曫": 0.001599685181956191, + "曮": 0.001599685181956191, + "曯": 0.007998425909780954, + "曱": 0.0023995277729342867, + "甴": 0.0023995277729342867, + "诐": 0.004799055545868573, + "裾": 0.0735855183699848, + "豉": 0.037592601775970486, + "曶": 0.0175965370015181, + "書": 0.04399134250379526, + "禺": 0.5846849340049879, + "锟": 0.1407722960121448, + "曺": 0.003199370363912382, + "曻": 0.003199370363912382, + "朂": 0.003199370363912382, + "會": 0.00719858331880286, + "朄": 0.004799055545868573, + "朊": 0.027994490684233344, + "朏": 0.003999212954890477, + "朒": 0.003199370363912382, + "朓": 0.011997638864671433, + "朙": 0.004799055545868573, + "朚": 0.001599685181956191, + "愓": 0.0023995277729342867, + "跖": 0.05598898136846669, + "溘": 0.02479512032032096, + "朠": 0.055189138777488586, + "朡": 0.004799055545868573, + "朣": 0.003199370363912382, + "蛀": 0.19276206442572102, + "栺": 0.0023995277729342867, + "樨": 0.011997638864671433, + "锨": 0.13757292564823242, + "泯": 0.13437355528432005, + "烙": 0.5023011471342439, + "稍": 5.882842256643893, + "朮": 0.006398740727824764, + "煜": 0.159168675604641, + "甍": 0.011197796273693337, + "轓": 0.004799055545868573, + "逖": 0.02879433327521144, + "镕": 0.1447715089670353, + "鹮": 0.019996064774452385, + "朲": 0.001599685181956191, + "贊": 0.0023995277729342867, + "朷": 0.012797481455649528, + "朸": 0.003199370363912382, + "朻": 0.0023995277729342867, + "朾": 0.011997638864671433, + "蓺": 0.0023995277729342867, + "杁": 0.003999212954890477, + "糅": 0.06478724986922574, + "杄": 0.012797481455649528, + "杅": 0.023995277729342866, + "杇": 0.0023995277729342867, + "杋": 0.001599685181956191, + "杌": 0.04639087027672954, + "涔": 2.529102272672738, + "淼": 0.1407722960121448, + "珉": 0.007998425909780954, + "璟": 0.08558315723465622, + "馗": 0.06798662023313812, + "贽": 0.044791185094773346, + "赣": 1.2941453122025586, + "骝": 0.02639480550227715, + "顼": 0.07678488873389717, + "杔": 0.0023995277729342867, + "杘": 0.003199370363912382, + "杙": 0.006398740727824764, + "杚": 0.011197796273693337, + "杛": 0.011197796273693337, + "桤": 0.05758866655042288, + "杞": 0.8342358223901536, + "窈": 0.08158394427976574, + "窕": 0.08958237018954669, + "缊": 0.00879826850075905, + "鳎": 0.20635938847234864, + "杢": 0.0023995277729342867, + "檬": 0.39992129548904776, + "颁": 5.840450599322053, + "杧": 0.013597324046627625, + "琰": 0.021595749956408578, + "嬅": 0.0023995277729342867, + "骢": 0.12877465714747338, + "欉": 0.005598898136846668, + "钫": 0.04079197213988287, + "杩": 2.8034482813782247, + "杪": 0.011997638864671433, + "杫": 0.001599685181956191, + "杬": 0.22635545324680104, + "甬": 0.6030813135974841, + "杮": 0.001599685181956191, + "觥": 0.159168675604641, + "東": 0.004799055545868573, + "杴": 0.001599685181956191, + "杷": 0.11037827755497717, + "杸": 0.00879826850075905, + "杹": 0.003199370363912382, + "杻": 0.003999212954890477, + "杽": 0.08478331464367812, + "毬": 0.0351930740030362, + "鲈": 0.1775650551971372, + "蕈": 0.06078803691433526, + "枂": 0.029594175866189534, + "枃": 0.2647478976137496, + "枅": 0.004799055545868573, + "枆": 0.006398740727824764, + "枇": 0.1399724534211667, + "枈": 0.04799055545868573, + "诳": 0.1967612773806115, + "枌": 0.12957449973845148, + "枏": 0.007998425909780954, + "枒": 0.053589453595532396, + "枓": 0.003999212954890477, + "麹": 0.011997638864671433, + "枖": 0.001599685181956191, + "皎": 0.29114270311602675, + "纾": 0.15996851819561908, + "桠": 0.12397560160160481, + "枞": 0.035992916594014296, + "枟": 0.11757686087378004, + "枠": 0.007998425909780954, + "枡": 0.08158394427976574, + "枥": 0.02639480550227715, + "枦": 0.001599685181956191, + "枧": 0.006398740727824764, + "枨": 0.00879826850075905, + "枩": 0.05918835173237907, + "枬": 0.05758866655042288, + "枿": 0.003999212954890477, + "枰": 0.1399724534211667, + "枲": 0.006398740727824764, + "枳": 0.04799055545868573, + "枴": 0.00719858331880286, + "枸": 0.2311545087926696, + "橘": 0.6798662023313812, + "橼": 0.02319543513836477, + "枹": 0.021595749956408578, + "枺": 0.001599685181956191, + "枻": 0.003199370363912382, + "枼": 0.010397953682715242, + "枾": 0.019996064774452385, + "柀": 0.001599685181956191, + "柁": 0.003199370363912382, + "柇": 0.06638693505118193, + "柉": 0.06478724986922574, + "柊": 0.10797874978204289, + "柋": 0.001599685181956191, + "柌": 0.0023995277729342867, + "柍": 0.0023995277729342867, + "柒": 0.001599685181956191, + "柕": 0.00719858331880286, + "柗": 0.005598898136846668, + "柝": 0.009598111091737147, + "柞": 0.17436568483322482, + "柟": 0.4039205084439383, + "柠": 0.31193861048145727, + "柣": 0.006398740727824764, + "柤": 0.011197796273693337, + "柦": 0.016796694410540006, + "柧": 0.005598898136846668, + "柨": 0.011997638864671433, + "柭": 0.011197796273693337, + "柮": 0.004799055545868573, + "柲": 0.003999212954890477, + "柷": 0.00879826850075905, + "柸": 0.001599685181956191, + "査": 0.01439716663760572, + "柼": 0.005598898136846668, + "柽": 0.03919228695792668, + "栀": 0.06078803691433526, + "酾": 0.00719858331880286, + "栊": 0.04959024064064192, + "栌": 0.020795907365430483, + "猢": 0.10477937941813051, + "狲": 0.19036253665278674, + "榦": 0.0023995277729342867, + "栒": 0.001599685181956191, + "栔": 0.001599685181956191, + "栕": 0.001599685181956191, + "栘": 0.0023995277729342867, + "栛": 0.001599685181956191, + "栝": 0.01439716663760572, + "栟": 0.007998425909780954, + "栤": 0.006398740727824764, + "栥": 0.035992916594014296, + "栦": 0.3359338882108001, + "栧": 0.3847242862604639, + "栨": 0.23595356433853817, + "栩": 0.2711466383415744, + "栫": 0.3111387678904792, + "栬": 0.16956662928735625, + "栭": 0.13197402751138576, + "栰": 0.0023995277729342867, + "栲": 0.10957843496399909, + "栳": 0.007998425909780954, + "栴": 0.001599685181956191, + "栵": 0.10397953682715243, + "栶": 0.001599685181956191, + "栻": 0.015197009228583814, + "栾": 0.0703861480060724, + "栿": 0.001599685181956191, + "桁": 0.24235230506636293, + "桷": 0.015197009228583814, + "樵": 0.326335777119063, + "桄": 0.005598898136846668, + "榔": 0.19436174960767721, + "桎": 0.044791185094773346, + "桊": 0.0023995277729342867, + "棬": 0.08398347205270003, + "甕": 0.00719858331880286, + "椹": 0.2487510457941877, + "葚": 0.010397953682715242, + "螵": 0.010397953682715242, + "蛸": 0.02879433327521144, + "濮": 0.6358748598275858, + "蘩": 0.023995277729342866, + "锾": 0.09118205537150288, + "桚": 0.004799055545868573, + "桜": 0.011197796273693337, + "桟": 0.0023995277729342867, + "瑁": 0.22875498101973532, + "桧": 0.23595356433853817, + "桫": 0.02319543513836477, + "椤": 0.31353829566341346, + "桯": 0.001599685181956191, + "桰": 0.001599685181956191, + "桱": 0.003199370363912382, + "桲": 0.003999212954890477, + "桴": 0.025594962911299056, + "桵": 0.044791185094773346, + "桸": 0.003999212954890477, + "桹": 0.0023995277729342867, + "桺": 0.009598111091737147, + "桼": 0.001599685181956191, + "桽": 0.001599685181956191, + "桾": 0.010397953682715242, + "溟": 0.0543892961865105, + "梃": 0.04159181473086097, + "梇": 0.004799055545868573, + "梈": 0.004799055545868573, + "梉": 0.004799055545868573, + "梊": 0.0023995277729342867, + "梌": 0.016796694410540006, + "梍": 0.6774666745584469, + "梎": 0.001599685181956191, + "梑": 0.007998425909780954, + "梕": 0.03839244436694859, + "梖": 0.02879433327521144, + "梘": 0.013597324046627625, + "梙": 0.001599685181956191, + "梜": 0.001599685181956191, + "條": 0.001599685181956191, + "梠": 0.001599685181956191, + "梡": 0.00719858331880286, + "梣": 0.005598898136846668, + "梤": 0.003199370363912382, + "魇": 0.14957056451290388, + "梩": 0.05678882395944478, + "梪": 0.0023995277729342867, + "梫": 0.001599685181956191, + "梮": 0.015197009228583814, + "梲": 0.00879826850075905, + "梴": 0.08398347205270003, + "梶": 0.019196222183474294, + "梷": 0.032793546230101916, + "梺": 0.031993703639123815, + "梼": 0.0023995277729342867, + "梽": 0.04639087027672954, + "梾": 0.13037434232942954, + "梿": 0.015996851819561907, + "棄": 0.0023995277729342867, + "棅": 0.004799055545868573, + "棆": 0.011197796273693337, + "棇": 0.009598111091737147, + "秆": 0.3559299529852525, + "蜘": 0.35193074003036207, + "蛛": 1.0405952108625023, + "棊": 0.004799055545868573, + "棌": 0.022395592547386673, + "棏": 0.001599685181956191, + "棐": 0.013597324046627625, + "棑": 0.0023995277729342867, + "棰": 0.477506026813923, + "棔": 0.03039401845716763, + "榈": 0.2695469531596182, + "棖": 0.003999212954890477, + "棗": 0.06718677764216002, + "棙": 0.016796694410540006, + "棛": 0.0023995277729342867, + "棜": 0.007998425909780954, + "棝": 0.03999212954890477, + "棡": 0.0023995277729342867, + "棤": 0.27274632352353056, + "棥": 0.004799055545868573, + "棦": 0.0543892961865105, + "棧": 0.004799055545868573, + "棨": 0.009598111091737147, + "棩": 0.2639480550227715, + "棪": 0.00879826850075905, + "棫": 0.0175965370015181, + "棭": 0.04879039804966383, + "棯": 0.016796694410540006, + "棲": 0.001599685181956191, + "棳": 0.003199370363912382, + "棴": 0.00879826850075905, + "棶": 0.25115057356712195, + "棷": 0.003999212954890477, + "棸": 0.0023995277729342867, + "椁": 0.6246770635538926, + "棻": 0.02879433327521144, + "棼": 0.003999212954890477, + "棽": 0.010397953682715242, + "棿": 0.13117418492040767, + "椀": 0.003999212954890477, + "椂": 0.435114369492084, + "椃": 0.0183963795924962, + "椄": 0.001599685181956191, + "椆": 0.029594175866189534, + "椇": 0.009598111091737147, + "椈": 0.15276993487681623, + "椊": 0.001599685181956191, + "椋": 0.3391332585747125, + "歃": 0.035992916594014296, + "椐": 0.016796694410540006, + "椓": 0.013597324046627625, + "椔": 0.0023995277729342867, + "椖": 0.001599685181956191, + "椗": 0.001599685181956191, + "椙": 0.0023995277729342867, + "椚": 0.003199370363912382, + "椛": 0.0023995277729342867, + "検": 0.0023995277729342867, + "椝": 0.001599685181956191, + "椞": 0.0023995277729342867, + "椡": 0.001599685181956191, + "椥": 0.001599685181956191, + "椦": 0.00879826850075905, + "椧": 0.001599685181956191, + "椩": 0.003199370363912382, + "椫": 0.001599685181956191, + "椯": 0.005598898136846668, + "椴": 0.10158000905421814, + "椸": 0.0023995277729342867, + "椺": 0.001599685181956191, + "椻": 0.015996851819561907, + "椼": 0.05998819432335716, + "椾": 0.3127384530724353, + "楀": 0.45671011944849255, + "楁": 0.38632397144242014, + "楃": 0.217557184746042, + "楄": 0.19276206442572102, + "楅": 0.10237985164519622, + "楆": 0.0023995277729342867, + "楇": 0.001599685181956191, + "楊": 0.003199370363912382, + "楋": 0.18156426815202767, + "楏": 0.001599685181956191, + "楐": 0.003199370363912382, + "楒": 0.003199370363912382, + "楖": 0.00719858331880286, + "楗": 0.10158000905421814, + "楘": 0.02879433327521144, + "郢": 1.122978997733246, + "蛴": 0.06478724986922574, + "楛": 0.0023995277729342867, + "楜": 0.003999212954890477, + "楟": 0.001599685181956191, + "楡": 0.004799055545868573, + "楢": 0.003999212954890477, + "楦": 0.06398740727824763, + "楩": 0.0023995277729342867, + "楪": 0.003999212954890477, + "楬": 0.001599685181956191, + "楮": 0.019196222183474294, + "楯": 0.02479512032032096, + "楰": 0.0023995277729342867, + "楱": 0.001599685181956191, + "楽": 0.004799055545868573, + "楿": 0.004799055545868573, + "榀": 0.003199370363912382, + "赊": 0.1415721386031229, + "榅": 0.0023995277729342867, + "荚": 0.22395592547386675, + "榇": 0.03839244436694859, + "榌": 0.004799055545868573, + "榍": 0.011997638864671433, + "榑": 0.0023995277729342867, + "榗": 0.001599685181956191, + "榘": 0.24155246247538484, + "榣": 0.001599685181956191, + "榤": 0.003199370363912382, + "榬": 0.001599685181956191, + "榳": 0.001599685181956191, + "霰": 0.10158000905421814, + "榸": 0.009598111091737147, + "榼": 0.0023995277729342867, + "榾": 0.0175965370015181, + "榿": 0.005598898136846668, + "槀": 0.004799055545868573, + "槅": 0.009598111091737147, + "槈": 0.08958237018954669, + "槊": 0.07518520355194097, + "構": 0.0023995277729342867, + "蹋": 0.2791450642513553, + "槍": 0.001599685181956191, + "槑": 0.1607683607865972, + "槒": 0.01439716663760572, + "槔": 0.02639480550227715, + "槗": 0.023995277729342866, + "様": 0.011197796273693337, + "槙": 0.004799055545868573, + "槚": 0.0023995277729342867, + "槜": 0.004799055545868573, + "槝": 0.12397560160160481, + "槞": 0.001599685181956191, + "槟": 0.34313247152960297, + "槠": 0.02479512032032096, + "槢": 0.02719464809325525, + "槥": 0.001599685181956191, + "槦": 0.49670224899739723, + "槧": 0.003999212954890477, + "槨": 0.003999212954890477, + "槩": 0.001599685181956191, + "槬": 0.02319543513836477, + "槭": 0.11197796273693338, + "槮": 0.009598111091737147, + "槯": 0.007998425909780954, + "槰": 0.009598111091737147, + "槱": 0.005598898136846668, + "槲": 0.0527896110045543, + "槴": 0.0023995277729342867, + "槶": 0.0023995277729342867, + "槷": 0.001599685181956191, + "槸": 2.933022781116676, + "槹": 0.001599685181956191, + "槺": 0.005598898136846668, + "槻": 0.04559102768575144, + "粕": 0.13357371269334195, + "槾": 0.11437749050986766, + "樀": 0.044791185094773346, + "樁": 0.02639480550227715, + "樃": 0.00879826850075905, + "樄": 0.001599685181956191, + "樆": 0.02639480550227715, + "樇": 0.0023995277729342867, + "樉": 0.04799055545868573, + "樋": 0.04959024064064192, + "樏": 0.0023995277729342867, + "樓": 0.001599685181956191, + "樗": 0.0527896110045543, + "樘": 0.0543892961865105, + "標": 0.004799055545868573, + "樚": 0.003199370363912382, + "僿": 0.0023995277729342867, + "樫": 0.003199370363912382, + "樷": 0.04079197213988287, + "樸": 0.07438536096096289, + "樹": 0.3063397123446106, + "樺": 0.535894535955324, + "樻": 0.7326558133359355, + "樼": 0.35193074003036207, + "樿": 0.20395986069941435, + "橀": 0.10957843496399909, + "橁": 0.0023995277729342867, + "橄": 0.4807053971778354, + "橆": 0.0023995277729342867, + "橈": 0.18956269406180865, + "橏": 0.003199370363912382, + "橑": 0.003199370363912382, + "橓": 0.019196222183474294, + "橔": 0.0023995277729342867, + "橚": 0.005598898136846668, + "橛": 0.05678882395944478, + "橜": 0.003199370363912382, + "橞": 0.0023995277729342867, + "橥": 0.00719858331880286, + "橦": 0.020795907365430483, + "橪": 0.003199370363912382, + "橫": 0.0023995277729342867, + "橮": 0.001599685181956191, + "橯": 0.029594175866189534, + "橳": 0.0023995277729342867, + "橷": 0.013597324046627625, + "橸": 0.015996851819561907, + "橾": 0.001599685181956191, + "檅": 0.001599685181956191, + "檇": 0.006398740727824764, + "檈": 0.0183963795924962, + "檑": 0.0023995277729342867, + "檒": 0.00879826850075905, + "檘": 0.0023995277729342867, + "檜": 0.011197796273693337, + "檝": 0.001599685181956191, + "檞": 0.015197009228583814, + "檠": 0.015197009228583814, + "檢": 0.001599685181956191, + "檩": 0.0183963795924962, + "檪": 0.006398740727824764, + "檫": 0.016796694410540006, + "檭": 0.0183963795924962, + "檮": 0.022395592547386673, + "檯": 0.034393231412058106, + "檰": 0.011197796273693337, + "檲": 0.3719268048048144, + "檵": 0.00879826850075905, + "檶": 0.015197009228583814, + "檷": 0.019196222183474294, + "檸": 0.04639087027672954, + "檹": 0.005598898136846668, + "檺": 0.013597324046627625, + "檻": 0.044791185094773346, + "檼": 0.003999212954890477, + "檽": 0.009598111091737147, + "檾": 0.001599685181956191, + "檿": 0.010397953682715242, + "櫀": 0.003199370363912382, + "櫁": 0.00719858331880286, + "櫃": 0.035992916594014296, + "櫄": 0.06398740727824763, + "櫅": 0.001599685181956191, + "櫆": 0.011997638864671433, + "櫈": 0.00719858331880286, + "櫉": 0.1431718237850791, + "櫋": 0.003999212954890477, + "櫌": 0.04159181473086097, + "櫎": 0.04639087027672954, + "櫐": 0.0023995277729342867, + "櫒": 0.022395592547386673, + "櫓": 0.032793546230101916, + "櫔": 0.006398740727824764, + "櫕": 0.009598111091737147, + "櫖": 0.0023995277729342867, + "櫘": 0.3111387678904792, + "櫙": 0.22075655510995434, + "櫚": 0.005598898136846668, + "櫟": 0.001599685181956191, + "櫠": 0.020795907365430483, + "櫡": 0.011197796273693337, + "櫤": 0.0183963795924962, + "櫥": 0.006398740727824764, + "櫦": 0.006398740727824764, + "櫧": 0.21915686992799818, + "櫨": 0.07438536096096289, + "櫶": 0.003199370363912382, + "櫹": 0.001599685181956191, + "欄": 0.003999212954890477, + "欆": 0.001599685181956191, + "權": 0.0023995277729342867, + "欋": 0.0023995277729342867, + "欌": 0.03039401845716763, + "欍": 0.04959024064064192, + "欎": 0.8150396002066793, + "欏": 0.5758866655042287, + "欐": 0.5598898136846668, + "欑": 0.292742388297983, + "欒": 0.30234049938972013, + "欓": 0.18956269406180865, + "欔": 0.003199370363912382, + "欙": 0.27674553647842104, + "迸": 0.544692804456083, + "欤": 0.13037434232942954, + "茄": 0.7822460539765774, + "欷": 0.015197009228583814, + "欸": 0.004799055545868573, + "欹": 0.023995277729342866, + "蹒": 0.12237591641964861, + "欻": 0.007998425909780954, + "歀": 0.003199370363912382, + "歂": 0.003199370363912382, + "歋": 0.031193861048145723, + "歍": 0.00719858331880286, + "歔": 0.14877072192192578, + "歘": 0.001599685181956191, + "歙": 0.11357764791888957, + "跚": 0.13357371269334195, + "珞": 2.1483771993671645, + "當": 0.005598898136846668, + "泅": 0.0527896110045543, + "陟": 0.06158787950531335, + "歩": 0.0023995277729342867, + "歭": 0.0023995277729342867, + "歰": 0.0023995277729342867, + "歲": 0.003999212954890477, + "歳": 0.001599685181956191, + "歷": 0.003199370363912382, + "歸": 0.0023995277729342867, + "虽": 31.865728824567327, + "衚": 0.004799055545868573, + "衕": 0.007998425909780954, + "殁": 0.08478331464367812, + "殂": 0.009598111091737147, + "殌": 0.022395592547386673, + "殏": 0.02319543513836477, + "殑": 5.1181927396688325, + "殔": 0.0023995277729342867, + "殕": 0.011997638864671433, + "殗": 0.021595749956408578, + "殛": 0.0183963795924962, + "殝": 0.001599685181956191, + "殠": 0.0023995277729342867, + "殣": 0.03839244436694859, + "殤": 0.001599685181956191, + "殦": 0.003999212954890477, + "殧": 0.012797481455649528, + "殨": 0.0023995277729342867, + "殩": 0.007998425909780954, + "殪": 0.003199370363912382, + "殫": 0.06238772209629145, + "殬": 0.003199370363912382, + "殭": 0.00879826850075905, + "殮": 0.004799055545868573, + "殰": 0.00879826850075905, + "殳": 0.03839244436694859, + "殻": 0.0023995277729342867, + "毀": 0.003999212954890477, + "杕": 0.0023995277729342867, + "辘": 0.1807644255610496, + "毊": 0.07758473132487526, + "毌": 0.003199370363912382, + "毎": 0.005598898136846668, + "泷": 0.02639480550227715, + "毘": 0.0023995277729342867, + "毚": 0.0183963795924962, + "糙": 0.5230970544996745, + "茛": 0.037592601775970486, + "蚶": 0.07518520355194097, + "毝": 0.001599685181956191, + "毞": 0.005598898136846668, + "毤": 0.001599685181956191, + "毦": 0.09358158314443717, + "毪": 0.003199370363912382, + "毳": 0.007998425909780954, + "毵": 0.0183963795924962, + "毹": 0.025594962911299056, + "毽": 0.03359338882108001, + "氂": 0.004799055545868573, + "氆": 0.055189138777488586, + "氇": 0.0543892961865105, + "氌": 0.0023995277729342867, + "氈": 0.0023995277729342867, + "氍": 0.02639480550227715, + "氐": 0.3359338882108001, + "蜺": 0.003999212954890477, + "氕": 0.004799055545868573, + "氖": 0.44631216576577726, + "氘": 0.06478724986922574, + "氙": 0.05998819432335716, + "氚": 0.04399134250379526, + "霾": 0.1623680459685534, + "氜": 0.0023995277729342867, + "铈": 0.03359338882108001, + "脲": 0.09198189796248098, + "氡": 0.05918835173237907, + "镍": 0.7646495169750592, + "溴": 0.3871238140333982, + "氣": 0.753451720701366, + "氥": 0.044791185094773346, + "氦": 0.35433026780329635, + "钇": 0.051989768413576214, + "钴": 0.4879039804966383, + "铍": 0.09758079609932765, + "锗": 0.13277387010236386, + "锶": 0.10717890719106479, + "镉": 0.19196222183474293, + "羰": 0.1271749719655172, + "氩": 0.09758079609932765, + "氪": 0.06718677764216002, + "氫": 0.2551497865220125, + "氬": 0.5007014619522878, + "氭": 0.2695469531596182, + "钯": 0.30793939752656674, + "氱": 0.20875891624528292, + "氳": 0.22235624029191056, + "洩": 0.08718284241661241, + "渌": 0.1615682033775753, + "溏": 0.0527896110045543, + "漉": 0.310338925299501, + "皰": 0.00719858331880286, + "碓": 0.043191499912817156, + "碾": 0.8990230722593794, + "舀": 0.23835309211147246, + "漕": 1.0094013498143566, + "虿": 0.04239165732183906, + "蛭": 0.2519504161581001, + "蜈": 0.4935028786334849, + "蚣": 0.511899258225981, + "螅": 0.34233262893862487, + "霤": 0.005598898136846668, + "鸪": 0.8446337760728688, + "氵": 0.022395592547386673, + "氶": 0.08398347205270003, + "氹": 0.0023995277729342867, + "氼": 0.001599685181956191, + "氽": 0.41431846212665346, + "氾": 0.1631678885595315, + "氿": 0.0023995277729342867, + "禳": 0.05758866655042288, + "汆": 0.012797481455649528, + "汈": 0.0023995277729342867, + "灏": 1.7868483482450652, + "汋": 0.0023995277729342867, + "汎": 0.001599685181956191, + "汔": 0.003999212954890477, + "浃": 0.28474396238820204, + "衊": 0.00719858331880286, + "珧": 0.005598898136846668, + "蓠": 0.010397953682715242, + "鹗": 0.2151576569731077, + "胾": 0.003999212954890477, + "汧": 0.009598111091737147, + "汨": 0.05838850914140097, + "汩": 0.16396773115050958, + "淙": 0.5990821006425936, + "汭": 0.007998425909780954, + "汳": 0.0023995277729342867, + "汵": 0.30234049938972013, + "汷": 0.019196222183474294, + "汸": 0.001599685181956191, + "淜": 0.0023995277729342867, + "決": 0.007998425909780954, + "汻": 0.0887825275985686, + "汿": 0.001599685181956191, + "茝": 0.003999212954890477, + "醴": 0.3223365641641725, + "茞": 0.0023995277729342867, + "沆": 0.019196222183474294, + "瀣": 0.02639480550227715, + "疔": 0.04239165732183906, + "痾": 0.004799055545868573, + "湎": 0.14877072192192578, + "滓": 0.07918441650683146, + "疴": 0.034393231412058106, + "痼": 0.04559102768575144, + "沋": 0.001599685181956191, + "沌": 0.2503507309761439, + "沏": 0.18236411074300576, + "沑": 0.0023995277729342867, + "沒": 0.003199370363912382, + "麕": 0.011997638864671433, + "沔": 2.117983180909997, + "沖": 0.011997638864671433, + "沘": 0.004799055545868573, + "煲": 0.3527305826213401, + "獾": 0.5542909155478202, + "砾": 0.586284619186944, + "沚": 0.00879826850075905, + "沜": 0.001599685181956191, + "沞": 0.001599685181956191, + "洫": 0.0175965370015181, + "跷": 0.4799055545868573, + "沤": 0.09678095350834955, + "隳": 0.0527896110045543, + "沨": 0.003199370363912382, + "沩": 0.009598111091737147, + "沬": 0.004799055545868573, + "沮": 0.594283045096725, + "洳": 0.04079197213988287, + "沰": 0.001599685181956191, + "湟": 0.17276599965126863, + "溓": 0.004799055545868573, + "隄": 0.011997638864671433, + "鳟": 0.04799055545868573, + "麂": 0.08958237018954669, + "沴": 0.0023995277729342867, + "沵": 0.003199370363912382, + "療": 0.0183963795924962, + "衒": 0.0183963795924962, + "泃": 0.007998425909780954, + "泇": 0.0023995277729342867, + "肓": 0.09838063869030575, + "泋": 0.001599685181956191, + "泐": 0.007998425909780954, + "泑": 0.001599685181956191, + "泒": 0.00879826850075905, + "泔": 0.03999212954890477, + "绚": 0.40152098067100395, + "泖": 0.007998425909780954, + "泚": 0.0527896110045543, + "泝": 0.0023995277729342867, + "泞": 0.14957056451290388, + "泟": 0.031193861048145723, + "泠": 0.07598504614291908, + "馍": 0.4631088601763173, + "潋": 0.015996851819561907, + "滟": 0.020795907365430483, + "粼": 0.10317969423617432, + "泤": 0.007998425909780954, + "疥": 0.06318756468726955, + "癞": 0.16876678669637815, + "鳅": 0.34873136966644963, + "泦": 0.08958237018954669, + "泧": 0.025594962911299056, + "泩": 0.0023995277729342867, + "泫": 0.02639480550227715, + "泬": 0.001599685181956191, + "泭": 0.016796694410540006, + "泱": 0.06238772209629145, + "泲": 0.022395592547386673, + "泴": 0.0023995277729342867, + "泶": 0.021595749956408578, + "泸": 0.2919425457070049, + "泺": 0.02639480550227715, + "溩": 0.0023995277729342867, + "洀": 0.011997638864671433, + "洂": 0.001599685181956191, + "洃": 0.011997638864671433, + "洅": 0.003199370363912382, + "洇": 0.012797481455649528, + "洈": 0.010397953682715242, + "洉": 0.0023995277729342867, + "洊": 0.0183963795924962, + "纚": 0.004799055545868573, + "洌": 0.11277780532791146, + "洍": 0.001599685181956191, + "洎": 0.0023995277729342867, + "洏": 0.025594962911299056, + "洑": 0.011997638864671433, + "洓": 0.13677308305725433, + "洖": 0.17276599965126863, + "逋": 0.05758866655042288, + "洘": 0.0023995277729342867, + "洜": 0.07678488873389717, + "蛆": 0.1751655274242029, + "洟": 0.23915293470245055, + "洡": 0.001599685181956191, + "洣": 0.004799055545868573, + "洤": 0.001599685181956191, + "洦": 0.02879433327521144, + "洨": 0.006398740727824764, + "洭": 0.001599685181956191, + "洯": 0.0023995277729342867, + "洰": 0.08558315723465622, + "洴": 0.00719858331880286, + "洶": 0.009598111091737147, + "洸": 0.04639087027672954, + "洹": 0.13357371269334195, + "洺": 0.4263161009913249, + "洿": 0.20156033292648007, + "脍": 0.10237985164519622, + "浂": 0.006398740727824764, + "浈": 0.013597324046627625, + "浍": 0.019996064774452385, + "浏": 1.4581130433530682, + "浐": 0.1911623792437648, + "浗": 0.16716710151442196, + "浘": 0.07118599059705051, + "浛": 0.00879826850075905, + "浞": 0.07278567577900669, + "訾": 0.015996851819561907, + "浡": 0.04959024064064192, + "浥": 0.0023995277729342867, + "浬": 0.003999212954890477, + "浯": 0.031993703639123815, + "浰": 0.0023995277729342867, + "蜃": 0.16796694410540006, + "蛎": 0.11437749050986766, + "鲷": 0.07198583318802859, + "浼": 0.7590506188382126, + "阂": 0.1615682033775753, + "饧": 0.0703861480060724, + "涑": 0.13917261083018861, + "涒": 0.012797481455649528, + "涓": 10.484336682540876, + "沲": 0.0023995277729342867, + "涖": 0.06638693505118193, + "涗": 0.2543499439310344, + "涘": 0.5558906007297764, + "涙": 0.22075655510995434, + "涚": 0.17916474037909338, + "涜": 0.13437355528432005, + "涠": 0.04799055545868573, + "涢": 0.21595749956408578, + "涪": 0.22395592547386675, + "涫": 0.051989768413576214, + "涳": 0.13597324046627624, + "鲋": 0.05998819432335716, + "涽": 0.001599685181956191, + "涿": 0.2855438049791801, + "淅": 0.1399724534211667, + "飒": 0.2119582866091953, + "淆": 0.3359338882108001, + "淉": 0.003199370363912382, + "淏": 0.0023995277729342867, + "淒": 0.001599685181956191, + "淛": 0.003199370363912382, + "淝": 0.11677701828280194, + "淠": 0.05838850914140097, + "淥": 0.003199370363912382, + "淨": 0.12157607382867051, + "狎": 0.10237985164519622, + "媟": 0.0023995277729342867, + "淯": 0.04719071286770763, + "腧": 0.1615682033775753, + "髡": 0.10158000905421814, + "沄": 0.004799055545868573, + "淸": 0.012797481455649528, + "淾": 0.0023995277729342867, + "痩": 0.0023995277729342867, + "癯": 0.04239165732183906, + "跸": 0.1447715089670353, + "渆": 0.010397953682715242, + "済": 0.04879039804966383, + "濩": 0.011997638864671433, + "蜎": 0.005598898136846668, + "渑": 0.05678882395944478, + "塭": 0.0023995277729342867, + "鞞": 0.003999212954890477, + "鼙": 0.05678882395944478, + "渘": 0.019196222183474294, + "渙": 0.003999212954890477, + "渞": 0.001599685181956191, + "渤": 0.8390348779360222, + "澥": 0.003999212954890477, + "凊": 0.0023995277729342867, + "測": 0.003199370363912382, + "渮": 0.003199370363912382, + "墘": 0.0023995277729342867, + "渰": 0.012797481455649528, + "渳": 0.001599685181956191, + "渶": 0.15596930524072863, + "渷": 0.010397953682715242, + "渹": 0.001599685181956191, + "渼": 0.005598898136846668, + "渾": 0.015996851819561907, + "渿": 0.011197796273693337, + "湀": 0.09598111091737146, + "湁": 1.3173407473409233, + "湄": 0.17596537001518103, + "湅": 0.43751389726501827, + "湇": 0.0543892961865105, + "湈": 0.001599685181956191, + "湉": 0.031993703639123815, + "湐": 0.001599685181956191, + "湑": 0.0023995277729342867, + "湓": 0.035992916594014296, + "湔": 0.02479512032032096, + "湕": 0.011197796273693337, + "湗": 0.3111387678904792, + "濊": 0.15596930524072863, + "湜": 0.08478331464367812, + "湝": 0.0183963795924962, + "湞": 0.020795907365430483, + "湠": 0.001599685181956191, + "湡": 0.3247360919371068, + "湢": 0.001599685181956191, + "湣": 0.016796694410540006, + "湥": 0.001599685181956191, + "湦": 0.003199370363912382, + "湨": 0.00879826850075905, + "湪": 1.2941453122025586, + "湬": 0.0023995277729342867, + "湭": 0.03919228695792668, + "湯": 0.005598898136846668, + "湰": 0.1623680459685534, + "湳": 0.02719464809325525, + "湴": 0.9686093776744736, + "湵": 0.19436174960767721, + "湶": 0.04159181473086097, + "湸": 0.001599685181956191, + "湹": 0.021595749956408578, + "湻": 0.004799055545868573, + "湼": 0.00719858331880286, + "満": 0.20236017551745816, + "溂": 0.2495508883851658, + "溄": 0.006398740727824764, + "溆": 0.0543892961865105, + "溇": 0.005598898136846668, + "溍": 0.044791185094773346, + "溎": 0.001599685181956191, + "準": 0.011197796273693337, + "溞": 0.013597324046627625, + "溧": 0.0703861480060724, + "溫": 0.0023995277729342867, + "溱": 0.0023995277729342867, + "酞": 0.03999212954890477, + "溵": 0.0023995277729342867, + "溽": 0.01439716663760572, + "溾": 0.016796694410540006, + "溿": 0.0543892961865105, + "滀": 0.4759063416319668, + "滁": 0.10237985164519622, + "滃": 0.7390545540637602, + "滄": 0.9926046554038165, + "滅": 0.30793939752656674, + "滆": 0.45671011944849255, + "滈": 0.20316001810843629, + "滉": 0.006398740727824764, + "滏": 0.05039008323162002, + "滐": 0.09118205537150288, + "滗": 0.003999212954890477, + "滘": 0.006398740727824764, + "滙": 0.001599685181956191, + "滠": 0.005598898136846668, + "滢": 0.010397953682715242, + "陳": 0.00719858331880286, + "滱": 0.005598898136846668, + "滲": 0.001599685181956191, + "滹": 0.0903822127805248, + "滺": 0.005598898136846668, + "漁": 0.0527896110045543, + "漅": 0.009598111091737147, + "漈": 0.00879826850075905, + "漊": 0.015996851819561907, + "漑": 0.003199370363912382, + "漡": 0.011197796273693337, + "漤": 0.001599685181956191, + "漶": 0.005598898136846668, + "漭": 0.001599685181956191, + "漮": 0.0023995277729342867, + "漯": 0.10158000905421814, + "漴": 0.003199370363912382, + "漷": 0.004799055545868573, + "漸": 0.0023995277729342867, + "漼": 0.001599685181956191, + "漽": 0.01439716663760572, + "濞": 0.1767652126061591, + "潃": 0.5878843043689002, + "潄": 0.020795907365430483, + "潅": 0.022395592547386673, + "潆": 0.003199370363912382, + "潈": 0.044791185094773346, + "潌": 0.01439716663760572, + "潍": 0.1807644255610496, + "潎": 0.011997638864671433, + "潏": 0.003199370363912382, + "潑": 0.003199370363912382, + "潕": 0.16796694410540006, + "潖": 0.034393231412058106, + "潗": 0.08398347205270003, + "潙": 0.020795907365430483, + "潚": 0.034393231412058106, + "龋": 0.30154065679874203, + "蹑": 0.310338925299501, + "潟": 0.12877465714747338, + "潡": 0.025594962911299056, + "潣": 0.009598111091737147, + "潤": 0.03919228695792668, + "潥": 0.055189138777488586, + "潧": 0.05918835173237907, + "潨": 0.006398740727824764, + "潩": 0.010397953682715242, + "潪": 0.043191499912817156, + "潫": 0.02319543513836477, + "潬": 0.03039401845716763, + "潯": 0.10957843496399909, + "潰": 0.2831442772062458, + "潱": 0.003199370363912382, + "潲": 0.012797481455649528, + "潳": 0.001599685181956191, + "潵": 0.8302366094352631, + "潶": 0.020795907365430483, + "潸": 0.06638693505118193, + "潹": 0.20475970329039245, + "潺": 0.1575689904226848, + "潻": 0.17996458297007148, + "潿": 0.006398740727824764, + "澂": 0.032793546230101916, + "澃": 0.005598898136846668, + "澇": 0.001599685181956191, + "澉": 0.02879433327521144, + "澊": 0.003199370363912382, + "澌": 0.005598898136846668, + "澏": 0.001599685181956191, + "澒": 0.00719858331880286, + "澖": 0.001599685181956191, + "澗": 0.022395592547386673, + "澘": 0.023995277729342866, + "澛": 0.001599685181956191, + "澣": 0.0023995277729342867, + "澴": 0.001599685181956191, + "濃": 0.012797481455649528, + "濄": 0.06878646282411621, + "濅": 0.18396379592496195, + "濆": 0.326335777119063, + "濇": 0.2831442772062458, + "濈": 0.17276599965126863, + "濉": 0.1431718237850791, + "濋": 0.1231757590106267, + "濓": 0.18236411074300576, + "濙": 0.0527896110045543, + "濬": 0.05678882395944478, + "濸": 0.001599685181956191, + "濺": 0.08558315723465622, + "瀀": 0.00879826850075905, + "瀃": 0.18716316628887433, + "瀍": 0.004799055545868573, + "瀘": 0.001599685181956191, + "瀝": 0.001599685181956191, + "瀬": 0.06238772209629145, + "瀭": 0.0023995277729342867, + "瀯": 0.019996064774452385, + "瀰": 0.04079197213988287, + "瀴": 0.005598898136846668, + "瀵": 0.5918835173237906, + "瀷": 0.019996064774452385, + "瀹": 1.3861272101650395, + "瀺": 0.010397953682715242, + "瀻": 0.011197796273693337, + "瀼": 0.011197796273693337, + "瀽": 0.006398740727824764, + "瀿": 0.00719858331880286, + "灂": 0.001599685181956191, + "灄": 0.04159181473086097, + "灉": 0.06798662023313812, + "灊": 0.011997638864671433, + "灍": 0.001599685181956191, + "灎": 0.001599685181956191, + "灒": 0.005598898136846668, + "灔": 0.0023995277729342867, + "灖": 0.011997638864671433, + "灘": 0.003199370363912382, + "灙": 0.1631678885595315, + "灚": 0.003199370363912382, + "灛": 0.0023995277729342867, + "灜": 0.006398740727824764, + "灝": 0.004799055545868573, + "灞": 0.979807173948167, + "灟": 0.001599685181956191, + "灠": 0.003199370363912382, + "灥": 0.0023995277729342867, + "灦": 0.02719464809325525, + "灨": 0.0023995277729342867, + "灪": 0.004799055545868573, + "耨": 0.02479512032032096, + "铳": 0.2255556106558229, + "蟑": 0.08078410168878765, + "灮": 0.006398740727824764, + "炁": 0.001599685181956191, + "炅": 0.02879433327521144, + "炆": 0.13197402751138576, + "炈": 0.003199370363912382, + "箅": 0.016796694410540006, + "爇": 0.003999212954890477, + "熇": 0.0023995277729342867, + "琥": 0.17836489778811532, + "鱿": 0.4207172028544783, + "皲": 0.02879433327521144, + "炝": 0.06958630541509431, + "炟": 0.011997638864671433, + "炢": 0.003999212954890477, + "炤": 0.032793546230101916, + "炩": 0.005598898136846668, + "炪": 0.03919228695792668, + "缟": 0.1415721386031229, + "燿": 0.00719858331880286, + "炯": 0.8686290538022117, + "炰": 0.16716710151442196, + "炱": 0.029594175866189534, + "炲": 0.30793939752656674, + "烺": 0.035992916594014296, + "炴": 0.1975611199715896, + "炵": 0.1767652126061591, + "炶": 0.11277780532791146, + "莋": 0.00879826850075905, + "為": 0.08398347205270003, + "炻": 0.016796694410540006, + "烀": 0.009598111091737147, + "烇": 0.07998425909780954, + "烏": 0.001599685181956191, + "烖": 0.0023995277729342867, + "烗": 0.0023995277729342867, + "烜": 0.021595749956408578, + "熅": 0.0023995277729342867, + "簑": 0.00719858331880286, + "蓑": 0.10317969423617432, + "缛": 0.09278174055345909, + "罨": 0.02479512032032096, + "烱": 0.0023995277729342867, + "烴": 0.0023995277729342867, + "烶": 0.019996064774452385, + "饪": 0.41431846212665346, + "烻": 0.09438142573541526, + "烼": 0.003199370363912382, + "燧": 0.18716316628887433, + "焃": 0.006398740727824764, + "焄": 0.006398740727824764, + "焇": 0.003999212954890477, + "焋": 0.003199370363912382, + "焌": 0.003199370363912382, + "焐": 0.08398347205270003, + "焑": 0.003199370363912382, + "焓": 0.06558709246020383, + "焖": 0.9158197666699194, + "焗": 0.01439716663760572, + "焜": 0.015197009228583814, + "焞": 0.00719858331880286, + "無": 0.001599685181956191, + "焣": 0.04159181473086097, + "焤": 0.003999212954890477, + "焧": 0.0023995277729342867, + "焪": 0.009598111091737147, + "焫": 0.001599685181956191, + "焮": 0.00719858331880286, + "焴": 0.005598898136846668, + "焸": 0.001599685181956191, + "焹": 0.001599685181956191, + "焺": 0.013597324046627625, + "焻": 0.003999212954890477, + "煀": 0.003199370363912382, + "煁": 0.012797481455649528, + "煂": 0.003999212954890477, + "煃": 0.004799055545868573, + "煄": 0.03039401845716763, + "煅": 0.06798662023313812, + "煆": 0.003999212954890477, + "煇": 0.1247754441925829, + "煋": 0.006398740727824764, + "煍": 0.02639480550227715, + "煏": 0.001599685181956191, + "煕": 0.00879826850075905, + "煖": 0.021595749956408578, + "煙": 0.007998425909780954, + "煚": 0.12797481455649526, + "煟": 0.0023995277729342867, + "煠": 0.003999212954890477, + "煡": 0.2311545087926696, + "矸": 0.07598504614291908, + "煥": 0.001599685181956191, + "煨": 0.7038614800607241, + "煩": 0.11277780532791146, + "煬": 0.006398740727824764, + "煭": 0.020795907365430483, + "萁": 0.04559102768575144, + "煯": 0.0023995277729342867, + "煳": 0.09678095350834955, + "煴": 0.005598898136846668, + "煶": 0.3679275918499239, + "煸": 0.023995277729342866, + "煹": 0.005598898136846668, + "煺": 0.02479512032032096, + "煻": 0.0023995277729342867, + "煼": 0.004799055545868573, + "煾": 0.001599685181956191, + "煿": 0.020795907365430483, + "熀": 0.027994490684233344, + "跱": 0.00719858331880286, + "罴": 0.04719071286770763, + "熋": 0.001599685181956191, + "熌": 0.009598111091737147, + "莸": 0.053589453595532396, + "熒": 0.001599685181956191, + "熖": 0.0023995277729342867, + "熘": 0.0351930740030362, + "熚": 0.001599685181956191, + "熜": 0.27834522166037723, + "熥": 0.003199370363912382, + "熧": 0.001599685181956191, + "熱": 0.001599685181956191, + "熲": 0.08558315723465622, + "熴": 0.04959024064064192, + "熶": 0.4671080731312078, + "熷": 0.8310364520262412, + "熸": 0.6358748598275858, + "熺": 0.3791253881236173, + "熻": 0.2647478976137496, + "熼": 0.24315214765734103, + "熽": 0.0023995277729342867, + "燁": 0.003999212954890477, + "燂": 0.16876678669637815, + "燈": 0.0023995277729342867, + "燉": 0.016796694410540006, + "燋": 0.00719858331880286, + "燏": 0.007998425909780954, + "燐": 0.01439716663760572, + "燔": 0.01439716663760572, + "阬": 0.04799055545868573, + "虬": 0.2303546662016915, + "燝": 0.0023995277729342867, + "燪": 0.001599685181956191, + "燫": 0.07598504614291908, + "燭": 0.003999212954890477, + "燺": 0.001599685181956191, + "燻": 0.004799055545868573, + "燾": 0.005598898136846668, + "爊": 0.001599685181956191, + "爌": 0.0023995277729342867, + "爛": 0.015197009228583814, + "爜": 0.003999212954890477, + "爞": 0.02879433327521144, + "爢": 0.005598898136846668, + "爣": 0.019196222183474294, + "爧": 0.001599685181956191, + "爫": 0.011197796273693337, + "爭": 0.021595749956408578, + "爰": 0.108778592373021, + "爲": 0.07998425909780954, + "爺": 0.015996851819561907, + "爼": 0.001599685181956191, + "爾": 0.011997638864671433, + "爿": 0.11197796273693338, + "牀": 0.003999212954890477, + "牁": 0.00879826850075905, + "牂": 0.023995277729342866, + "癀": 0.009598111091737147, + "牎": 0.022395592547386673, + "牏": 0.003999212954890477, + "牐": 0.004799055545868573, + "牘": 0.0023995277729342867, + "牚": 0.023995277729342866, + "犇": 0.0023995277729342867, + "腱": 0.11357764791888957, + "蒡": 0.006398740727824764, + "虻": 0.20715923106332673, + "牝": 0.07758473132487526, + "咮": 0.0023995277729342867, + "牞": 0.003199370363912382, + "牠": 0.031993703639123815, + "牤": 0.004799055545868573, + "牥": 0.005598898136846668, + "牦": 0.20475970329039245, + "牬": 0.04559102768575144, + "牭": 0.003999212954890477, + "牮": 0.001599685181956191, + "牯": 0.14877072192192578, + "牱": 0.2559496291129905, + "牳": 0.015197009228583814, + "牴": 0.08238378687074384, + "牸": 0.04719071286770763, + "牻": 0.01439716663760572, + "骍": 0.006398740727824764, + "犄": 0.0703861480060724, + "褌": 0.0023995277729342867, + "犋": 0.00719858331880286, + "犍": 0.1247754441925829, + "犎": 0.001599685181956191, + "犏": 0.00879826850075905, + "犒": 0.18476363851594005, + "犛": 0.003999212954890477, + "犨": 0.0023995277729342867, + "犫": 0.00879826850075905, + "犭": 0.004799055545868573, + "犮": 0.031993703639123815, + "犰": 0.009598111091737147, + "狳": 0.009598111091737147, + "犱": 0.5031009897252221, + "犲": 0.6710679338306221, + "犳": 0.6694682486486659, + "犵": 0.29674160125287347, + "犷": 0.14557135155801337, + "犺": 0.292742388297983, + "犻": 0.10237985164519622, + "犼": 0.004799055545868573, + "狁": 0.043191499912817156, + "狴": 0.011997638864671433, + "飚": 0.2527502587490782, + "狃": 0.004799055545868573, + "狅": 0.09118205537150288, + "狉": 0.00719858331880286, + "獉": 0.0023995277729342867, + "狍": 0.10477937941813051, + "翫": 0.004799055545868573, + "蝠": 0.4055201936258944, + "篝": 0.1407722960121448, + "狒": 0.0527896110045543, + "狓": 0.006398740727824764, + "狔": 0.0023995277729342867, + "狖": 0.06878646282411621, + "狙": 0.2703467957505963, + "狝": 0.011197796273693337, + "狞": 0.2943420734799392, + "髯": 0.3895233418063325, + "狯": 0.07438536096096289, + "狢": 0.007998425909780954, + "狤": 0.0023995277729342867, + "狧": 0.0023995277729342867, + "狨": 0.010397953682715242, + "鼇": 0.004799055545868573, + "踽": 0.04639087027672954, + "狰": 0.1951615921986553, + "狷": 0.00719858331880286, + "狺": 0.013597324046627625, + "鸢": 0.08318362946172193, + "飧": 0.17916474037909338, + "猁": 0.044791185094773346, + "猂": 0.011997638864671433, + "猃": 0.003999212954890477, + "猄": 0.003999212954890477, + "猇": 0.22395592547386675, + "猉": 0.003999212954890477, + "猓": 0.17116631446931244, + "猕": 0.20795907365430485, + "猖": 0.3959220825341573, + "獗": 0.31593782343634774, + "猚": 0.005598898136846668, + "犸": 0.034393231412058106, + "猞": 0.04079197213988287, + "猡": 0.0023995277729342867, + "鹦": 0.2671474253866839, + "瘊": 0.006398740727824764, + "猺": 0.006398740727824764, + "獁": 0.012797481455649528, + "獂": 0.004799055545868573, + "獆": 0.003199370363912382, + "獈": 0.015197009228583814, + "獊": 0.031993703639123815, + "獋": 0.022395592547386673, + "獌": 0.006398740727824764, + "獍": 0.015197009228583814, + "獎": 0.004799055545868573, + "獏": 0.020795907365430483, + "獐": 0.1951615921986553, + "獒": 0.044791185094773346, + "獓": 0.006398740727824764, + "獕": 0.0023995277729342867, + "獘": 0.005598898136846668, + "獙": 0.027994490684233344, + "獚": 0.001599685181956191, + "獜": 0.001599685181956191, + "獝": 0.003199370363912382, + "獞": 0.013597324046627625, + "獡": 0.003199370363912382, + "獥": 0.011997638864671433, + "獦": 0.003199370363912382, + "獨": 0.019196222183474294, + "獪": 0.003199370363912382, + "獫": 0.01439716663760572, + "獬": 0.08558315723465622, + "豸": 0.029594175866189534, + "獯": 0.04079197213988287, + "獰": 0.001599685181956191, + "獴": 0.011997638864671433, + "玁": 0.010397953682715242, + "菟": 0.06878646282411621, + "玆": 0.0023995277729342867, + "玈": 0.0023995277729342867, + "琚": 0.24795120320320962, + "琯": 0.034393231412058106, + "秸": 0.31593782343634774, + "茭": 0.0527896110045543, + "谌": 0.5302956378184773, + "芮": 0.09358158314443717, + "箓": 0.07278567577900669, + "皤": 0.010397953682715242, + "郅": 0.3071395549355887, + "缵": 0.011197796273693337, + "芸": 0.4679079157221859, + "篡": 0.5254965822726088, + "郝": 1.1861665624205155, + "玎": 0.07678488873389717, + "玕": 0.02319543513836477, + "玗": 0.001599685181956191, + "玘": 0.04239165732183906, + "玙": 0.003199370363912382, + "玚": 0.001599685181956191, + "玝": 0.00879826850075905, + "玞": 0.001599685181956191, + "玠": 0.08718284241661241, + "玡": 0.015197009228583814, + "玢": 0.015197009228583814, + "玥": 0.00719858331880286, + "玦": 0.011997638864671433, + "黩": 0.029594175866189534, + "玪": 0.001599685181956191, + "玳": 0.08798268500759052, + "玷": 0.1055792220091086, + "玹": 0.24075261988440674, + "珌": 0.00719858331880286, + "珎": 0.005598898136846668, + "珐": 0.12237591641964861, + "瑯": 0.0183963795924962, + "珒": 0.032793546230101916, + "珓": 0.003199370363912382, + "珗": 0.11997638864671432, + "珘": 0.003199370363912382, + "珙": 0.07118599059705051, + "珛": 0.09838063869030575, + "珜": 0.00879826850075905, + "珟": 0.17916474037909338, + "磒": 0.0023995277729342867, + "珡": 0.0023995277729342867, + "珣": 0.015996851819561907, + "珦": 0.00719858331880286, + "珫": 0.015996851819561907, + "珯": 0.06878646282411621, + "珴": 0.0023995277729342867, + "珵": 0.031193861048145723, + "珶": 0.04799055545868573, + "珷": 0.025594962911299056, + "珹": 0.0023995277729342867, + "珽": 0.007998425909780954, + "現": 0.00719858331880286, + "孉": 0.0023995277729342867, + "琊": 0.04719071286770763, + "璫": 0.0023995277729342867, + "琇": 0.04079197213988287, + "琍": 0.013597324046627625, + "琎": 0.044791185094773346, + "琓": 0.02319543513836477, + "琗": 0.001599685181956191, + "琘": 0.003199370363912382, + "琡": 0.0023995277729342867, + "琣": 0.0023995277729342867, + "琤": 0.037592601775970486, + "琨": 0.011197796273693337, + "琫": 0.007998425909780954, + "琲": 0.0023995277729342867, + "琺": 0.003199370363912382, + "琿": 0.005598898136846668, + "瑀": 0.023995277729342866, + "瑆": 0.005598898136846668, + "瑇": 0.004799055545868573, + "瑍": 0.001599685181956191, + "瑑": 0.001599685181956191, + "瑔": 0.0023995277729342867, + "揜": 0.004799055545868573, + "瑗": 0.1247754441925829, + "瑝": 0.0023995277729342867, + "蚨": 0.05039008323162002, + "瑧": 0.18716316628887433, + "瑩": 0.003199370363912382, + "瑪": 0.015996851819561907, + "瑭": 0.07198583318802859, + "瑮": 0.006398740727824764, + "瑴": 0.012797481455649528, + "瑺": 0.001599685181956191, + "璀": 0.15996851819561908, + "璨": 0.11917654605573623, + "璆": 0.007998425909780954, + "璈": 0.04719071286770763, + "璊": 0.003199370363912382, + "璎": 0.0175965370015181, + "璘": 0.30314034198069817, + "璝": 0.02879433327521144, + "璠": 0.02639480550227715, + "璡": 0.0023995277729342867, + "璣": 0.02879433327521144, + "璥": 0.003199370363912382, + "璪": 0.006398740727824764, + "璬": 0.006398740727824764, + "璭": 0.044791185094773346, + "璮": 0.02879433327521144, + "環": 0.15836883301366292, + "璵": 0.003199370363912382, + "璺": 0.5830852488230316, + "瓄": 0.001599685181956191, + "瓉": 0.003199370363912382, + "瓊": 0.012797481455649528, + "瓌": 0.003999212954890477, + "瓍": 0.003999212954890477, + "瓏": 0.003199370363912382, + "瓐": 0.003199370363912382, + "瓑": 0.1271749719655172, + "瓔": 0.019196222183474294, + "瓕": 0.009598111091737147, + "瓖": 0.032793546230101916, + "瓘": 0.029594175866189534, + "瓙": 0.8238378687074384, + "瓚": 0.0023995277729342867, + "瓛": 0.001599685181956191, + "瓞": 0.0023995277729342867, + "蒌": 0.0175965370015181, + "瓟": 0.04559102768575144, + "瓥": 0.02719464809325525, + "瓧": 0.0887825275985686, + "瓨": 0.027994490684233344, + "瓩": 0.009598111091737147, + "瓪": 0.001599685181956191, + "瓫": 0.001599685181956191, + "瓭": 0.0023995277729342867, + "罍": 0.012797481455649528, + "甃": 0.001599685181956191, + "甆": 0.05838850914140097, + "甇": 0.0023995277729342867, + "甏": 0.016796694410540006, + "甒": 0.003199370363912382, + "甓": 0.021595749956408578, + "甗": 0.012797481455649528, + "荠": 0.07118599059705051, + "藷": 0.004799055545868573, + "迺": 0.007998425909780954, + "糯": 1.4173210712131854, + "臃": 0.13757292564823242, + "蹼": 0.11117812014595528, + "甠": 0.031993703639123815, + "甡": 0.0023995277729342867, + "產": 0.0023995277729342867, + "産": 0.011197796273693337, + "甦": 0.006398740727824764, + "甪": 0.004799055545868573, + "甭": 0.5142987859989154, + "砝": 0.1263751293745391, + "蚯": 0.3615288511220992, + "羟": 0.5486920174109735, + "銲": 0.01439716663760572, + "骡": 1.023798516451962, + "畊": 0.001599685181956191, + "畋": 0.021595749956408578, + "畍": 0.03039401845716763, + "畎": 0.012797481455649528, + "葸": 0.0183963795924962, + "畑": 0.021595749956408578, + "畖": 0.04239165732183906, + "畚": 0.04399134250379526, + "畝": 0.031193861048145723, + "畞": 0.00879826850075905, + "畠": 0.07918441650683146, + "畢": 0.001599685181956191, + "畤": 0.0175965370015181, + "畦": 0.09438142573541526, + "畧": 0.02639480550227715, + "畨": 0.11837670346475813, + "畩": 0.016796694410540006, + "畫": 0.11917654605573623, + "畬": 0.09598111091737146, + "畭": 0.003199370363912382, + "畯": 0.003999212954890477, + "異": 0.003999212954890477, + "畷": 0.0023995277729342867, + "畻": 0.11997638864671432, + "畼": 0.16396773115050958, + "畾": 0.09598111091737146, + "疀": 0.001599685181956191, + "疁": 0.013597324046627625, + "疂": 0.004799055545868573, + "疃": 0.08638299982563431, + "疄": 0.21995671251897628, + "疇": 0.0023995277729342867, + "疋": 0.04639087027672954, + "疍": 0.05039008323162002, + "疎": 0.001599685181956191, + "疖": 0.03359338882108001, + "疸": 0.11997638864671432, + "疝": 0.05918835173237907, + "疠": 0.031193861048145723, + "疬": 0.0183963795924962, + "疭": 0.0023995277729342867, + "疰": 0.004799055545868573, + "痨": 0.108778592373021, + "睏": 0.016796694410540006, + "疶": 0.0023995277729342867, + "痀": 0.004799055545868573, + "痄": 0.005598898136846668, + "蛊": 0.26314821243179337, + "痉": 0.34553199930253725, + "痊": 0.3111387678904792, + "痋": 0.1431718237850791, + "痌": 0.0023995277729342867, + "痎": 0.012797481455649528, + "痐": 0.001599685181956191, + "痖": 0.004799055545868573, + "痚": 0.001599685181956191, + "砭": 0.11357764791888957, + "痝": 0.00879826850075905, + "痟": 0.004799055545868573, + "痠": 0.01439716663760572, + "痣": 0.19916080515354578, + "痤": 0.03839244436694859, + "痦": 0.00719858331880286, + "痬": 0.001599685181956191, + "痭": 0.003999212954890477, + "痱": 0.02479512032032096, + "痳": 0.012797481455649528, + "痵": 0.01439716663760572, + "痷": 0.004799055545868573, + "瘆": 0.005598898136846668, + "瘇": 0.02639480550227715, + "瘈": 0.023995277729342866, + "瘉": 0.05838850914140097, + "瘋": 0.006398740727824764, + "瘎": 0.022395592547386673, + "瘐": 0.006398740727824764, + "瘑": 0.09838063869030575, + "瘒": 0.007998425909780954, + "瘓": 0.0023995277729342867, + "瘔": 0.021595749956408578, + "瘕": 0.011997638864671433, + "瘖": 0.010397953682715242, + "瘗": 0.009598111091737147, + "瘙": 0.11197796273693338, + "瘚": 0.003199370363912382, + "瘛": 0.07678488873389717, + "瘜": 0.012797481455649528, + "瘞": 0.003199370363912382, + "瘡": 0.04079197213988287, + "瘧": 0.003999212954890477, + "瘨": 0.022395592547386673, + "瘬": 0.035992916594014296, + "瘮": 0.09838063869030575, + "瘯": 0.04159181473086097, + "瘰": 0.02879433327521144, + "瘲": 0.007998425909780954, + "瘳": 0.003199370363912382, + "瘵": 0.001599685181956191, + "瘷": 0.025594962911299056, + "瘹": 0.0175965370015181, + "瘺": 0.044791185094773346, + "瘼": 0.006398740727824764, + "瘽": 0.2695469531596182, + "癁": 0.003199370363912382, + "癃": 0.0175965370015181, + "癇": 0.005598898136846668, + "癉": 0.0023995277729342867, + "癊": 0.0023995277729342867, + "癋": 0.0183963795924962, + "癍": 0.031193861048145723, + "癎": 0.00719858331880286, + "癑": 0.001599685181956191, + "癔": 0.03039401845716763, + "癕": 0.004799055545868573, + "癗": 0.001599685181956191, + "癙": 0.0023995277729342867, + "癚": 0.011997638864671433, + "癜": 0.05918835173237907, + "癝": 0.003199370363912382, + "癡": 0.0023995277729342867, + "癥": 0.00719858331880286, + "癧": 0.001599685181956191, + "癨": 0.001599685181956191, + "癮": 0.001599685181956191, + "癱": 0.003199370363912382, + "癳": 0.09118205537150288, + "癶": 0.001599685181956191, + "癹": 0.001599685181956191, + "發": 0.0023995277729342867, + "帢": 0.0023995277729342867, + "皑": 0.11437749050986766, + "绡": 0.05678882395944478, + "芍": 0.24075261988440674, + "芨": 0.07278567577900669, + "茆": 0.013597324046627625, + "茉": 0.2799449068423334, + "蔹": 0.005598898136846668, + "藋": 0.02879433327521144, + "蛉": 0.09198189796248098, + "袷": 0.15596930524072863, + "蔻": 0.0703861480060724, + "鲑": 0.12957449973845148, + "鲫": 0.1447715089670353, + "鳝": 0.36232869371307724, + "鹇": 0.04079197213988287, + "鹳": 0.0903822127805248, + "麝": 0.4495115361296897, + "鼬": 0.1399724534211667, + "舸": 0.02719464809325525, + "癿": 0.001599685181956191, + "皊": 0.1623680459685534, + "皒": 0.023995277729342866, + "皕": 0.003999212954890477, + "皘": 0.015197009228583814, + "皝": 0.11997638864671432, + "皞": 0.01439716663760572, + "皟": 0.07198583318802859, + "皠": 0.019196222183474294, + "皡": 0.006398740727824764, + "皢": 0.14397166637605718, + "皣": 0.005598898136846668, + "皥": 0.05998819432335716, + "皧": 0.015197009228583814, + "皨": 0.15356977746779435, + "皩": 0.0023995277729342867, + "皪": 0.005598898136846668, + "皬": 0.26234836984081533, + "皯": 0.1575689904226848, + "襞": 0.0183963795924962, + "皳": 0.003999212954890477, + "皴": 0.08638299982563431, + "皵": 0.24315214765734103, + "皷": 0.009598111091737147, + "皹": 0.003199370363912382, + "皻": 0.023995277729342866, + "皼": 0.006398740727824764, + "皽": 0.001599685181956191, + "皾": 0.004799055545868573, + "盉": 0.01439716663760572, + "盌": 0.010397953682715242, + "盍": 0.020795907365430483, + "熂": 0.0023995277729342867, + "狶": 0.0023995277729342867, + "踞": 0.45750996203947064, + "盝": 0.003999212954890477, + "盡": 0.001599685181956191, + "監": 0.001599685181956191, + "盥": 0.06638693505118193, + "盦": 0.009598111091737147, + "盧": 0.0023995277729342867, + "盨": 0.0023995277729342867, + "盩": 0.006398740727824764, + "盪": 0.001599685181956191, + "盫": 0.001599685181956191, + "盬": 0.0023995277729342867, + "擩": 0.0023995277729342867, + "眐": 0.0023995277729342867, + "眢": 0.010397953682715242, + "忳": 0.0023995277729342867, + "盯": 2.013203801491866, + "盱": 0.06558709246020383, + "眙": 0.05838850914140097, + "睖": 0.004799055545868573, + "盻": 0.001599685181956191, + "眀": 0.034393231412058106, + "眄": 0.007998425909780954, + "眇": 0.02479512032032096, + "眈": 0.20475970329039245, + "眊": 0.003999212954890477, + "眍": 0.00719858331880286, + "眑": 0.003999212954890477, + "眓": 0.001599685181956191, + "眔": 0.003199370363912382, + "眘": 0.012797481455649528, + "眚": 0.006398740727824764, + "眛": 0.0023995277729342867, + "眜": 0.003999212954890477, + "眝": 0.00879826850075905, + "眥": 0.001599685181956191, + "眬": 0.08718284241661241, + "眭": 0.009598111091737147, + "眮": 0.04399134250379526, + "眰": 0.21595749956408578, + "眳": 0.04159181473086097, + "眹": 0.009598111091737147, + "眻": 0.0351930740030362, + "瞓": 0.004799055545868573, + "眽": 0.27274632352353056, + "眿": 0.019196222183474294, + "睄": 0.003199370363912382, + "睅": 0.006398740727824764, + "睆": 0.015197009228583814, + "睉": 0.003999212954890477, + "睌": 0.06638693505118193, + "睘": 0.021595749956408578, + "睙": 0.2303546662016915, + "睜": 0.0023995277729342867, + "睟": 0.0023995277729342867, + "睥": 0.011197796273693337, + "睪": 0.011197796273693337, + "睮": 0.007998425909780954, + "睱": 0.001599685181956191, + "睳": 0.14237198119410102, + "睵": 0.005598898136846668, + "睶": 0.0175965370015181, + "睷": 0.02639480550227715, + "睺": 0.007998425909780954, + "瞀": 0.005598898136846668, + "瞆": 0.001599685181956191, + "瞇": 0.001599685181956191, + "瞈": 0.003999212954890477, + "瞍": 0.0023995277729342867, + "诌": 0.11757686087378004, + "瞏": 0.022395592547386673, + "瞟": 0.28794333275211437, + "瞡": 0.0023995277729342867, + "瞦": 0.001599685181956191, + "瞭": 0.22155639770093247, + "瞮": 0.00719858331880286, + "瞵": 0.011197796273693337, + "瞺": 0.00719858331880286, + "瞼": 0.011997638864671433, + "萏": 0.015197009228583814, + "瞾": 0.04559102768575144, + "耜": 0.07838457391585336, + "矀": 0.022395592547386673, + "矁": 0.001599685181956191, + "矇": 0.09198189796248098, + "矉": 0.037592601775970486, + "矊": 0.010397953682715242, + "矌": 0.009598111091737147, + "矍": 0.06638693505118193, + "矑": 0.001599685181956191, + "矓": 0.003999212954890477, + "矖": 0.04959024064064192, + "矘": 0.0023995277729342867, + "矙": 0.01439716663760572, + "矝": 0.010397953682715242, + "矞": 0.02479512032032096, + "矟": 0.0023995277729342867, + "矡": 0.005598898136846668, + "矧": 0.00879826850075905, + "矱": 0.004799055545868573, + "矬": 0.023995277729342866, + "鐀": 0.0023995277729342867, + "碇": 0.05758866655042288, + "祗": 0.15596930524072863, + "矴": 0.001599685181956191, + "矼": 0.001599685181956191, + "矽": 0.08718284241661241, + "砀": 0.07438536096096289, + "礓": 0.006398740727824764, + "砅": 0.003999212954890477, + "砆": 0.07598504614291908, + "砇": 0.055189138777488586, + "砊": 0.010397953682715242, + "砋": 0.006398740727824764, + "砒": 0.11277780532791146, + "砕": 0.006398740727824764, + "砗": 0.05998819432335716, + "磲": 0.027994490684233344, + "砘": 0.023995277729342866, + "砙": 0.04159181473086097, + "砟": 0.012797481455649528, + "砦": 0.05039008323162002, + "砩": 0.044791185094773346, + "砪": 0.0023995277729342867, + "砫": 0.034393231412058106, + "砬": 0.016796694410540006, + "砮": 0.0023995277729342867, + "砵": 0.001599685181956191, + "镓": 0.10158000905421814, + "砹": 0.04399134250379526, + "砼": 0.00879826850075905, + "砽": 0.07678488873389717, + "硁": 0.011997638864671433, + "硃": 0.02879433327521144, + "硇": 0.031993703639123815, + "硋": 0.0023995277729342867, + "硌": 0.13597324046627624, + "硐": 0.07678488873389717, + "硔": 0.0023995277729342867, + "硖": 0.03999212954890477, + "硙": 0.020795907365430483, + "硚": 0.20955875883626102, + "镪": 0.01439716663760572, + "硞": 0.001599685181956191, + "硠": 0.003199370363912382, + "硥": 0.13757292564823242, + "硦": 0.037592601775970486, + "硧": 0.001599685181956191, + "硩": 0.0175965370015181, + "硪": 0.09918048128128384, + "硭": 0.011997638864671433, + "硶": 0.07838457391585336, + "硸": 0.005598898136846668, + "硻": 0.003999212954890477, + "硾": 0.004799055545868573, + "硿": 0.0023995277729342867, + "碂": 0.00719858331880286, + "碉": 0.2655477402047277, + "碡": 0.02879433327521144, + "縻": 0.5398937489102145, + "碏": 0.006398740727824764, + "碔": 0.011197796273693337, + "碕": 0.03039401845716763, + "酊": 0.04639087027672954, + "碞": 0.001599685181956191, + "碲": 0.06238772209629145, + "碹": 0.001599685181956191, + "碻": 0.009598111091737147, + "磃": 0.005598898136846668, + "磔": 0.03999212954890477, + "磖": 0.003199370363912382, + "磝": 0.005598898136846668, + "磠": 0.0023995277729342867, + "磡": 0.003999212954890477, + "磥": 0.015996851819561907, + "镌": 0.1935619070166991, + "礲": 0.007998425909780954, + "磭": 0.005598898136846668, + "磱": 0.05678882395944478, + "磴": 0.3783255455326392, + "磶": 0.010397953682715242, + "铟": 0.04799055545868573, + "磹": 0.001599685181956191, + "脒": 0.016796694410540006, + "磻": 0.003199370363912382, + "磼": 0.006398740727824764, + "磾": 0.05918835173237907, + "礂": 0.010397953682715242, + "礅": 0.009598111091737147, + "礇": 0.037592601775970486, + "礊": 0.015996851819561907, + "礋": 0.031993703639123815, + "礌": 0.029594175866189534, + "礙": 0.001599685181956191, + "礝": 0.001599685181956191, + "礞": 0.009598111091737147, + "礠": 0.022395592547386673, + "礤": 0.0023995277729342867, + "礩": 0.05598898136846669, + "礮": 0.02319543513836477, + "礻": 0.0183963795924962, + "礽": 0.010397953682715242, + "祂": 0.016796694410540006, + "祃": 0.003999212954890477, + "祅": 0.007998425909780954, + "祆": 0.07918441650683146, + "祋": 0.001599685181956191, + "祎": 0.3127384530724353, + "祏": 0.019196222183474294, + "祒": 0.001599685181956191, + "祓": 0.02879433327521144, + "祔": 0.003199370363912382, + "鮀": 0.0023995277729342867, + "饐": 0.0023995277729342867, + "抶": 0.0023995277729342867, + "閒": 0.0023995277729342867, + "祢": 0.03919228695792668, + "祣": 0.001599685181956191, + "祦": 0.051989768413576214, + "祩": 0.004799055545868573, + "祪": 0.001599685181956191, + "祫": 0.0183963795924962, + "祬": 0.00719858331880286, + "祰": 0.0023995277729342867, + "祲": 0.0023995277729342867, + "祳": 0.0023995277729342867, + "祴": 0.010397953682715242, + "祵": 0.005598898136846668, + "祹": 0.005598898136846668, + "祻": 0.012797481455649528, + "祼": 0.007998425909780954, + "祽": 0.020795907365430483, + "祾": 0.009598111091737147, + "祿": 0.009598111091737147, + "禂": 0.004799055545868573, + "禆": 0.012797481455649528, + "禊": 0.003199370363912382, + "禋": 0.00719858331880286, + "禌": 0.003199370363912382, + "聂": 0.971808748038386, + "禐": 0.007998425909780954, + "禖": 0.005598898136846668, + "禛": 0.108778592373021, + "禠": 0.0023995277729342867, + "禥": 0.006398740727824764, + "禦": 0.003199370363912382, + "禨": 0.06718677764216002, + "禩": 0.006398740727824764, + "禮": 0.0023995277729342867, + "禰": 0.5254965822726088, + "禵": 0.005598898136846668, + "屩": 0.0023995277729342867, + "蹻": 0.03039401845716763, + "秅": 0.015996851819561907, + "纨": 0.47110728608609825, + "秏": 0.0023995277729342867, + "跣": 0.05758866655042288, + "秗": 0.005598898136846668, + "笈": 0.31193861048145727, + "秙": 0.019196222183474294, + "赁": 0.38392444366948586, + "艽": 0.08958237018954669, + "秫": 0.03839244436694859, + "秭": 0.6662688782847536, + "秮": 0.006398740727824764, + "秱": 0.007998425909780954, + "秴": 0.00719858331880286, + "秷": 0.037592601775970486, + "秹": 0.00719858331880286, + "秺": 0.06318756468726955, + "秼": 0.003999212954890477, + "稌": 0.001599685181956191, + "稒": 0.0023995277729342867, + "稗": 0.06558709246020383, + "婑": 0.0023995277729342867, + "稛": 0.003999212954890477, + "稜": 0.003199370363912382, + "稞": 0.13437355528432005, + "稧": 0.001599685181956191, + "稱": 0.07198583318802859, + "稶": 0.013597324046627625, + "稸": 0.00719858331880286, + "稹": 0.09678095350834955, + "穀": 0.003999212954890477, + "穄": 0.00719858331880286, + "穇": 0.010397953682715242, + "穋": 0.001599685181956191, + "穜": 0.001599685181956191, + "穨": 0.025594962911299056, + "穬": 0.0183963795924962, + "穭": 0.001599685181956191, + "穸": 0.04879039804966383, + "穻": 0.005598898136846668, + "穼": 0.00719858331880286, + "穽": 0.00879826850075905, + "窬": 0.07118599059705051, + "窀": 0.015197009228583814, + "窆": 0.019196222183474294, + "窇": 0.05039008323162002, + "窋": 0.003999212954890477, + "窎": 0.0023995277729342867, + "窓": 0.003999212954890477, + "窛": 0.021595749956408578, + "窞": 0.04399134250379526, + "窡": 0.18796300887985246, + "窢": 0.001599685181956191, + "觎": 0.13917261083018861, + "窭": 0.035992916594014296, + "窳": 0.029594175866189534, + "窸": 0.034393231412058106, + "窻": 0.001599685181956191, + "竃": 0.001599685181956191, + "竆": 0.010397953682715242, + "竈": 0.003999212954890477, + "竊": 0.001599685181956191, + "竑": 0.034393231412058106, + "竘": 0.001599685181956191, + "竝": 0.001599685181956191, + "竫": 0.00879826850075905, + "蕻": 0.012797481455649528, + "竳": 0.021595749956408578, + "竴": 2.4379202173012353, + "竵": 0.10477937941813051, + "競": 0.006398740727824764, + "竷": 0.18156426815202767, + "竸": 0.001599685181956191, + "笆": 0.3223365641641725, + "竻": 0.11517733310084576, + "竼": 0.001599685181956191, + "竾": 0.035992916594014296, + "笀": 0.06558709246020383, + "笁": 0.19036253665278674, + "笂": 0.7950435354322269, + "笅": 1.1117812014595527, + "笇": 0.016796694410540006, + "笉": 2.237959569556711, + "笊": 0.03999212954890477, + "笌": 0.034393231412058106, + "笍": 0.00719858331880286, + "笎": 0.01439716663760572, + "笐": 0.00879826850075905, + "笓": 0.013597324046627625, + "笕": 0.044791185094773346, + "笖": 0.16636725892344387, + "笘": 0.05039008323162002, + "笚": 0.00719858331880286, + "笜": 0.001599685181956191, + "笟": 0.03359338882108001, + "笡": 0.004799055545868573, + "笢": 0.2655477402047277, + "笣": 0.023995277729342866, + "笤": 0.10477937941813051, + "笥": 0.07518520355194097, + "籙": 0.0023995277729342867, + "笧": 0.0023995277729342867, + "笩": 0.010397953682715242, + "笪": 0.043191499912817156, + "笭": 0.003199370363912382, + "笮": 0.08478331464367812, + "笱": 0.07518520355194097, + "笳": 0.06478724986922574, + "笸": 0.06398740727824763, + "笾": 0.0351930740030362, + "筅": 0.019196222183474294, + "筆": 0.001599685181956191, + "筇": 0.03839244436694859, + "筈": 0.0023995277729342867, + "筊": 0.001599685181956191, + "筎": 0.0023995277729342867, + "筘": 0.006398740727824764, + "筚": 0.031193861048145723, + "篥": 0.016796694410540006, + "褴": 0.13757292564823242, + "褛": 0.11917654605573623, + "筜": 0.10237985164519622, + "筟": 0.04639087027672954, + "筢": 0.0023995277729342867, + "筨": 0.019996064774452385, + "筩": 0.004799055545868573, + "筫": 0.13277387010236386, + "筰": 0.015996851819561907, + "筳": 0.001599685181956191, + "筴": 0.004799055545868573, + "筶": 0.06158787950531335, + "躇": 0.5222972119086964, + "筻": 0.005598898136846668, + "筼": 0.003199370363912382, + "筽": 0.2663475827957058, + "箁": 0.010397953682715242, + "箏": 0.003999212954890477, + "箐": 0.2119582866091953, + "箒": 0.003999212954890477, + "箖": 0.019196222183474294, + "箙": 0.06718677764216002, + "箜": 0.02719464809325525, + "篌": 0.029594175866189534, + "箝": 0.031193861048145723, + "箞": 0.31673766602732584, + "箟": 0.07758473132487526, + "箠": 0.011197796273693337, + "箢": 0.6334753320546517, + "箣": 0.43111515653719346, + "箤": 0.0183963795924962, + "箥": 0.00719858331880286, + "箦": 0.003199370363912382, + "箨": 0.0175965370015181, + "箬": 0.027994490684233344, + "豌": 0.6694682486486659, + "箮": 0.08398347205270003, + "箯": 0.12877465714747338, + "箰": 0.02319543513836477, + "箲": 0.001599685181956191, + "箶": 0.03839244436694859, + "箷": 0.003999212954890477, + "箹": 0.034393231412058106, + "箻": 0.010397953682715242, + "箼": 0.006398740727824764, + "箾": 0.003199370363912382, + "節": 0.09358158314443717, + "篂": 0.001599685181956191, + "篃": 0.6726676190125783, + "範": 0.04159181473086097, + "篔": 0.001599685181956191, + "篘": 1.055792220091086, + "篚": 0.003999212954890477, + "篯": 0.004799055545868573, + "篴": 0.001599685181956191, + "篼": 0.016796694410540006, + "簃": 0.010397953682715242, + "簋": 0.05918835173237907, + "簏": 0.005598898136846668, + "簖": 0.0023995277729342867, + "簙": 0.0023995277729342867, + "簚": 0.001599685181956191, + "簛": 0.006398740727824764, + "簝": 0.004799055545868573, + "簞": 0.0183963795924962, + "簟": 0.05678882395944478, + "簠": 0.022395592547386673, + "簡": 2.5762929855404457, + "簢": 0.00719858331880286, + "簣": 0.010397953682715242, + "簤": 0.13597324046627624, + "簥": 0.011197796273693337, + "簦": 0.053589453595532396, + "簨": 0.4447124805838211, + "簩": 0.32953514748297535, + "簬": 0.3175375086183039, + "簭": 0.0175965370015181, + "簮": 0.01439716663760572, + "簯": 0.21275812920017342, + "簰": 0.013597324046627625, + "簱": 0.004799055545868573, + "簲": 0.14557135155801337, + "簳": 0.07118599059705051, + "簵": 0.023995277729342866, + "簷": 0.00879826850075905, + "簹": 0.004799055545868573, + "簺": 0.17036647187833434, + "簻": 0.031993703639123815, + "簽": 0.004799055545868573, + "簾": 0.011997638864671433, + "籀": 0.029594175866189534, + "籂": 0.011997638864671433, + "籆": 0.001599685181956191, + "籇": 0.001599685181956191, + "籓": 0.007998425909780954, + "籔": 0.007998425909780954, + "籕": 0.0023995277729342867, + "籗": 0.6742673041945345, + "籚": 0.004799055545868573, + "籝": 0.021595749956408578, + "籤": 0.005598898136846668, + "籰": 0.019996064774452385, + "籲": 0.0023995277729342867, + "鄢": 0.12077623123769242, + "芾": 0.2951419160709173, + "彡": 0.004799055545868573, + "籹": 0.004799055545868573, + "粂": 0.08398347205270003, + "粈": 0.28794333275211437, + "萆": 0.019996064774452385, + "薢": 0.00719858331880286, + "粊": 0.007998425909780954, + "粌": 0.04239165732183906, + "粍": 0.11997638864671432, + "粎": 0.06878646282411621, + "粏": 0.04159181473086097, + "粐": 0.08718284241661241, + "粑": 1.8460366999774445, + "粓": 0.04799055545868573, + "粔": 0.001599685181956191, + "粖": 0.09118205537150288, + "糲": 0.004799055545868573, + "粙": 0.025594962911299056, + "粛": 0.053589453595532396, + "粜": 0.06478724986922574, + "粞": 0.020795907365430483, + "粠": 0.27194648093255247, + "粡": 0.22395592547386675, + "粢": 0.019196222183474294, + "粣": 0.00879826850075905, + "粦": 0.05998819432335716, + "粧": 0.013597324046627625, + "粨": 0.08078410168878765, + "粩": 0.022395592547386673, + "粫": 0.012797481455649528, + "粬": 1.1653706550550853, + "粭": 0.04239165732183906, + "粯": 0.051989768413576214, + "粰": 0.23915293470245055, + "粲": 0.12157607382867051, + "粳": 0.2663475827957058, + "粴": 0.025594962911299056, + "粵": 0.0023995277729342867, + "粶": 0.007998425909780954, + "粷": 0.05598898136846669, + "粸": 0.02639480550227715, + "粺": 0.035992916594014296, + "粻": 0.0023995277729342867, + "粽": 0.3215367215731944, + "糁": 0.05039008323162002, + "糇": 0.013597324046627625, + "糈": 0.003199370363912382, + "糌": 0.023995277729342866, + "糍": 0.6326754894636736, + "糗": 0.011197796273693337, + "糣": 0.003999212954890477, + "糨": 0.025594962911299056, + "糵": 0.001599685181956191, + "糸": 0.010397953682715242, + "糺": 0.004799055545868573, + "紀": 0.0023995277729342867, + "紁": 0.001599685181956191, + "紅": 0.003199370363912382, + "紆": 0.001599685181956191, + "納": 0.001599685181956191, + "紑": 0.23595356433853817, + "紒": 0.037592601775970486, + "紓": 0.034393231412058106, + "純": 0.015197009228583814, + "紕": 0.06078803691433526, + "紗": 0.001599685181956191, + "紙": 0.004799055545868573, + "級": 0.006398740727824764, + "紛": 0.003199370363912382, + "紜": 0.0023995277729342867, + "紝": 9.318966027485791, + "紞": 0.04959024064064192, + "紟": 0.47190712867707635, + "紡": 0.055189138777488586, + "紣": 0.003199370363912382, + "紤": 0.015996851819561907, + "紦": 0.04559102768575144, + "紨": 0.009598111091737147, + "紩": 0.03359338882108001, + "紪": 0.027994490684233344, + "绀": 0.13837276823921052, + "苜": 0.0735855183699848, + "蓿": 0.09278174055345909, + "葳": 0.0175965370015181, + "紬": 0.034393231412058106, + "紭": 0.02319543513836477, + "紮": 0.043191499912817156, + "腓": 0.39832161030709157, + "細": 0.955012053627846, + "紱": 0.027994490684233344, + "紲": 0.0023995277729342867, + "紳": 0.009598111091737147, + "紴": 0.0023995277729342867, + "紵": 0.309539082708523, + "紶": 0.4647085453582735, + "絀": 0.001599685181956191, + "絁": 0.003999212954890477, + "絈": 0.004799055545868573, + "絋": 0.0023995277729342867, + "絍": 0.0023995277729342867, + "絏": 0.003999212954890477, + "結": 0.005598898136846668, + "絒": 0.015996851819561907, + "絕": 0.001599685181956191, + "絙": 0.021595749956408578, + "絛": 0.00719858331880286, + "給": 0.0023995277729342867, + "絧": 0.0023995277729342867, + "絩": 0.001599685181956191, + "絪": 0.001599685181956191, + "絯": 0.001599685181956191, + "統": 0.0023995277729342867, + "絲": 0.001599685181956191, + "絶": 0.001599685181956191, + "絷": 0.005598898136846668, + "絺": 0.003999212954890477, + "絾": 0.3127384530724353, + "綃": 0.001599685181956191, + "綅": 0.06478724986922574, + "綆": 0.029594175866189534, + "綇": 0.12077623123769242, + "綉": 0.003999212954890477, + "綊": 0.0175965370015181, + "綋": 0.5134989434079373, + "綍": 0.07918441650683146, + "綎": 0.05118992582259811, + "綏": 0.00879826850075905, + "綑": 0.04959024064064192, + "綒": 0.003199370363912382, + "經": 0.006398740727824764, + "綔": 0.2647478976137496, + "綖": 0.012797481455649528, + "綘": 1.1261783680971584, + "綝": 0.05838850914140097, + "維": 0.001599685181956191, + "綮": 0.003999212954890477, + "綱": 0.001599685181956191, + "網": 0.011197796273693337, + "綵": 0.005598898136846668, + "綷": 0.0023995277729342867, + "緐": 0.0023995277729342867, + "緗": 0.05039008323162002, + "線": 0.13837276823921052, + "緛": 0.012797481455649528, + "緜": 0.0023995277729342867, + "緝": 0.0183963795924962, + "緞": 0.021595749956408578, + "緟": 0.055189138777488586, + "緡": 0.009598111091737147, + "緢": 0.22075655510995434, + "緣": 0.1575689904226848, + "緤": 0.006398740727824764, + "緥": 0.04559102768575144, + "緦": 0.0023995277729342867, + "編": 0.05039008323162002, + "緩": 0.009598111091737147, + "緪": 0.0023995277729342867, + "緫": 0.004799055545868573, + "緬": 0.011997638864671433, + "緭": 0.00719858331880286, + "緰": 0.17196615706029053, + "緱": 0.5414934340921707, + "緲": 0.003999212954890477, + "緳": 0.02719464809325525, + "練": 0.0023995277729342867, + "緵": 0.016796694410540006, + "緶": 0.005598898136846668, + "緷": 0.034393231412058106, + "緸": 0.015197009228583814, + "緹": 0.01439716663760572, + "縉": 0.001599685181956191, + "縊": 0.10397953682715243, + "縌": 0.0023995277729342867, + "縍": 0.0175965370015181, + "縎": 0.034393231412058106, + "縕": 0.0023995277729342867, + "縖": 0.005598898136846668, + "縗": 0.0023995277729342867, + "縠": 0.004799055545868573, + "縢": 0.003999212954890477, + "縦": 0.006398740727824764, + "縧": 0.021595749956408578, + "縯": 0.023995277729342866, + "縹": 0.04079197213988287, + "縺": 0.037592601775970486, + "縼": 0.013597324046627625, + "總": 0.003999212954890477, + "績": 0.3655280640769896, + "縿": 0.004799055545868573, + "繀": 0.6062806839613963, + "繂": 0.00719858331880286, + "繃": 0.477506026813923, + "繄": 0.003999212954890477, + "繆": 0.005598898136846668, + "繈": 0.00719858331880286, + "繉": 0.005598898136846668, + "繊": 0.020795907365430483, + "繋": 0.01439716663760572, + "繌": 0.011197796273693337, + "繍": 0.06718677764216002, + "繎": 0.04799055545868573, + "繐": 0.0023995277729342867, + "繑": 0.006398740727824764, + "繓": 0.004799055545868573, + "織": 0.20475970329039245, + "繕": 0.6294761190997612, + "繖": 1.2589522381995224, + "繘": 0.21435781438212959, + "繙": 0.08318362946172193, + "繚": 0.08798268500759052, + "繛": 0.15356977746779435, + "繜": 0.003199370363912382, + "繝": 0.0183963795924962, + "繬": 0.3207368789822163, + "繯": 0.02719464809325525, + "繲": 0.00879826850075905, + "繸": 0.001599685181956191, + "繼": 0.003199370363912382, + "纇": 0.016796694410540006, + "續": 0.0023995277729342867, + "纍": 0.00719858331880286, + "纎": 0.03039401845716763, + "纔": 0.007998425909780954, + "纘": 0.10717890719106479, + "纛": 0.08318362946172193, + "纟": 0.003999212954890477, + "绔": 0.30314034198069817, + "袴": 0.010397953682715242, + "纩": 0.00719858331880286, + "纫": 0.20875891624528292, + "纻": 0.027994490684233344, + "绁": 0.159168675604641, + "绋": 0.12157607382867051, + "绐": 0.35193074003036207, + "莴": 0.043191499912817156, + "苣": 0.0887825275985686, + "缡": 0.11197796273693338, + "绗": 0.43431452690110584, + "缢": 0.24155246247538484, + "绤": 0.001599685181956191, + "绫": 0.3207368789822163, + "绱": 0.21995671251897628, + "绲": 0.1247754441925829, + "绹": 0.006398740727824764, + "绺": 0.14397166637605718, + "绻": 0.1975611199715896, + "缁": 1.3253391732507043, + "缂": 0.20875891624528292, + "缈": 0.2607486846588591, + "缋": 0.0367927591849924, + "缌": 0.11357764791888957, + "缍": 0.0351930740030362, + "缏": 0.05039008323162002, + "缑": 0.016796694410540006, + "缒": 0.15117024969486006, + "缗": 0.07278567577900669, + "缜": 0.1447715089670353, + "蛏": 0.1055792220091086, + "缥": 0.21035860142723914, + "缦": 0.05039008323162002, + "缧": 0.07278567577900669, + "缫": 0.1767652126061591, + "缯": 0.051989768413576214, + "缱": 0.17916474037909338, + "缲": 0.001599685181956191, + "缳": 0.001599685181956191, + "镊": 0.06398740727824763, + "缼": 0.001599685181956191, + "罂": 0.20875891624528292, + "罅": 0.12237591641964861, + "罉": 0.001599685181956191, + "罟": 0.02719464809325525, + "诤": 0.1607683607865972, + "罘": 0.04399134250379526, + "罝": 0.001599685181956191, + "罱": 0.02879433327521144, + "罷": 0.029594175866189534, + "罹": 0.10477937941813051, + "罼": 0.012797481455649528, + "罽": 0.03919228695792668, + "罾": 0.019196222183474294, + "罿": 0.022395592547386673, + "羅": 0.003199370363912382, + "羆": 0.001599685181956191, + "羇": 0.004799055545868573, + "踯": 0.020795907365430483, + "躅": 0.02479512032032096, + "羋": 0.001599685181956191, + "羍": 0.04079197213988287, + "羑": 0.012797481455649528, + "羓": 0.001599685181956191, + "羕": 0.004799055545868573, + "羛": 0.0023995277729342867, + "羝": 0.053589453595532396, + "羣": 0.053589453595532396, + "羶": 0.011997638864671433, + "義": 0.001599685181956191, + "羪": 0.031993703639123815, + "羱": 0.001599685181956191, + "羳": 0.001599685181956191, + "羼": 0.007998425909780954, + "茑": 0.006398740727824764, + "翀": 0.00879826850075905, + "翂": 0.22475576806484485, + "翃": 0.001599685181956191, + "翄": 0.010397953682715242, + "翈": 0.003199370363912382, + "翉": 0.001599685181956191, + "翋": 0.015197009228583814, + "翌": 0.7294564429720231, + "翑": 0.004799055545868573, + "翚": 0.02719464809325525, + "翛": 0.003199370363912382, + "翡": 0.2831442772062458, + "翣": 0.004799055545868573, + "跹": 0.05598898136846669, + "翬": 0.001599685181956191, + "翱": 0.17276599965126863, + "鸹": 0.06398740727824763, + "耂": 0.051989768413576214, + "耄": 0.09678095350834955, + "耋": 0.019196222183474294, + "耊": 0.004799055545868573, + "黏": 0.5310954804094554, + "耑": 0.00879826850075905, + "耒": 0.06078803691433526, + "耓": 0.013597324046627625, + "耖": 0.005598898136846668, + "耱": 0.006398740727824764, + "耠": 0.001599685181956191, + "耡": 0.034393231412058106, + "耢": 0.00719858331880286, + "耣": 0.0023995277729342867, + "耧": 0.0183963795924962, + "耩": 0.00719858331880286, + "耪": 0.04639087027672954, + "耰": 0.005598898136846668, + "黒": 0.0023995277729342867, + "耵": 0.006398740727824764, + "聍": 0.004799055545868573, + "耽": 1.2765487752010405, + "聀": 0.011197796273693337, + "聃": 0.00879826850075905, + "聄": 0.004799055545868573, + "聛": 0.007998425909780954, + "聢": 0.0023995277729342867, + "聣": 0.023995277729342866, + "聤": 0.011197796273693337, + "聯": 0.003999212954890477, + "職": 0.0023995277729342867, + "肀": 0.022395592547386673, + "肄": 0.2647478976137496, + "苁": 0.11037827755497717, + "肐": 0.011197796273693337, + "肙": 0.011197796273693337, + "蛔": 0.4207172028544783, + "肛": 0.410319249171763, + "肜": 0.0183963795924962, + "胰": 0.6214776931899801, + "肞": 0.0023995277729342867, + "謭": 0.0023995277729342867, + "谫": 0.004799055545868573, + "遯": 0.0543892961865105, + "肦": 0.00719858331880286, + "胛": 0.08318362946172193, + "髃": 0.003999212954890477, + "肫": 0.032793546230101916, + "肭": 0.031193861048145723, + "肮": 0.3047400271626544, + "肷": 0.03839244436694859, + "肸": 0.0023995277729342867, + "胂": 0.06078803691433526, + "鼷": 0.031193861048145723, + "胈": 0.5286959526365211, + "褡": 0.09758079609932765, + "胍": 0.07518520355194097, + "胗": 0.02319543513836477, + "荽": 0.035992916594014296, + "胨": 0.0351930740030362, + "胩": 0.03039401845716763, + "胪": 1.3925259508928645, + "胬": 0.025594962911299056, + "胭": 0.31353829566341346, + "胯": 0.3639283788950335, + "胴": 0.03839244436694859, + "胵": 0.00719858331880286, + "鬲": 0.044791185094773346, + "脁": 0.015996851819561907, + "脃": 0.007998425909780954, + "脋": 0.003199370363912382, + "脌": 0.0023995277729342867, + "脎": 0.003199370363912382, + "镣": 0.1911623792437648, + "脞": 0.005598898136846668, + "脧": 0.001599685181956191, + "脬": 0.003199370363912382, + "腂": 0.001599685181956191, + "腄": 0.011197796273693337, + "腉": 0.016796694410540006, + "臜": 0.01439716663760572, + "臢": 0.025594962911299056, + "腗": 0.003199370363912382, + "腘": 0.013597324046627625, + "腙": 0.009598111091737147, + "腚": 0.02879433327521144, + "腝": 0.023995277729342866, + "腠": 0.027994490684233344, + "腡": 0.00719858331880286, + "醎": 0.005598898136846668, + "腦": 0.0023995277729342867, + "腫": 0.004799055545868573, + "骶": 0.08238378687074384, + "腷": 0.009598111091737147, + "诽": 0.2319543513836477, + "鲻": 0.02719464809325525, + "鼢": 0.010397953682715242, + "腼": 0.1751655274242029, + "腽": 0.004799055545868573, + "膅": 0.0023995277729342867, + "膆": 0.001599685181956191, + "膌": 0.003199370363912382, + "膒": 0.003199370363912382, + "膙": 0.003999212954890477, + "膥": 0.2711466383415744, + "膭": 0.006398740727824764, + "膲": 0.03919228695792668, + "膴": 0.001599685181956191, + "膵": 0.03039401845716763, + "臁": 0.10957843496399909, + "膞": 0.0023995277729342867, + "臑": 0.03999212954890477, + "臇": 0.005598898136846668, + "臌": 0.004799055545868573, + "臞": 0.006398740727824764, + "迄": 1.0158000905421813, + "郐": 0.019196222183474294, + "臮": 0.0023995277729342867, + "臺": 0.05039008323162002, + "臽": 0.34793152707547154, + "臿": 0.004799055545868573, + "舁": 0.005598898136846668, + "舃": 0.04719071286770763, + "與": 0.006398740727824764, + "興": 0.001599685181956191, + "舉": 0.003999212954890477, + "舓": 0.005598898136846668, + "舖": 0.004799055545868573, + "雩": 0.011197796273693337, + "舡": 0.012797481455649528, + "舢": 0.09758079609932765, + "舥": 0.04719071286770763, + "舨": 0.019196222183474294, + "舭": 0.00719858331880286, + "舯": 0.022395592547386673, + "舲": 0.001599685181956191, + "舳": 0.029594175866189534, + "舻": 0.05678882395944478, + "舴": 0.03039401845716763, + "艋": 0.031993703639123815, + "舺": 0.005598898136846668, + "舾": 0.043191499912817156, + "艄": 0.17596537001518103, + "艉": 0.044791185094773346, + "艌": 0.032793546230101916, + "艍": 0.001599685181956191, + "艏": 0.035992916594014296, + "艔": 0.013597324046627625, + "艚": 0.023995277729342866, + "艟": 0.02319543513836477, + "艨": 0.031993703639123815, + "艴": 0.0023995277729342867, + "艹": 0.06318756468726955, + "艿": 0.19196222183474293, + "芄": 0.05838850914140097, + "芈": 0.0367927591849924, + "芉": 0.031993703639123815, + "芏": 0.05838850914140097, + "芑": 0.034393231412058106, + "芓": 0.003999212954890477, + "芗": 0.07678488873389717, + "芘": 0.031993703639123815, + "芟": 0.10637906460008671, + "芠": 0.0183963795924962, + "芣": 0.001599685181956191, + "芤": 0.07118599059705051, + "芫": 0.07998425909780954, + "芰": 0.22235624029191056, + "裈": 0.011197796273693337, + "颭": 0.011197796273693337, + "貎": 0.0023995277729342867, + "芲": 0.016796694410540006, + "芴": 0.02719464809325525, + "芵": 0.005598898136846668, + "薹": 0.08398347205270003, + "芺": 0.0023995277729342867, + "苈": 0.034393231412058106, + "苊": 0.02639480550227715, + "苎": 0.1399724534211667, + "苖": 0.001599685181956191, + "苘": 0.011997638864671433, + "苴": 0.05998819432335716, + "苡": 0.08718284241661241, + "苢": 0.001599685181956191, + "荬": 0.003999212954890477, + "苤": 0.06798662023313812, + "荞": 0.18796300887985246, + "苭": 0.0023995277729342867, + "苰": 0.003199370363912382, + "苸": 0.051989768413576214, + "苺": 0.010397953682715242, + "苽": 0.0023995277729342867, + "苾": 0.013597324046627625, + "茁": 0.09118205537150288, + "鲞": 0.013597324046627625, + "茇": 0.0023995277729342867, + "茈": 0.001599685181956191, + "茌": 0.011197796273693337, + "茐": 0.025594962911299056, + "茓": 0.032793546230101916, + "茕": 0.02319543513836477, + "茚": 0.04239165732183906, + "茤": 0.027994490684233344, + "茳": 0.0023995277729342867, + "馓": 0.04799055545868573, + "茺": 0.00879826850075905, + "茼": 0.01439716663760572, + "澭": 0.0023995277729342867, + "荇": 0.01439716663760572, + "荈": 0.001599685181956191, + "菅": 0.037592601775970486, + "菴": 0.010397953682715242, + "薙": 0.0351930740030362, + "蜢": 0.02319543513836477, + "荑": 0.0183963795924962, + "馑": 0.09118205537150288, + "荖": 0.006398740727824764, + "荙": 0.001599685181956191, + "荜": 0.02879433327521144, + "荝": 0.012797481455649528, + "荨": 0.09278174055345909, + "荩": 0.07278567577900669, + "荰": 0.015996851819561907, + "荸": 0.022395592547386673, + "莅": 0.20076049033550197, + "莆": 0.20236017551745816, + "莙": 0.001599685181956191, + "莜": 0.02319543513836477, + "莝": 0.001599685181956191, + "莣": 0.003199370363912382, + "莧": 0.001599685181956191, + "莩": 0.016796694410540006, + "莪": 0.03999212954890477, + "莮": 0.02479512032032096, + "莰": 0.005598898136846668, + "菔": 0.0367927591849924, + "莳": 0.029594175866189534, + "莶": 0.007998425909780954, + "儛": 0.0023995277729342867, + "菂": 0.001599685181956191, + "菃": 0.011997638864671433, + "菉": 0.003999212954890477, + "菋": 0.001599685181956191, + "菍": 0.001599685181956191, + "菎": 0.0023995277729342867, + "菏": 0.3551301103942744, + "菑": 0.527096267454565, + "菓": 0.009598111091737147, + "菝": 0.015197009228583814, + "葜": 0.011997638864671433, + "菡": 0.04799055545868573, + "菥": 0.00879826850075905, + "菰": 0.04159181473086097, + "菻": 0.007998425909780954, + "菼": 0.001599685181956191, + "菾": 0.004799055545868573, + "萋": 0.015996851819561907, + "萐": 0.3847242862604639, + "萑": 0.021595749956408578, + "萒": 0.0527896110045543, + "萣": 0.0023995277729342867, + "萩": 0.0023995277729342867, + "萬": 0.001599685181956191, + "萵": 0.0023995277729342867, + "萷": 0.0351930740030362, + "萹": 0.0023995277729342867, + "葀": 0.003199370363912382, + "葇": 0.003199370363912382, + "葉": 0.04639087027672954, + "葎": 0.0023995277729342867, + "葖": 0.02319543513836477, + "葙": 0.006398740727824764, + "葟": 0.00719858331880286, + "蕤": 0.025594962911299056, + "葴": 0.0023995277729342867, + "葶": 0.009598111091737147, + "葹": 0.001599685181956191, + "蒀": 0.10237985164519622, + "蒉": 0.003199370363912382, + "蒍": 0.001599685181956191, + "蒎": 0.02319543513836477, + "蒕": 0.016796694410540006, + "蒖": 0.001599685181956191, + "蒟": 0.0023995277729342867, + "蒢": 0.001599685181956191, + "蒨": 0.001599685181956191, + "蒩": 0.001599685181956191, + "蒪": 0.04239165732183906, + "蒫": 0.00879826850075905, + "蒭": 0.001599685181956191, + "蒯": 0.7310561281539792, + "蒱": 0.029594175866189534, + "蒴": 0.19916080515354578, + "蒷": 0.003199370363912382, + "蒹": 0.020795907365430483, + "蒻": 0.0023995277729342867, + "蒼": 0.001599685181956191, + "蒽": 0.27194648093255247, + "蒾": 0.003199370363912382, + "蓁": 0.009598111091737147, + "蓂": 0.001599685181956191, + "蓇": 0.020795907365430483, + "蓊": 0.015996851819561907, + "葧": 0.0023995277729342867, + "蓋": 0.001599685181956191, + "蓎": 0.001599685181956191, + "蓏": 0.0023995277729342867, + "蓐": 0.004799055545868573, + "蓕": 0.015996851819561907, + "蓖": 0.11597717569182385, + "靛": 0.4511112213116458, + "蓣": 0.022395592547386673, + "蓦": 0.7894446372953803, + "蓧": 0.10237985164519622, + "蓨": 0.005598898136846668, + "蓩": 0.03839244436694859, + "蓰": 0.004799055545868573, + "蔊": 0.001599685181956191, + "蔔": 0.20955875883626102, + "蔕": 0.00879826850075905, + "蔛": 0.031193861048145723, + "蔟": 0.007998425909780954, + "蔣": 0.001599685181956191, + "蔨": 0.001599685181956191, + "蔪": 0.08638299982563431, + "蔭": 0.00719858331880286, + "蔵": 0.006398740727824764, + "蔸": 0.009598111091737147, + "蕁": 0.004799055545868573, + "蕍": 0.012797481455649528, + "蕓": 0.04639087027672954, + "蕖": 0.0351930740030362, + "蕞": 0.022395592547386673, + "蕨": 0.2895430179340706, + "蕬": 0.01439716663760572, + "蕲": 1.5268995061771844, + "蕹": 0.019196222183474294, + "蕺": 0.016796694410540006, + "薅": 0.03039401845716763, + "薈": 0.0023995277729342867, + "薏": 0.05598898136846669, + "薑": 0.003999212954890477, + "薔": 0.02479512032032096, + "薗": 0.003999212954890477, + "薜": 0.05678882395944478, + "薟": 0.032793546230101916, + "薤": 0.01439716663760572, + "薥": 0.001599685181956191, + "薨": 0.03359338882108001, + "薫": 0.001599685181956191, + "薳": 0.00719858331880286, + "薷": 0.029594175866189534, + "薸": 0.001599685181956191, + "薽": 0.00719858331880286, + "薾": 0.003999212954890477, + "藁": 0.04079197213988287, + "藂": 0.020795907365430483, + "藌": 0.06078803691433526, + "藐": 0.19276206442572102, + "藛": 0.00719858331880286, + "藠": 0.0023995277729342867, + "藥": 0.001599685181956191, + "藦": 0.006398740727824764, + "藨": 0.00719858331880286, + "蘆": 0.001599685181956191, + "蘋": 0.016796694410540006, + "蘍": 0.001599685181956191, + "蘏": 0.02319543513836477, + "蘘": 0.009598111091737147, + "蘙": 0.019196222183474294, + "蘝": 0.0023995277729342867, + "蘠": 0.0023995277729342867, + "蘧": 0.00719858331880286, + "蘨": 0.001599685181956191, + "蘭": 0.004799055545868573, + "蘸": 0.3151379808453696, + "蘼": 0.03839244436694859, + "虀": 0.001599685181956191, + "虁": 0.055189138777488586, + "虓": 0.006398740727824764, + "虘": 0.6494721838742136, + "虛": 0.003999212954890477, + "虠": 0.001599685181956191, + "虩": 0.004799055545868573, + "虮": 0.06478724986922574, + "虼": 0.15117024969486006, + "螽": 0.015996851819561907, + "蚱": 0.1055792220091086, + "蟥": 0.04959024064064192, + "蚃": 0.009598111091737147, + "蚇": 0.013597324046627625, + "蚋": 0.051989768413576214, + "鹬": 0.07758473132487526, + "蚐": 0.04079197213988287, + "蚑": 0.04159181473086097, + "蚖": 0.001599685181956191, + "蚚": 0.0023995277729342867, + "蚝": 0.05998819432335716, + "蚠": 0.02479512032032096, + "蚡": 0.06078803691433526, + "蚢": 0.001599685181956191, + "蚥": 0.009598111091737147, + "蚦": 0.08958237018954669, + "蚫": 0.00719858331880286, + "蚬": 0.06158787950531335, + "蚰": 0.09118205537150288, + "蚳": 0.007998425909780954, + "蚹": 0.03839244436694859, + "蚺": 0.0175965370015181, + "蛃": 0.003999212954890477, + "蛐": 0.13677308305725433, + "蛑": 0.055189138777488586, + "蛒": 0.004799055545868573, + "蛓": 0.18636332369789624, + "蛖": 0.011997638864671433, + "蛘": 0.05998819432335716, + "蛜": 0.02319543513836477, + "蛞": 0.05758866655042288, + "蝓": 0.013597324046627625, + "蛡": 0.011997638864671433, + "蜊": 0.02719464809325525, + "蛩": 0.10078016646324003, + "蛪": 0.001599685181956191, + "蛬": 0.006398740727824764, + "蛱": 0.037592601775970486, + "蛲": 0.06478724986922574, + "蛳": 0.05758866655042288, + "螬": 0.009598111091737147, + "蛻": 0.11437749050986766, + "螓": 0.004799055545868573, + "蝣": 0.025594962911299056, + "蜍": 0.15037040710388194, + "蜑": 0.004799055545868573, + "蠊": 0.06558709246020383, + "蜛": 0.001599685181956191, + "蜣": 0.019996064774452385, + "蝪": 0.0023995277729342867, + "蜩": 0.010397953682715242, + "螗": 0.007998425909780954, + "蜰": 0.27274632352353056, + "蜱": 0.04559102768575144, + "蜷": 0.22315608288288863, + "蜹": 0.04559102768575144, + "蜽": 0.019996064774452385, + "蜾": 0.00879826850075905, + "蠃": 0.00879826850075905, + "蜿": 0.6862649430592059, + "蝀": 0.003999212954890477, + "蝈": 0.03839244436694859, + "蝕": 0.003199370363912382, + "蝻": 0.006398740727824764, + "蝙": 0.2671474253866839, + "蝟": 0.006398740727824764, + "蝤": 0.005598898136846668, + "蝮": 0.07998425909780954, + "螫": 0.10078016646324003, + "蝰": 0.04959024064064192, + "蝱": 0.001599685181956191, + "蝲": 0.003199370363912382, + "蝽": 0.03359338882108001, + "蝾": 0.04239165732183906, + "螈": 0.08398347205270003, + "螇": 0.0023995277729342867, + "螋": 0.005598898136846668, + "螐": 0.019996064774452385, + "螒": 0.043191499912817156, + "螘": 0.001599685181956191, + "螛": 0.09998032387226194, + "螠": 0.004799055545868573, + "螢": 0.0023995277729342867, + "螭": 0.3615288511220992, + "螱": 0.001599685181956191, + "螲": 0.003199370363912382, + "螼": 0.005598898136846668, + "螾": 0.2279551384287572, + "蟁": 0.00719858331880286, + "蟕": 0.0023995277729342867, + "蟘": 0.005598898136846668, + "蟚": 0.0023995277729342867, + "蟛": 0.07278567577900669, + "蜞": 0.0023995277729342867, + "蟜": 0.0023995277729342867, + "蟝": 0.011997638864671433, + "蟟": 0.015197009228583814, + "蟢": 0.03919228695792668, + "蟦": 0.007998425909780954, + "蟪": 0.03359338882108001, + "蟭": 0.01439716663760572, + "蟮": 0.25754931429494676, + "蟰": 0.004799055545868573, + "蟲": 0.0023995277729342867, + "蟷": 0.0023995277729342867, + "蟸": 0.18396379592496195, + "緌": 0.0023995277729342867, + "蟼": 0.00879826850075905, + "蠀": 0.00719858331880286, + "蠋": 0.00879826850075905, + "蠎": 0.0543892961865105, + "蠓": 0.09198189796248098, + "蠔": 0.00719858331880286, + "蠛": 0.031193861048145723, + "蠠": 0.003199370363912382, + "蠲": 0.0543892961865105, + "蠴": 0.0023995277729342867, + "蠵": 0.00719858331880286, + "蠼": 0.043191499912817156, + "糢": 0.0023995277729342867, + "骷": 0.2327541939746258, + "髅": 0.22155639770093247, + "衁": 0.3063397123446106, + "衄": 0.04639087027672954, + "衆": 0.0023995277729342867, + "衎": 0.003199370363912382, + "衏": 0.08398347205270003, + "術": 0.012797481455649528, + "衖": 0.016796694410540006, + "衠": 0.003199370363912382, + "鉢": 0.0023995277729342867, + "褧": 0.0023995277729342867, + "衤": 0.01439716663760572, + "衦": 0.001599685181956191, + "衯": 0.011197796273693337, + "霈": 0.20955875883626102, + "袆": 0.003999212954890477, + "袈": 0.25674947170396867, + "裟": 0.2815445920242896, + "袊": 0.001599685181956191, + "袕": 0.031193861048145723, + "袝": 0.0023995277729342867, + "袞": 0.001599685181956191, + "袢": 0.032793546230101916, + "袪": 0.013597324046627625, + "袲": 0.001599685181956191, + "袼": 0.012797481455649528, + "袾": 0.003199370363912382, + "裀": 0.007998425909780954, + "裃": 0.010397953682715242, + "裱": 0.15197009228583816, + "裇": 0.18636332369789624, + "裉": 0.051989768413576214, + "裎": 0.015197009228583814, + "裏": 0.5302956378184773, + "裒": 0.013597324046627625, + "裚": 0.001599685181956191, + "裛": 0.00879826850075905, + "補": 0.003199370363912382, + "裝": 0.001599685181956191, + "裡": 0.003199370363912382, + "裣": 0.03039401845716763, + "裥": 0.02879433327521144, + "裩": 0.0023995277729342867, + "裯": 0.00719858331880286, + "褙": 0.00879826850075905, + "裼": 0.032793546230101916, + "裿": 0.001599685181956191, + "褀": 0.001599685181956191, + "褃": 0.03359338882108001, + "複": 0.001599685181956191, + "褊": 0.034393231412058106, + "褎": 0.01439716663760572, + "褓": 0.07678488873389717, + "褔": 0.009598111091737147, + "褚": 0.6318756468726955, + "褝": 0.0543892961865105, + "褟": 0.04079197213988287, + "褠": 0.2663475827957058, + "褢": 0.27514585129646485, + "褪": 0.6038811561884622, + "褭": 0.003199370363912382, + "褰": 0.8614304704834089, + "褳": 0.06798662023313812, + "襀": 0.003199370363912382, + "襁": 0.07438536096096289, + "襌": 0.0023995277729342867, + "襕": 0.04799055545868573, + "襛": 0.006398740727824764, + "襜": 0.011197796273693337, + "襝": 0.012797481455649528, + "襤": 0.0023995277729342867, + "襦": 0.02479512032032096, + "襨": 0.003999212954890477, + "襲": 0.0023995277729342867, + "赆": 0.00879826850075905, + "迂": 0.4511112213116458, + "迤": 0.3039401845716763, + "逦": 0.12397560160160481, + "陲": 0.34633184189351535, + "覊": 0.029594175866189534, + "覤": 0.0023995277729342867, + "覩": 0.003199370363912382, + "親": 0.006398740727824764, + "覰": 0.0023995277729342867, + "覲": 0.0023995277729342867, + "覷": 0.003199370363912382, + "覻": 0.00879826850075905, + "鸮": 0.07278567577900669, + "诮": 0.10637906460008671, + "觇": 0.019996064774452385, + "觊": 0.1407722960121448, + "觋": 0.009598111091737147, + "觏": 0.0183963795924962, + "觔": 0.011997638864671433, + "觛": 0.001599685181956191, + "觜": 0.011197796273693337, + "觝": 0.003999212954890477, + "涷": 0.0023995277729342867, + "觬": 0.001599685181956191, + "觯": 0.07918441650683146, + "觱": 0.00719858331880286, + "觳": 0.06878646282411621, + "觫": 0.003999212954890477, + "觺": 0.05118992582259811, + "谆": 0.2167573421550639, + "赅": 0.07518520355194097, + "訄": 0.0023995277729342867, + "訇": 0.08078410168878765, + "訉": 0.001599685181956191, + "訑": 0.003199370363912382, + "記": 0.004799055545868573, + "訢": 0.019196222183474294, + "訫": 0.001599685181956191, + "訬": 0.00879826850075905, + "許": 0.019196222183474294, + "訳": 0.006398740727824764, + "訴": 0.001599685181956191, + "訷": 0.05118992582259811, + "詀": 0.004799055545868573, + "詁": 0.009598111091737147, + "詅": 0.0023995277729342867, + "詆": 0.011197796273693337, + "詋": 0.06318756468726955, + "詎": 0.00719858331880286, + "詝": 0.006398740727824764, + "詨": 0.0023995277729342867, + "詩": 0.001599685181956191, + "詮": 0.00879826850075905, + "誜": 0.005598898136846668, + "說": 0.0023995277729342867, + "誯": 0.011197796273693337, + "誰": 0.055189138777488586, + "誹": 0.0023995277729342867, + "諂": 0.015996851819561907, + "諅": 0.009598111091737147, + "請": 0.003999212954890477, + "諎": 0.019196222183474294, + "諛": 0.006398740727824764, + "諠": 0.0023995277729342867, + "諡": 0.004799055545868573, + "諲": 1.2853470437017993, + "諷": 0.035992916594014296, + "謃": 0.0023995277729342867, + "謆": 0.011997638864671433, + "謇": 0.13597324046627624, + "謒": 0.001599685181956191, + "講": 0.023995277729342866, + "謡": 0.003199370363912382, + "謤": 0.007998425909780954, + "謦": 0.001599685181956191, + "謩": 0.001599685181956191, + "謷": 0.004799055545868573, + "證": 0.006398740727824764, + "譎": 0.005598898136846668, + "譔": 0.001599685181956191, + "譕": 0.0183963795924962, + "識": 0.003199370363912382, + "譙": 0.07598504614291908, + "譚": 0.006398740727824764, + "譞": 0.019196222183474294, + "譟": 0.0023995277729342867, + "譥": 0.13117418492040767, + "譩": 0.003999212954890477, + "譆": 0.0023995277729342867, + "譭": 0.001599685181956191, + "議": 0.001599685181956191, + "譺": 0.02479512032032096, + "譾": 0.003999212954890477, + "讉": 0.010397953682715242, + "變": 0.003999212954890477, + "讒": 0.004799055545868573, + "讠": 0.019196222183474294, + "锱": 0.02879433327521144, + "讣": 0.07518520355194097, + "诂": 0.14797087933094766, + "讴": 0.10397953682715243, + "讵": 0.11277780532791146, + "诔": 0.0735855183699848, + "诖": 0.08318362946172193, + "贳": 0.004799055545868573, + "诜": 0.10717890719106479, + "诟": 0.14957056451290388, + "诠": 0.29914112902580775, + "诪": 0.004799055545868573, + "诶": 0.031193861048145723, + "诼": 0.03919228695792668, + "谀": 0.24555167543027534, + "谂": 0.032793546230101916, + "谇": 0.04799055545868573, + "谞": 0.007998425909780954, + "谖": 0.08718284241661241, + "谝": 0.2919425457070049, + "谠": 0.09278174055345909, + "谥": 0.3719268048048144, + "谮": 0.020795907365430483, + "谵": 0.04559102768575144, + "谶": 0.267947267977662, + "谻": 0.001599685181956191, + "豀": 0.003199370363912382, + "豇": 0.03359338882108001, + "豐": 0.0703861480060724, + "豝": 0.0023995277729342867, + "豞": 0.029594175866189534, + "豟": 0.003999212954890477, + "豢": 0.21035860142723914, + "豬": 0.001599685181956191, + "豳": 0.02479512032032096, + "豴": 0.006398740727824764, + "豽": 0.011197796273693337, + "貀": 0.012797481455649528, + "貅": 0.009598111091737147, + "貇": 0.003199370363912382, + "貊": 0.0183963795924962, + "貒": 0.001599685181956191, + "貔": 0.015996851819561907, + "貘": 0.035992916594014296, + "貜": 0.4471120083567554, + "財": 0.003999212954890477, + "貥": 0.011197796273693337, + "貧": 0.15356977746779435, + "貫": 0.03919228695792668, + "費": 0.003999212954890477, + "貼": 0.003199370363912382, + "賁": 0.004799055545868573, + "資": 0.005598898136846668, + "賍": 0.11197796273693338, + "賛": 0.001599685181956191, + "賨": 0.12077623123769242, + "賬": 0.19996064774452388, + "購": 1.4997048580839292, + "贇": 0.016796694410540006, + "贌": 0.001599685181956191, + "贏": 0.0023995277729342867, + "贔": 0.001599685181956191, + "驽": 0.0527896110045543, + "痡": 0.0023995277729342867, + "驺": 0.015996851819561907, + "狥": 0.004799055545868573, + "浝": 0.0023995277729342867, + "贶": 0.006398740727824764, + "赍": 0.27834522166037723, + "赑": 0.020795907365430483, + "赒": 0.003999212954890477, + "赓": 0.0175965370015181, + "赕": 0.003999212954890477, + "赙": 0.010397953682715242, + "赝": 0.10237985164519622, + "赟": 0.13677308305725433, + "鏖": 0.11837670346475813, + "赥": 0.001599685181956191, + "赬": 0.0023995277729342867, + "赳": 0.10637906460008671, + "頫": 0.05998819432335716, + "鬨": 0.004799055545868573, + "赻": 0.0023995277729342867, + "赾": 0.001599685181956191, + "趄": 0.08158394427976574, + "趆": 0.00879826850075905, + "趎": 0.013597324046627625, + "趑": 0.003999212954890477, + "趔": 0.0735855183699848, + "趙": 0.003199370363912382, + "趮": 0.025594962911299056, + "趱": 0.05918835173237907, + "跫": 0.09358158314443717, + "趵": 0.03999212954890477, + "趷": 0.001599685181956191, + "趺": 0.04159181473086097, + "趿": 0.05838850914140097, + "跄": 0.4671080731312078, + "跅": 0.00719858331880286, + "幪": 0.0023995277729342867, + "跆": 0.06078803691433526, + "踕": 0.0023995277729342867, + "踬": 0.010397953682715242, + "遒": 0.09198189796248098, + "跏": 0.032793546230101916, + "跗": 0.0887825275985686, + "韡": 0.0023995277729342867, + "蹠": 0.05678882395944478, + "跛": 0.267947267977662, + "跞": 0.0183963795924962, + "跡": 0.003999212954890477, + "跩": 0.003999212954890477, + "踉": 0.48550445272370396, + "跶": 0.04719071286770763, + "跺": 0.9942043405857728, + "跻": 0.42951547135523727, + "跼": 0.029594175866189534, + "跽": 0.009598111091737147, + "踁": 0.4535107490845801, + "踄": 0.003999212954890477, + "踌": 0.5134989434079373, + "滿": 0.0023995277729342867, + "澲": 0.0023995277729342867, + "踒": 0.037592601775970486, + "踚": 0.004799055545868573, + "踜": 0.025594962911299056, + "踠": 0.006398740727824764, + "踡": 0.00719858331880286, + "躂": 0.0023995277729342867, + "踣": 0.006398740727824764, + "踥": 0.009598111091737147, + "踦": 0.037592601775970486, + "踧": 0.0023995277729342867, + "踖": 0.0023995277729342867, + "踮": 0.07118599059705051, + "踰": 0.07758473132487526, + "踱": 0.4639087027672954, + "踲": 0.009598111091737147, + "踳": 0.00719858331880286, + "踹": 0.2487510457941877, + "踺": 0.003999212954890477, + "蹀": 0.011997638864671433, + "躞": 0.007998425909780954, + "蹁": 0.00879826850075905, + "蹂": 0.34313247152960297, + "躏": 0.34313247152960297, + "蹅": 0.001599685181956191, + "蹏": 0.001599685181956191, + "蹓": 0.021595749956408578, + "蹚": 0.1575689904226848, + "蹟": 0.001599685181956191, + "蹡": 0.00879826850075905, + "蹧": 0.004799055545868573, + "蹩": 0.06558709246020383, + "蹫": 0.001599685181956191, + "蹯": 0.001599685181956191, + "蹱": 0.001599685181956191, + "蹲": 1.465311626671871, + "蹽": 0.010397953682715242, + "蹾": 0.010397953682715242, + "躄": 0.005598898136846668, + "躍": 0.001599685181956191, + "躐": 0.007998425909780954, + "躔": 0.003199370363912382, + "躖": 0.0023995277729342867, + "躘": 0.006398740727824764, + "躜": 0.004799055545868573, + "躟": 0.010397953682715242, + "躡": 0.00879826850075905, + "躦": 0.011997638864671433, + "躧": 0.023995277729342866, + "躭": 0.0023995277729342867, + "躱": 0.001599685181956191, + "躷": 0.00879826850075905, + "躻": 0.003999212954890477, + "軂": 0.0023995277729342867, + "軃": 0.013597324046627625, + "軆": 0.032793546230101916, + "軋": 0.001599685181956191, + "軍": 0.003199370363912382, + "軎": 0.003199370363912382, + "軏": 0.011197796273693337, + "軓": 0.07998425909780954, + "軠": 0.0023995277729342867, + "軴": 0.022395592547386673, + "軶": 0.007998425909780954, + "軹": 0.003999212954890477, + "輂": 0.004799055545868573, + "輈": 0.003999212954890477, + "輣": 0.02719464809325525, + "輨": 0.0183963795924962, + "輯": 0.2319543513836477, + "輳": 0.0023995277729342867, + "轂": 0.001599685181956191, + "轉": 0.0023995277729342867, + "轑": 0.001599685181956191, + "轘": 0.00879826850075905, + "轛": 0.3559299529852525, + "轠": 0.011197796273693337, + "轣": 0.0023995277729342867, + "辚": 0.031193861048145723, + "轱": 0.034393231412058106, + "骈": 0.26314821243179337, + "轫": 0.0527896110045543, + "辗": 0.43431452690110584, + "辋": 0.019996064774452385, + "轳": 0.0367927591849924, + "轵": 0.007998425909780954, + "轺": 0.010397953682715242, + "辏": 0.2799449068423334, + "辦": 0.004799055545868573, + "辧": 0.00879826850075905, + "辬": 0.001599685181956191, + "辶": 0.022395592547386673, + "迆": 0.004799055545868573, + "迋": 0.0023995277729342867, + "迍": 0.012797481455649528, + "邅": 0.011197796273693337, + "迓": 0.03359338882108001, + "迕": 0.0183963795924962, + "颺": 0.0023995277729342867, + "迠": 0.001599685181956191, + "迨": 0.08638299982563431, + "迮": 0.004799055545868573, + "迯": 0.08318362946172193, + "迻": 0.003999212954890477, + "迾": 0.0183963795924962, + "逄": 0.0183963795924962, + "逅": 0.12877465714747338, + "逎": 0.005598898136846668, + "這": 0.005598898136846668, + "逡": 0.04399134250379526, + "遘": 0.00879826850075905, + "連": 0.001599685181956191, + "逧": 0.001599685181956191, + "逭": 0.021595749956408578, + "逯": 0.04079197213988287, + "進": 0.001599685181956191, + "逴": 0.0023995277729342867, + "逶": 0.08078410168878765, + "遄": 0.03999212954890477, + "逿": 0.02639480550227715, + "窹": 0.0023995277729342867, + "遊": 0.011997638864671433, + "過": 0.004799055545868573, + "達": 0.0023995277729342867, + "違": 0.012797481455649528, + "遛": 0.10717890719106479, + "遝": 0.0023995277729342867, + "遠": 0.001599685181956191, + "遢": 0.05998819432335716, + "遨": 0.07998425909780954, + "遬": 0.03039401845716763, + "遴": 0.11357764791888957, + "選": 0.005598898136846668, + "遹": 0.012797481455649528, + "遺": 0.03919228695792668, + "遼": 0.00719858331880286, + "邁": 0.005598898136846668, + "邂": 0.11437749050986766, + "邆": 0.001599685181956191, + "欿": 0.0023995277729342867, + "邋": 0.06798662023313812, + "邖": 0.07758473132487526, + "邘": 0.006398740727824764, + "邙": 0.04959024064064192, + "邚": 0.02639480550227715, + "邛": 0.11517733310084576, + "邝": 0.05758866655042288, + "邠": 0.011997638864671433, + "邨": 0.012797481455649528, + "邩": 0.04159181473086097, + "邬": 0.27514585129646485, + "邰": 0.2303546662016915, + "邲": 0.00719858331880286, + "邴": 0.00719858331880286, + "邶": 0.019196222183474294, + "邹": 0.9814068591301232, + "邽": 0.016796694410540006, + "邾": 0.029594175866189534, + "郃": 0.20875891624528292, + "郇": 0.00719858331880286, + "郏": 0.09118205537150288, + "锠": 0.009598111091737147, + "郓": 0.17596537001518103, + "郕": 0.005598898136846668, + "郗": 0.003199370363912382, + "郛": 0.015996851819561907, + "郜": 0.021595749956408578, + "郠": 0.19276206442572102, + "郧": 2.6426799205916276, + "郪": 0.08958237018954669, + "郫": 0.04799055545868573, + "図": 0.0023995277729342867, + "焏": 0.0023995277729342867, + "郯": 0.04799055545868573, + "郴": 0.11837670346475813, + "郷": 0.012797481455649528, + "郾": 0.08158394427976574, + "郿": 0.02719464809325525, + "鄀": 0.11917654605573623, + "鄃": 0.003999212954890477, + "鄄": 0.11837670346475813, + "鄅": 0.003199370363912382, + "鄏": 0.020795907365430483, + "鄐": 0.015197009228583814, + "鄗": 0.02479512032032096, + "鄘": 0.016796694410540006, + "鄚": 0.004799055545868573, + "鄜": 0.0183963795924962, + "鄞": 0.0527896110045543, + "鄠": 0.006398740727824764, + "鄡": 0.003199370363912382, + "鄣": 0.09838063869030575, + "鄤": 0.009598111091737147, + "鄩": 0.006398740727824764, + "鄫": 0.00719858331880286, + "鄮": 0.005598898136846668, + "鄯": 0.10397953682715243, + "鄴": 0.001599685181956191, + "鄷": 0.003999212954890477, + "鄹": 0.020795907365430483, + "鄼": 0.001599685181956191, + "酂": 0.006398740727824764, + "酃": 0.027994490684233344, + "酆": 0.07998425909780954, + "酎": 0.02639480550227715, + "醰": 0.004799055545868573, + "齇": 0.0023995277729342867, + "酕": 0.0023995277729342867, + "酗": 0.1247754441925829, + "酝": 0.44631216576577726, + "酡": 0.011997638864671433, + "酢": 0.10397953682715243, + "酤": 0.01439716663760572, + "酧": 0.09598111091737146, + "酩": 0.03039401845716763, + "酫": 0.010397953682715242, + "酲": 0.003999212954890477, + "酴": 0.001599685181956191, + "酹": 0.013597324046627625, + "酺": 0.007998425909780954, + "酻": 0.003199370363912382, + "酽": 0.027994490684233344, + "醄": 0.009598111091737147, + "醅": 0.003999212954890477, + "醪": 0.06718677764216002, + "醈": 0.001599685181956191, + "醑": 0.004799055545868573, + "醕": 0.003999212954890477, + "醜": 0.0023995277729342867, + "醠": 0.007998425909780954, + "醡": 0.034393231412058106, + "醢": 0.015996851819561907, + "醤": 0.07918441650683146, + "醫": 0.001599685181956191, + "醭": 0.02319543513836477, + "醲": 0.0023995277729342867, + "醵": 0.0175965370015181, + "醼": 0.022395592547386673, + "釈": 0.001599685181956191, + "巘": 0.004799055545868573, + "貤": 0.0023995277729342867, + "釐": 0.022395592547386673, + "觿": 0.0023995277729342867, + "雲": 0.00719858331880286, + "锞": 0.06318756468726955, + "阊": 0.15276993487681623, + "鳷": 0.005598898136846668, + "釚": 0.001599685181956191, + "釪": 0.009598111091737147, + "釭": 0.00879826850075905, + "釱": 0.006398740727824764, + "釼": 0.053589453595532396, + "釿": 0.001599685181956191, + "鈇": 0.010397953682715242, + "鈈": 0.00879826850075905, + "鈋": 0.027994490684233344, + "鈒": 0.00879826850075905, + "鈚": 0.004799055545868573, + "鈛": 0.001599685181956191, + "鈤": 0.001599685181956191, + "鈥": 1.9324196998030787, + "鈪": 0.003999212954890477, + "鈰": 0.006398740727824764, + "鈴": 0.001599685181956191, + "鈶": 0.003199370363912382, + "鉅": 0.001599685181956191, + "鉏": 0.003199370363912382, + "鉔": 0.08318362946172193, + "鉙": 0.15037040710388194, + "鉠": 0.003999212954890477, + "鉤": 0.006398740727824764, + "鉧": 0.001599685181956191, + "鉨": 0.011997638864671433, + "鉩": 0.00719858331880286, + "鉲": 0.006398740727824764, + "鉷": 0.0023995277729342867, + "鉻": 0.009598111091737147, + "銀": 0.001599685181956191, + "銃": 0.001599685181956191, + "銆": 5.584500970209063, + "銊": 0.001599685181956191, + "銎": 0.02879433327521144, + "銐": 0.07998425909780954, + "銙": 0.003199370363912382, + "銶": 0.08398347205270003, + "銷": 0.02319543513836477, + "銻": 0.013597324046627625, + "銼": 0.015996851819561907, + "銾": 0.0023995277729342867, + "銿": 0.001599685181956191, + "鋁": 0.004799055545868573, + "鋆": 0.00719858331880286, + "鋈": 0.09838063869030575, + "鋐": 0.005598898136846668, + "鋕": 0.005598898136846668, + "鋘": 0.0023995277729342867, + "鋚": 0.0023995277729342867, + "鋬": 0.001599685181956191, + "鋱": 0.005598898136846668, + "鋹": 0.003999212954890477, + "鋽": 0.003999212954890477, + "錏": 0.001599685181956191, + "錘": 0.30234049938972013, + "錝": 0.05678882395944478, + "錞": 0.04639087027672954, + "錡": 0.009598111091737147, + "錧": 0.2607486846588591, + "錬": 0.003199370363912382, + "錯": 0.09598111091737146, + "錱": 0.01439716663760572, + "録": 0.001599685181956191, + "錶": 0.032793546230101916, + "錻": 0.001599685181956191, + "錾": 0.07518520355194097, + "鍂": 0.15117024969486006, + "鍅": 0.00879826850075905, + "鍉": 0.0023995277729342867, + "鍊": 0.3367337308017782, + "鍋": 0.2671474253866839, + "鍌": 0.021595749956408578, + "鍍": 0.1807644255610496, + "鍎": 0.11277780532791146, + "鍏": 1.7068640891472557, + "鍐": 1.2221594790145298, + "鍑": 1.398924691620689, + "鍒": 1.8468365425684226, + "鍓": 0.4535107490845801, + "鍔": 0.9534123684458898, + "鍕": 0.1551694626497505, + "鍖": 0.3871238140333982, + "鍗": 0.9446140999451308, + "鍘": 0.7014619522877897, + "鍙": 2.3827310785237463, + "鍚": 1.8580343388421157, + "鍛": 0.8398347205270003, + "鍜": 0.6574706097839945, + "鍝": 0.33193467525590964, + "鍞": 0.06558709246020383, + "鍟": 0.292742388297983, + "鍠": 0.16476757374148768, + "鍡": 0.04639087027672954, + "鍢": 0.18876285147083052, + "鍣": 0.035992916594014296, + "鍤": 0.020795907365430483, + "鍥": 0.912620396306007, + "鍦": 2.345138476747776, + "鍧": 0.2463515180212534, + "鍨": 0.025594962911299056, + "鍩": 0.22635545324680104, + "鍫": 0.07118599059705051, + "鍬": 0.003199370363912382, + "鍱": 0.001599685181956191, + "鍼": 0.0023995277729342867, + "黹": 0.019196222183474294, + "鍾": 0.007998425909780954, + "鍿": 0.0175965370015181, + "鎀": 0.012797481455649528, + "鎁": 0.003999212954890477, + "鎈": 0.003999212954890477, + "鎉": 0.009598111091737147, + "鎌": 0.004799055545868573, + "鎎": 0.0023995277729342867, + "鎏": 0.09198189796248098, + "鎑": 0.012797481455649528, + "鎒": 0.001599685181956191, + "鎓": 0.003199370363912382, + "鎔": 0.03359338882108001, + "鎗": 0.007998425909780954, + "鎚": 0.00719858331880286, + "鎛": 0.005598898136846668, + "鎝": 0.034393231412058106, + "鎞": 0.001599685181956191, + "鎡": 0.009598111091737147, + "鎩": 0.0023995277729342867, + "鎬": 0.661469822738885, + "鎭": 0.2583491568859248, + "鎮": 0.23675340692951627, + "鎯": 0.8102405446608107, + "鎰": 0.4119189343537192, + "鎱": 0.08398347205270003, + "鎲": 0.015197009228583814, + "鎳": 0.025594962911299056, + "鎴": 1.6932667651006281, + "鎵": 1.2077623123769243, + "鎶": 0.8614304704834089, + "鎷": 0.376725860350683, + "鎸": 0.4663082305402297, + "鎹": 0.15996851819561908, + "鎺": 0.37432633257774867, + "鎻": 0.18236411074300576, + "鎼": 0.11997638864671432, + "鎽": 0.13437355528432005, + "鎾": 0.10477937941813051, + "鎿": 0.04719071286770763, + "鏀": 0.5726872951403164, + "鏁": 0.43751389726501827, + "鏂": 1.0062019794504442, + "鏃": 1.3277387010236386, + "鏄": 3.2193664286868344, + "鏅": 0.6838654152862718, + "鏆": 0.10717890719106479, + "鏇": 0.1775650551971372, + "鏈": 2.3675340692951625, + "鏉": 1.683668654008891, + "鏊": 0.06638693505118193, + "鏋": 0.4415131102199087, + "鏌": 0.2303546662016915, + "鏍": 0.561489498866623, + "鏐": 0.003999212954890477, + "鏬": 0.004799055545868573, + "鏮": 0.029594175866189534, + "鏯": 0.004799055545868573, + "鏱": 0.001599685181956191, + "鏴": 0.021595749956408578, + "鏿": 0.023995277729342866, + "鐄": 0.0023995277729342867, + "鐇": 0.01439716663760572, + "鐍": 0.031193861048145723, + "鐎": 0.007998425909780954, + "鐏": 0.20076049033550197, + "鐐": 0.34873136966644963, + "鐑": 0.1831639533339839, + "鐒": 0.5486920174109735, + "鐓": 0.06318756468726955, + "鐔": 0.0367927591849924, + "鐕": 0.015996851819561907, + "鐖": 0.16796694410540006, + "鐗": 0.9542122110368679, + "鐘": 0.10797874978204289, + "鐙": 0.18396379592496195, + "鐚": 0.07998425909780954, + "鐜": 0.5566904433207545, + "鐝": 0.03919228695792668, + "鐞": 0.18476363851594005, + "鐟": 0.00879826850075905, + "鐠": 0.001599685181956191, + "鐡": 0.04079197213988287, + "鐢": 0.7574509336562565, + "鐣": 0.1575689904226848, + "鐤": 0.15117024969486006, + "鐥": 0.12077623123769242, + "鐦": 0.025594962911299056, + "鐧": 0.18876285147083052, + "鐨": 4.719871129361741, + "鐩": 0.4911033508605507, + "鐪": 1.0605912756369547, + "鐫": 0.6022814710065059, + "鐬": 0.08238378687074384, + "鐭": 0.3591293233491649, + "鐮": 0.08638299982563431, + "鐵": 0.001599685181956191, + "鐾": 0.03999212954890477, + "鑅": 0.015996851819561907, + "鑉": 0.023995277729342866, + "鑊": 0.019196222183474294, + "鑋": 0.019996064774452385, + "鑍": 0.006398740727824764, + "鑐": 0.003199370363912382, + "鑜": 0.035992916594014296, + "鑞": 0.0023995277729342867, + "鑨": 0.0351930740030362, + "鑰": 0.753451720701366, + "鑱": 0.11517733310084576, + "鑲": 0.2639480550227715, + "鑳": 0.5950828876877031, + "鑴": 0.34713168448449344, + "鑵": 0.18796300887985246, + "鑶": 0.04799055545868573, + "鑷": 0.527896110045543, + "鑸": 0.13597324046627624, + "鑹": 0.1463711941489915, + "鑺": 0.12797481455649526, + "鑻": 0.41991736026350013, + "鑼": 0.04559102768575144, + "鑽": 0.14877072192192578, + "鑾": 0.11357764791888957, + "鑿": 0.022395592547386673, + "钀": 0.31593782343634774, + "钁": 0.05598898136846669, + "钂": 0.034393231412058106, + "钃": 0.07438536096096289, + "钄": 0.0183963795924962, + "钅": 0.020795907365430483, + "钆": 0.010397953682715242, + "鼹": 0.03839244436694859, + "钋": 0.06158787950531335, + "钌": 0.04559102768575144, + "钍": 0.11117812014595528, + "钎": 0.07918441650683146, + "钐": 0.016796694410540006, + "钑": 0.24315214765734103, + "钔": 0.015197009228583814, + "钕": 0.03359338882108001, + "钖": 0.06478724986922574, + "鐶": 0.0023995277729342867, + "钘": 0.022395592547386673, + "钚": 0.10158000905421814, + "钣": 0.03919228695792668, + "钪": 0.08078410168878765, + "钬": 0.005598898136846668, + "钭": 0.011197796273693337, + "钲": 0.011997638864671433, + "钶": 0.003199370363912382, + "钷": 0.010397953682715242, + "钽": 0.12557528678356097, + "鑤": 0.004799055545868573, + "铊": 0.04719071286770763, + "铌": 0.108778592373021, + "铏": 0.15436962005877244, + "铑": 0.027994490684233344, + "铒": 0.009598111091737147, + "铔": 0.06318756468726955, + "铕": 0.009598111091737147, + "铖": 0.46870775831316397, + "铙": 0.06798662023313812, + "铚": 0.019196222183474294, + "铞": 0.003199370363912382, + "铠": 0.22235624029191056, + "铡": 0.1967612773806115, + "铤": 0.11117812014595528, + "铥": 0.006398740727824764, + "铦": 0.011197796273693337, + "铪": 0.035992916594014296, + "铫": 0.015197009228583814, + "铱": 0.08158394427976574, + "铴": 0.0023995277729342867, + "铷": 0.0527896110045543, + "铹": 0.005598898136846668, + "摛": 0.0023995277729342867, + "铻": 0.00879826850075905, + "铼": 0.025594962911299056, + "铽": 0.003999212954890477, + "锇": 0.044791185094773346, + "锊": 0.05039008323162002, + "锍": 0.03039401845716763, + "锎": 0.015996851819561907, + "锒": 0.05838850914140097, + "锔": 0.02639480550227715, + "锕": 0.05598898136846669, + "锖": 0.04399134250379526, + "锘": 0.03039401845716763, + "锛": 10.084415387051827, + "锝": 0.06158787950531335, + "锧": 0.004799055545868573, + "锩": 0.04159181473086097, + "锪": 0.019996064774452385, + "锫": 0.009598111091737147, + "锬": 0.019996064774452385, + "锲": 0.07838457391585336, + "锸": 0.04239165732183906, + "锼": 0.019196222183474294, + "锿": 0.022395592547386673, + "镃": 0.02639480550227715, + "镄": 0.0183963795924962, + "镅": 0.06638693505118193, + "镆": 0.0367927591849924, + "镈": 0.009598111091737147, + "镋": 0.001599685181956191, + "镎": 0.022395592547386673, + "镏": 0.34713168448449344, + "镔": 0.055189138777488586, + "镘": 0.003199370363912382, + "镟": 0.05758866655042288, + "镠": 0.0903822127805248, + "镡": 0.0023995277729342867, + "镢": 0.07198583318802859, + "镤": 0.005598898136846668, + "镥": 0.006398740727824764, + "镦": 0.10477937941813051, + "镧": 0.04239165732183906, + "镨": 0.005598898136846668, + "镬": 0.09598111091737146, + "镱": 0.004799055545868573, + "镲": 0.004799055545868573, + "镴": 0.004799055545868573, + "镵": 0.0023995277729342867, + "長": 0.003999212954890477, + "镺": 0.019196222183474294, + "門": 0.034393231412058106, + "閆": 0.005598898136846668, + "閉": 0.001599685181956191, + "開": 0.009598111091737147, + "閏": 0.00719858331880286, + "閑": 0.10637906460008671, + "間": 0.00879826850075905, + "閘": 0.001599685181956191, + "閚": 0.003199370363912382, + "閜": 0.001599685181956191, + "閟": 0.003999212954890477, + "閣": 0.006398740727824764, + "閤": 0.010397953682715242, + "閥": 0.001599685181956191, + "閦": 0.001599685181956191, + "閫": 0.4335146843101278, + "閬": 0.5974824154606373, + "閭": 0.6334753320546517, + "閮": 0.7014619522877897, + "閯": 0.006398740727824764, + "閰": 0.11277780532791146, + "閱": 0.04959024064064192, + "閲": 0.9390152018082841, + "閴": 0.005598898136846668, + "閺": 0.0023995277729342867, + "閽": 0.07838457391585336, + "閾": 0.0543892961865105, + "閿": 0.12557528678356097, + "闀": 0.5990821006425936, + "闂": 0.7718481002938622, + "闃": 0.836635350163088, + "闄": 0.7710482577028841, + "闅": 0.2135579717911515, + "闆": 0.23915293470245055, + "闈": 0.6262767487358487, + "闉": 0.02319543513836477, + "闊": 0.30234049938972013, + "關": 0.0023995277729342867, + "闟": 0.20475970329039245, + "闠": 0.12557528678356097, + "闫": 0.23835309211147246, + "闬": 0.015197009228583814, + "墐": 0.0023995277729342867, + "瞚": 0.0023995277729342867, + "闶": 0.06238772209629145, + "闿": 0.07438536096096289, + "阃": 0.023995277729342866, + "阆": 0.09118205537150288, + "阇": 0.07838457391585336, + "阉": 0.5063003600891345, + "阌": 0.05598898136846669, + "阏": 0.05118992582259811, + "阒": 0.07118599059705051, + "阓": 0.001599685181956191, + "阘": 0.006398740727824764, + "阚": 0.013597324046627625, + "阛": 0.0023995277729342867, + "阠": 0.003199370363912382, + "阢": 0.0023995277729342867, + "陧": 0.010397953682715242, + "骘": 0.031193861048145723, + "阼": 0.003199370363912382, + "阽": 0.003999212954890477, + "陁": 0.001599685181956191, + "肬": 0.0023995277729342867, + "詟": 0.0023995277729342867, + "陔": 0.006398740727824764, + "陗": 0.021595749956408578, + "陙": 0.4391135824469744, + "陛": 2.09158837540772, + "陞": 0.003999212954890477, + "陣": 0.009598111091737147, + "陨": 0.4975020915883754, + "陯": 0.003199370363912382, + "陰": 0.001599685181956191, + "禕": 0.0023995277729342867, + "陴": 0.001599685181956191, + "陼": 0.02879433327521144, + "陽": 0.022395592547386673, + "隈": 0.007998425909780954, + "隓": 0.001599685181956191, + "隞": 0.004799055545868573, + "隭": 0.003199370363912382, + "隰": 0.043191499912817156, + "隷": 0.10797874978204289, + "隹": 0.03839244436694859, + "雒": 0.18476363851594005, + "雓": 0.015197009228583814, + "雘": 0.0023995277729342867, + "雙": 0.003199370363912382, + "雟": 0.003199370363912382, + "雡": 0.0023995277729342867, + "離": 0.0023995277729342867, + "難": 0.0023995277729342867, + "鬣": 0.108778592373021, + "雮": 0.10637906460008671, + "雱": 0.001599685181956191, + "電": 0.003199370363912382, + "雼": 0.0023995277729342867, + "霃": 0.015996851819561907, + "霅": 0.003999212954890477, + "霑": 0.0023995277729342867, + "霣": 0.006398740727824764, + "霨": 0.005598898136846668, + "霩": 0.003199370363912382, + "霪": 0.004799055545868573, + "霫": 0.0023995277729342867, + "霳": 0.7262570726081107, + "霺": 0.011997638864671433, + "霿": 0.001599685181956191, + "靉": 0.0023995277729342867, + "靆": 0.0023995277729342867, + "靊": 0.003199370363912382, + "靜": 0.001599685181956191, + "媮": 0.0023995277729342867, + "靣": 0.020795907365430483, + "靦": 0.010397953682715242, + "靬": 0.021595749956408578, + "靳": 0.055189138777488586, + "靸": 0.003999212954890477, + "靹": 0.006398740727824764, + "靺": 0.04079197213988287, + "靼": 0.3223365641641725, + "靿": 0.006398740727824764, + "鞁": 0.001599685181956191, + "鞈": 0.22635545324680104, + "襪": 0.004799055545868573, + "鞯": 0.23675340692951627, + "鞏": 0.001599685181956191, + "鞑": 1.1701697106009536, + "鞒": 0.07198583318802859, + "鞓": 0.0023995277729342867, + "鞔": 0.04159181473086097, + "鞗": 0.00719858331880286, + "鞣": 0.1623680459685534, + "鞦": 0.001599685181956191, + "鞧": 0.001599685181956191, + "鞨": 0.03999212954890477, + "鞫": 0.07678488873389717, + "鞬": 0.011197796273693337, + "鞮": 0.009598111091737147, + "鞲": 0.04079197213988287, + "鞳": 0.004799055545868573, + "鞴": 0.0527896110045543, + "鞶": 0.010397953682715242, + "鞸": 0.006398740727824764, + "鞹": 0.04559102768575144, + "鞻": 0.019996064774452385, + "韁": 0.001599685181956191, + "韂": 0.005598898136846668, + "韈": 0.003199370363912382, + "韕": 0.06478724986922574, + "韗": 0.00719858331880286, + "韘": 0.013597324046627625, + "韜": 0.0175965370015181, + "韣": 0.0351930740030362, + "韥": 0.0023995277729342867, + "驮": 0.4999016193613097, + "韹": 0.03039401845716763, + "韽": 0.001599685181956191, + "頂": 0.0023995277729342867, + "頃": 0.015197009228583814, + "項": 0.019996064774452385, + "須": 0.003999212954890477, + "預": 0.006398740727824764, + "領": 0.0023995277729342867, + "頞": 0.016796694410540006, + "頠": 0.016796694410540006, + "頢": 0.003999212954890477, + "頤": 0.0023995277729342867, + "頧": 0.025594962911299056, + "頬": 0.02719464809325525, + "頭": 0.001599685181956191, + "頵": 0.0023995277729342867, + "頷": 0.005598898136846668, + "顃": 0.001599685181956191, + "顅": 0.05918835173237907, + "顆": 0.00879826850075905, + "顊": 0.0023995277729342867, + "題": 0.012797481455649528, + "顒": 0.011197796273693337, + "顔": 0.003199370363912382, + "顖": 0.0023995277729342867, + "顗": 0.003999212954890477, + "願": 0.001599685181956191, + "類": 0.003199370363912382, + "顠": 0.001599685181956191, + "顣": 0.28874317534309246, + "顯": 0.001599685181956191, + "顸": 0.0175965370015181, + "嚚": 0.0023995277729342867, + "颀": 0.04639087027672954, + "颃": 0.012797481455649528, + "颋": 0.004799055545868573, + "颎": 0.0175965370015181, + "颙": 0.02719464809325525, + "颛": 0.07678488873389717, + "颞": 0.08238378687074384, + "颥": 0.012797481455649528, + "颟": 0.01439716663760572, + "颡": 0.013597324046627625, + "颣": 0.001599685181956191, + "颧": 0.12957449973845148, + "風": 0.0023995277729342867, + "颯": 0.27354616611450866, + "颳": 0.021595749956408578, + "颼": 0.0183963795924962, + "飄": 0.005598898136846668, + "飆": 0.0175965370015181, + "飊": 0.0023995277729342867, + "飖": 0.009598111091737147, + "飐": 0.0023995277729342867, + "飑": 0.0183963795924962, + "飓": 0.18636332369789624, + "飗": 0.015996851819561907, + "曵": 0.0023995277729342867, + "飝": 0.023995277729342866, + "鸵": 0.17996458297007148, + "餬": 0.006398740727824764, + "飠": 0.02719464809325525, + "飤": 0.001599685181956191, + "飪": 0.0023995277729342867, + "飲": 0.007998425909780954, + "飴": 0.11037827755497717, + "飼": 0.003199370363912382, + "餂": 0.003999212954890477, + "餔": 0.00719858331880286, + "餘": 0.005598898136846668, + "餝": 0.03039401845716763, + "餠": 0.0367927591849924, + "餢": 0.2463515180212534, + "餮": 0.08238378687074384, + "餽": 0.006398740727824764, + "饄": 0.022395592547386673, + "饉": 0.003199370363912382, + "饕": 0.20236017551745816, + "饘": 0.0023995277729342867, + "饛": 0.005598898136846668, + "饣": 0.04159181473086097, + "饤": 0.003199370363912382, + "饨": 0.1623680459685534, + "蘗": 0.004799055545868573, + "饸": 0.001599685181956191, + "饹": 0.005598898136846668, + "饽": 0.15276993487681623, + "饾": 0.001599685181956191, + "殍": 0.029594175866189534, + "馂": 0.003999212954890477, + "馃": 0.004799055545868573, + "馄": 0.1631678885595315, + "馇": 0.01439716663760572, + "馊": 0.11277780532791146, + "馕": 0.09678095350834955, + "馘": 0.005598898136846668, + "馷": 0.29914112902580775, + "馿": 0.003199370363912382, + "駁": 0.003199370363912382, + "駃": 0.001599685181956191, + "駇": 0.05918835173237907, + "駉": 0.001599685181956191, + "駔": 0.001599685181956191, + "駕": 0.005598898136846668, + "駛": 0.012797481455649528, + "駤": 0.001599685181956191, + "駬": 0.001599685181956191, + "駮": 0.0023995277729342867, + "駰": 0.0023995277729342867, + "駹": 0.011197796273693337, + "騂": 0.001599685181956191, + "騃": 0.00879826850075905, + "騄": 0.011197796273693337, + "騊": 0.001599685181956191, + "騍": 0.011997638864671433, + "騑": 0.0023995277729342867, + "騕": 0.003199370363912382, + "騗": 0.12797481455649526, + "騟": 0.005598898136846668, + "騠": 0.007998425909780954, + "騢": 0.001599685181956191, + "騰": 0.003199370363912382, + "騺": 0.0023995277729342867, + "驍": 0.0023995277729342867, + "驎": 0.032793546230101916, + "驩": 0.003999212954890477, + "驫": 0.010397953682715242, + "鲛": 0.24315214765734103, + "驲": 0.001599685181956191, + "驵": 0.003999212954890477, + "骀": 0.012797481455649528, + "骁": 0.3231364067551506, + "骃": 0.007998425909780954, + "泆": 0.004799055545868573, + "骎": 0.0175965370015181, + "骒": 0.003199370363912382, + "骓": 0.03999212954890477, + "骕": 0.010397953682715242, + "骙": 0.037592601775970486, + "骟": 0.022395592547386673, + "骠": 0.11997638864671432, + "骣": 0.003199370363912382, + "骦": 0.005598898136846668, + "骮": 0.3551301103942744, + "骯": 0.00879826850075905, + "骱": 0.06638693505118193, + "骲": 0.004799055545868573, + "骺": 0.04239165732183906, + "骻": 0.03839244436694859, + "髁": 0.09838063869030575, + "髂": 0.04799055545868573, + "髋": 0.06158787950531335, + "髌": 0.03839244436694859, + "髑": 0.02479512032032096, + "體": 0.032793546230101916, + "髙": 0.003199370363912382, + "髝": 0.001599685181956191, + "髞": 0.0543892961865105, + "髟": 0.04159181473086097, + "髬": 0.001599685181956191, + "髮": 0.001599685181956191, + "髰": 0.03359338882108001, + "髳": 0.001599685181956191, + "髹": 0.02879433327521144, + "髼": 0.06398740727824763, + "髽": 0.004799055545868573, + "鬅": 0.0023995277729342867, + "鬈": 0.02879433327521144, + "鬏": 0.003999212954890477, + "鬘": 0.007998425909780954, + "鬡": 0.01439716663760572, + "鬥": 0.001599685181956191, + "鬩": 0.044791185094773346, + "鬬": 0.001599685181956191, + "鬰": 0.003199370363912382, + "鬴": 0.07918441650683146, + "鬵": 0.02719464809325525, + "鬶": 0.005598898136846668, + "魊": 0.0023995277729342867, + "鬽": 0.04079197213988287, + "鬾": 0.009598111091737147, + "魆": 0.016796694410540006, + "魉": 0.06398740727824763, + "魍": 0.05918835173237907, + "魎": 0.004799055545868573, + "続": 0.0023995277729342867, + "魐": 0.11277780532791146, + "魑": 0.15037040710388194, + "魚": 0.009598111091737147, + "魜": 0.007998425909780954, + "魟": 0.020795907365430483, + "魣": 0.0023995277729342867, + "魦": 0.9174194518518756, + "魰": 0.08478331464367812, + "鮄": 0.00879826850075905, + "鮈": 0.005598898136846668, + "鮊": 0.003999212954890477, + "鮋": 0.010397953682715242, + "鮌": 0.0023995277729342867, + "鮛": 0.032793546230101916, + "鮝": 0.001599685181956191, + "鮟": 0.022395592547386673, + "鮠": 0.8278370816623288, + "鮣": 0.011197796273693337, + "鮤": 0.013597324046627625, + "鮨": 0.001599685181956191, + "鮺": 0.007998425909780954, + "鮻": 0.0023995277729342867, + "鯈": 0.0023995277729342867, + "鯒": 0.005598898136846668, + "鯪": 0.08318362946172193, + "鯭": 0.009598111091737147, + "鯯": 0.016796694410540006, + "鯵": 0.010397953682715242, + "鯷": 0.009598111091737147, + "鯺": 0.001599685181956191, + "鯼": 0.009598111091737147, + "鯾": 0.003199370363912382, + "鰁": 0.4119189343537192, + "鰃": 0.0175965370015181, + "鰏": 0.003199370363912382, + "鰐": 0.00719858331880286, + "鰕": 0.011197796273693337, + "鰛": 0.0023995277729342867, + "鰯": 0.004799055545868573, + "鰱": 0.022395592547386673, + "鰶": 0.003199370363912382, + "鰾": 0.0023995277729342867, + "鱀": 0.015996851819561907, + "鱂": 0.005598898136846668, + "鱇": 0.022395592547386673, + "鱊": 0.015197009228583814, + "鱏": 0.011997638864671433, + "鱑": 0.003999212954890477, + "鱓": 0.005598898136846668, + "鱗": 0.001599685181956191, + "鱚": 0.006398740727824764, + "鱡": 0.005598898136846668, + "鱤": 0.0023995277729342867, + "鱥": 0.003199370363912382, + "鱩": 0.006398740727824764, + "鱵": 0.003999212954890477, + "鱺": 0.003999212954890477, + "鳔": 0.4631088601763173, + "鱽": 0.003199370363912382, + "鲀": 0.04399134250379526, + "赪": 0.0023995277729342867, + "鲃": 0.005598898136846668, + "鲅": 0.04239165732183906, + "鲇": 0.3559299529852525, + "鲉": 0.0175965370015181, + "鲊": 0.003199370363912382, + "鲌": 0.22075655510995434, + "鲎": 0.10237985164519622, + "鲏": 0.011997638864671433, + "鲐": 0.03039401845716763, + "鲒": 0.003999212954890477, + "鲔": 0.015996851819561907, + "鲕": 0.015996851819561907, + "鲖": 0.044791185094773346, + "鲙": 0.001599685181956191, + "鲚": 0.031193861048145723, + "鲝": 0.01439716663760572, + "鲡": 0.05678882395944478, + "鲣": 0.034393231412058106, + "鲥": 0.27194648093255247, + "鲦": 0.00719858331880286, + "鲧": 0.10397953682715243, + "鲩": 0.2135579717911515, + "鲪": 0.0023995277729342867, + "鲭": 0.03359338882108001, + "鲰": 0.001599685181956191, + "鲱": 0.0903822127805248, + "鲲": 0.034393231412058106, + "鲴": 0.016796694410540006, + "鲶": 0.22635545324680104, + "鼍": 0.08718284241661241, + "鲹": 0.003999212954890477, + "鲺": 0.003999212954890477, + "鲼": 0.029594175866189534, + "鲽": 0.04239165732183906, + "鹣": 0.027994490684233344, + "鲾": 0.006398740727824764, + "鲿": 0.020795907365430483, + "鳀": 0.020795907365430483, + "鳁": 0.011997638864671433, + "鳇": 0.4215170454454563, + "鳉": 0.015996851819561907, + "鳊": 0.23915293470245055, + "鳋": 0.001599685181956191, + "呿": 0.0023995277729342867, + "鳐": 0.03919228695792668, + "鳑": 0.011997638864671433, + "鳒": 0.005598898136846668, + "鳓": 0.011997638864671433, + "鳘": 0.003999212954890477, + "鳙": 0.8606306278924308, + "鳚": 0.013597324046627625, + "鳛": 0.011197796273693337, + "鳜": 0.25355010134005623, + "鳡": 0.005598898136846668, + "鳣": 0.001599685181956191, + "鳴": 0.001599685181956191, + "鳶": 0.00879826850075905, + "鳾": 0.003999212954890477, + "鴏": 0.0023995277729342867, + "鴐": 0.0023995277729342867, + "鴗": 0.003999212954890477, + "鴙": 0.08718284241661241, + "鴡": 0.003999212954890477, + "鴢": 0.009598111091737147, + "鴪": 0.001599685181956191, + "鴭": 0.001599685181956191, + "鴴": 0.003199370363912382, + "鴷": 0.001599685181956191, + "鵏": 0.001599685181956191, + "鵐": 0.0023995277729342867, + "鵖": 0.01439716663760572, + "鵚": 0.005598898136846668, + "鵞": 0.3735264899867706, + "鵣": 0.009598111091737147, + "鵩": 0.003199370363912382, + "鵽": 0.01439716663760572, + "鶊": 0.011197796273693337, + "鶑": 0.003999212954890477, + "鶒": 0.006398740727824764, + "鶗": 0.03919228695792668, + "鶴": 0.443912637992843, + "鶹": 0.0175965370015181, + "鶺": 0.009598111091737147, + "鴒": 0.0023995277729342867, + "鷁": 0.04159181473086097, + "鷃": 0.001599685181956191, + "鷇": 0.009598111091737147, + "鷈": 0.0023995277729342867, + "鷉": 0.001599685181956191, + "鷋": 0.0023995277729342867, + "鷓": 0.001599685181956191, + "鷟": 0.001599685181956191, + "鷭": 0.0023995277729342867, + "鷯": 0.0023995277729342867, + "鷶": 0.01439716663760572, + "鸂": 0.006398740727824764, + "鸊": 0.001599685181956191, + "鸑": 0.03839244436694859, + "鸓": 0.007998425909780954, + "鸔": 0.012797481455649528, + "鸛": 0.0023995277729342867, + "鸜": 0.00719858331880286, + "鸞": 0.011197796273693337, + "巣": 0.0023995277729342867, + "馌": 0.0023995277729342867, + "鸤": 0.003999212954890477, + "鸫": 0.02719464809325525, + "鸬": 0.13197402751138576, + "鶿": 0.0023995277729342867, + "鹚": 0.04639087027672954, + "鸝": 0.0023995277729342867, + "鸰": 0.01439716663760572, + "鴞": 0.004799055545868573, + "鸲": 0.031193861048145723, + "鹆": 0.05758866655042288, + "鸶": 0.04239165732183906, + "鸸": 0.035992916594014296, + "鹋": 0.02479512032032096, + "鸺": 0.04399134250379526, + "鸻": 0.009598111091737147, + "鳦": 0.0023995277729342867, + "鶱": 0.004799055545868573, + "鹀": 0.0023995277729342867, + "鹁": 0.06558709246020383, + "鹈": 0.0351930740030362, + "鹕": 0.04639087027672954, + "鹍": 0.001599685181956191, + "鹎": 0.009598111091737147, + "鹐": 0.003199370363912382, + "鹖": 0.0023995277729342867, + "鹛": 0.011197796273693337, + "鹟": 0.007998425909780954, + "鹠": 0.005598898136846668, + "鹡": 0.013597324046627625, + "鹥": 0.001599685181956191, + "鹧": 0.8262373964803726, + "鹩": 0.020795907365430483, + "鹪": 0.1407722960121448, + "鹓": 0.0023995277729342867, + "鹯": 0.0023995277729342867, + "鹱": 0.031193861048145723, + "鹲": 0.004799055545868573, + "鹹": 0.009598111091737147, + "鹼": 0.032793546230101916, + "鹾": 0.031193861048145723, + "麅": 0.001599685181956191, + "麈": 0.0183963795924962, + "麐": 0.019996064774452385, + "麑": 0.001599685181956191, + "麖": 0.001599685181956191, + "麜": 0.012797481455649528, + "麣": 0.003199370363912382, + "麥": 0.00719858331880286, + "麩": 0.003999212954890477, + "麵": 0.003999212954890477, + "痺": 0.0023995277729342867, + "麼": 0.04079197213988287, + "麿": 0.011997638864671433, + "黃": 0.004799055545868573, + "凱": 0.0023995277729342867, + "黅": 0.015996851819561907, + "黉": 0.003999212954890477, + "黐": 0.02639480550227715, + "黢": 0.0351930740030362, + "黪": 0.004799055545868573, + "黚": 0.007998425909780954, + "點": 0.006398740727824764, + "黟": 0.0351930740030362, + "黥": 0.03919228695792668, + "黧": 0.044791185094773346, + "黮": 0.006398740727824764, + "黯": 0.6054808413704182, + "黵": 0.0023995277729342867, + "黺": 0.015996851819561907, + "黻": 0.02479512032032096, + "鼂": 0.015197009228583814, + "鼋": 0.13837276823921052, + "鼕": 0.004799055545868573, + "鼩": 0.021595749956408578, + "鼪": 0.004799055545868573, + "鼯": 0.031193861048145723, + "鼱": 0.005598898136846668, + "鼲": 0.001599685181956191, + "鼴": 0.0023995277729342867, + "鼸": 0.001599685181956191, + "齁": 0.006398740727824764, + "齄": 0.004799055545868573, + "齆": 0.021595749956408578, + "齉": 0.001599685181956191, + "齋": 0.011197796273693337, + "齌": 0.001599685181956191, + "齍": 0.00719858331880286, + "齎": 0.0367927591849924, + "齙": 0.01439716663760572, + "齛": 0.0023995277729342867, + "齡": 0.001599685181956191, + "齣": 0.006398740727824764, + "齸": 0.0023995277729342867, + "齹": 0.22075655510995434, + "龀": 0.08718284241661241, + "龁": 0.006398740727824764, + "龃": 0.12877465714747338, + "龉": 0.11757686087378004, + "龅": 0.24235230506636293, + "龆": 0.07438536096096289, + "龇": 0.1415721386031229, + "龔": 0.029594175866189534, + "龕": 0.3495312122574278, + "跧": 0.0023995277729342867, + "龚": 0.561489498866623, + "龜": 0.001599685181956191, + "搘": 0.0023995277729342867, + "龠": 0.003999212954890477, + "龢": 0.585484776595966 +} \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index 11536d12ac13cd06045bcb620cb223d5e19ba7ec..49c102dc6efb27b36fc505008b796a8be2539c31 100644 GIT binary patch delta 50 rcmbQka*Snz43icw0~bR9LnRPrGUNei5D5|k;bI^=pP?K`<^bgZ{lE!1 delta 7 OcmX@cGKXb@3=;qf?*cgh diff --git a/src/test/emotion_cal.py b/src/test/emotion_cal.py new file mode 100644 index 000000000..eaf0cbcf0 --- /dev/null +++ b/src/test/emotion_cal.py @@ -0,0 +1,70 @@ +from textblob import TextBlob +import jieba +from translate import Translator + +def analyze_emotion(text): + """ + 分析文本的情感,返回情感极性和主观性得分 + :param text: 输入文本 + :return: (情感极性, 主观性) 元组 + 情感极性: -1(非常消极) 到 1(非常积极) + 主观性: 0(客观) 到 1(主观) + """ + try: + # 创建翻译器 + translator = Translator(to_lang="en", from_lang="zh") + + # 如果是中文文本,先翻译成英文 + # 因为TextBlob的情感分析主要基于英文 + translated_text = translator.translate(text) + + # 创建TextBlob对象 + blob = TextBlob(translated_text) + + # 获取情感极性和主观性 + polarity = blob.sentiment.polarity + subjectivity = blob.sentiment.subjectivity + + return polarity, subjectivity + + except Exception as e: + print(f"分析过程中出现错误: {str(e)}") + return None, None + +def get_emotion_description(polarity, subjectivity): + """ + 根据情感极性和主观性生成描述性文字 + """ + if polarity is None or subjectivity is None: + return "无法分析情感" + + # 情感极性描述 + if polarity > 0.5: + emotion = "非常积极" + elif polarity > 0: + emotion = "较为积极" + elif polarity == 0: + emotion = "中性" + elif polarity > -0.5: + emotion = "较为消极" + else: + emotion = "非常消极" + + # 主观性描述 + if subjectivity > 0.7: + subj = "非常主观" + elif subjectivity > 0.3: + subj = "较为主观" + else: + subj = "较为客观" + + return f"情感倾向: {emotion}, 表达方式: {subj}" + +if __name__ == "__main__": + # 测试样例 + test_text = "今天天气真好,我感到非常开心!" + polarity, subjectivity = analyze_emotion(test_text) + print(f"测试文本: {test_text}") + print(f"情感极性: {polarity:.2f}") + print(f"主观性得分: {subjectivity:.2f}") + print(get_emotion_description(polarity, subjectivity)) \ No newline at end of file diff --git a/src/test/emotion_cal_bert.py b/src/test/emotion_cal_bert.py new file mode 100644 index 000000000..7469e64d4 --- /dev/null +++ b/src/test/emotion_cal_bert.py @@ -0,0 +1,74 @@ +from transformers import pipeline, AutoModelForSequenceClassification, AutoTokenizer + +def setup_bert_analyzer(): + """ + 设置中文BERT情感分析器 + """ + # 使用专门针对中文情感分析的模型 + model_name = "uer/roberta-base-finetuned-jd-binary-chinese" + + try: + # 加载模型和分词器 + tokenizer = AutoTokenizer.from_pretrained(model_name) + model = AutoModelForSequenceClassification.from_pretrained(model_name) + + # 创建情感分析pipeline + analyzer = pipeline("sentiment-analysis", + model=model, + tokenizer=tokenizer) + + return analyzer + except Exception as e: + print(f"模型加载错误: {str(e)}") + return None + +def analyze_emotion_bert(text, analyzer): + """ + 使用BERT模型进行中文情感分析 + """ + try: + if not analyzer: + return None + + # 进行情感分析 + result = analyzer(text)[0] + + return { + 'label': result['label'], + 'score': result['score'] + } + except Exception as e: + print(f"分析过程中出现错误: {str(e)}") + return None + +def get_emotion_description_bert(result): + """ + 将BERT的情感分析结果转换为描述性文字 + """ + if not result: + return "无法分析情感" + + label = "积极" if result['label'] == 'positive' else "消极" + confidence = result['score'] + + if confidence > 0.9: + strength = "强烈" + elif confidence > 0.7: + strength = "明显" + else: + strength = "轻微" + + return f"{strength}{label}" + +if __name__ == "__main__": + # 初始化分析器 + analyzer = setup_bert_analyzer() + + # 测试样例 + test_text = "这个产品质量很好,使用起来非常方便,推荐购买!" + result = analyze_emotion_bert(test_text, analyzer) + + print(f"测试文本: {test_text}") + if result: + print(f"情感倾向: {get_emotion_description_bert(result)}") + print(f"置信度: {result['score']:.2f}") \ No newline at end of file diff --git a/src/test/emotion_cal_hanlp.py b/src/test/emotion_cal_hanlp.py new file mode 100644 index 000000000..072dc7126 --- /dev/null +++ b/src/test/emotion_cal_hanlp.py @@ -0,0 +1,62 @@ +import hanlp + +def analyze_emotion_hanlp(text): + """ + 使用HanLP进行中文情感分析 + """ + try: + # 使用更基础的模型 + tokenizer = hanlp.load('PKU_NAME_MERGED_SIX_MONTHS_CONVSEG') + + # 分词 + words = tokenizer(text) + + # 简单的情感词典方法 + positive_words = {'好', '棒', '优秀', '喜欢', '开心', '快乐', '美味', '推荐', '优质', '满意'} + negative_words = {'差', '糟', '烂', '讨厌', '失望', '难受', '恶心', '不满', '差劲', '垃圾'} + + # 计算情感得分 + score = 0 + for word in words: + if word in positive_words: + score += 1 + elif word in negative_words: + score -= 1 + + # 归一化得分 + if score > 0: + return 1 + elif score < 0: + return 0 + else: + return 0.5 + + except Exception as e: + print(f"分析过程中出现错误: {str(e)}") + return None + +def get_emotion_description_hanlp(score): + """ + 将HanLP的情感分析结果转换为描述性文字 + """ + if score is None: + return "无法分析情感" + elif score == 1: + return "积极" + elif score == 0: + return "消极" + else: + return "中性" + +if __name__ == "__main__": + # 测试样例 + test_texts = [ + "这家餐厅的服务态度很好,菜品也很美味!", + "这个产品质量太差了,一点都不值这个价", + "今天天气不错,但是工作很累" + ] + + for test_text in test_texts: + result = analyze_emotion_hanlp(test_text) + print(f"\n测试文本: {test_text}") + print(f"情感倾向: {get_emotion_description_hanlp(result)}") \ No newline at end of file diff --git a/src/test/emotion_cal_snownlp.py b/src/test/emotion_cal_snownlp.py new file mode 100644 index 000000000..272a91df0 --- /dev/null +++ b/src/test/emotion_cal_snownlp.py @@ -0,0 +1,53 @@ +from snownlp import SnowNLP + +def analyze_emotion_snownlp(text): + """ + 使用SnowNLP进行中文情感分析 + :param text: 输入文本 + :return: 情感得分(0-1之间,越接近1越积极) + """ + try: + s = SnowNLP(text) + sentiment_score = s.sentiments + + # 获取文本的关键词 + keywords = s.keywords(3) + + return { + 'sentiment_score': sentiment_score, + 'keywords': keywords, + 'summary': s.summary(1) # 生成文本摘要 + } + except Exception as e: + print(f"分析过程中出现错误: {str(e)}") + return None + +def get_emotion_description_snownlp(score): + """ + 将情感得分转换为描述性文字 + """ + if score is None: + return "无法分析情感" + + if score > 0.8: + return "非常积极" + elif score > 0.6: + return "较为积极" + elif score > 0.4: + return "中性偏积极" + elif score > 0.2: + return "中性偏消极" + else: + return "消极" + +if __name__ == "__main__": + # 测试样例 + test_text = "我们学校有免费的gpt4用" + result = analyze_emotion_snownlp(test_text) + + if result: + print(f"测试文本: {test_text}") + print(f"情感得分: {result['sentiment_score']:.2f}") + print(f"情感倾向: {get_emotion_description_snownlp(result['sentiment_score'])}") + print(f"关键词: {', '.join(result['keywords'])}") + print(f"文本摘要: {result['summary'][0]}") \ No newline at end of file diff --git a/src/test/snownlp_demo.py b/src/test/snownlp_demo.py new file mode 100644 index 000000000..29cb7ef98 --- /dev/null +++ b/src/test/snownlp_demo.py @@ -0,0 +1,54 @@ +from snownlp import SnowNLP + +def demo_snownlp_features(text): + """ + 展示SnowNLP的主要功能 + :param text: 输入文本 + """ + print(f"\n=== SnowNLP功能演示 ===") + print(f"输入文本: {text}") + + # 创建SnowNLP对象 + s = SnowNLP(text) + + # 1. 分词 + print(f"\n1. 分词结果:") + print(f" {' | '.join(s.words)}") + + # 2. 情感分析 + print(f"\n2. 情感分析:") + sentiment = s.sentiments + print(f" 情感得分: {sentiment:.2f}") + print(f" 情感倾向: {'积极' if sentiment > 0.5 else '消极' if sentiment < 0.5 else '中性'}") + + # 3. 关键词提取 + print(f"\n3. 关键词提取:") + print(f" {', '.join(s.keywords(3))}") + + # 4. 词性标注 + print(f"\n4. 词性标注:") + print(f" {' '.join([f'{word}/{tag}' for word, tag in s.tags])}") + + # 5. 拼音转换 + print(f"\n5. 拼音:") + print(f" {' '.join(s.pinyin)}") + + # 6. 文本摘要 + if len(text) > 100: # 只对较长文本生成摘要 + print(f"\n6. 文本摘要:") + print(f" {' '.join(s.summary(3))}") + +if __name__ == "__main__": + # 测试用例 + test_texts = [ + "这家新开的餐厅很不错,菜品种类丰富,味道可口,服务态度也很好,价格实惠,强烈推荐大家来尝试!", + "这部电影剧情混乱,演技浮夸,特效粗糙,配乐难听,完全浪费了我的时间和票价。", + """人工智能正在改变我们的生活方式。它能够帮助我们完成复杂的计算任务, + 提供个性化的服务推荐,优化交通路线,辅助医疗诊断。但同时我们也要警惕 + 人工智能带来的问题,比如隐私安全、就业变化等。如何正确认识和利用人工智能, + 是我们每个人都需要思考的问题。""" + ] + + for text in test_texts: + demo_snownlp_features(text) + print("\n" + "="*50) \ No newline at end of file diff --git a/src/test/typo.py b/src/test/typo.py new file mode 100644 index 000000000..c452589ce --- /dev/null +++ b/src/test/typo.py @@ -0,0 +1,488 @@ +""" +错别字生成器 - 流程说明 + +整体替换逻辑: +1. 数据准备 + - 加载字频词典:使用jieba词典计算汉字使用频率 + - 创建拼音映射:建立拼音到汉字的映射关系 + - 加载词频信息:从jieba词典获取词语使用频率 + +2. 分词处理 + - 使用jieba将输入句子分词 + - 区分单字词和多字词 + - 保留标点符号和空格 + +3. 词语级别替换(针对多字词) + - 触发条件:词长>1 且 随机概率<0.3 + - 替换流程: + a. 获取词语拼音 + b. 生成所有可能的同音字组合 + c. 过滤条件: + - 必须是jieba词典中的有效词 + - 词频必须达到原词频的10%以上 + - 综合评分(词频70%+字频30%)必须达到阈值 + d. 按综合评分排序,选择最合适的替换词 + +4. 字级别替换(针对单字词或未进行整词替换的多字词) + - 单字替换概率:0.3 + - 多字词中的单字替换概率:0.3 * (0.7 ^ (词长-1)) + - 替换流程: + a. 获取字的拼音 + b. 声调错误处理(20%概率) + c. 获取同音字列表 + d. 过滤条件: + - 字频必须达到最小阈值 + - 频率差异不能过大(指数衰减计算) + e. 按频率排序选择替换字 + +5. 频率控制机制 + - 字频控制:使用归一化的字频(0-1000范围) + - 词频控制:使用jieba词典中的词频 + - 频率差异计算:使用指数衰减函数 + - 最小频率阈值:确保替换字/词不会太生僻 + +6. 输出信息 + - 原文和错字版本的对照 + - 每个替换的详细信息(原字/词、替换后字/词、拼音、频率) + - 替换类型说明(整词替换/声调错误/同音字替换) + - 词语分析和完整拼音 + +注意事项: +1. 所有替换都必须使用有意义的词语 +2. 替换词的使用频率不能过低 +3. 多字词优先考虑整词替换 +4. 考虑声调变化的情况 +5. 保持标点符号和空格不变 +""" + +from pypinyin import pinyin, Style +from collections import defaultdict +import json +import os +import unicodedata +import jieba +import jieba.posseg as pseg +from pathlib import Path +import random +import math +import time + +def load_or_create_char_frequency(): + """ + 加载或创建汉字频率字典 + """ + cache_file = Path("char_frequency.json") + + # 如果缓存文件存在,直接加载 + if cache_file.exists(): + with open(cache_file, 'r', encoding='utf-8') as f: + return json.load(f) + + # 使用内置的词频文件 + char_freq = defaultdict(int) + dict_path = os.path.join(os.path.dirname(jieba.__file__), 'dict.txt') + + # 读取jieba的词典文件 + with open(dict_path, 'r', encoding='utf-8') as f: + for line in f: + word, freq = line.strip().split()[:2] + # 对词中的每个字进行频率累加 + for char in word: + if is_chinese_char(char): + char_freq[char] += int(freq) + + # 归一化频率值 + max_freq = max(char_freq.values()) + normalized_freq = {char: freq/max_freq * 1000 for char, freq in char_freq.items()} + + # 保存到缓存文件 + with open(cache_file, 'w', encoding='utf-8') as f: + json.dump(normalized_freq, f, ensure_ascii=False, indent=2) + + return normalized_freq + +# 创建拼音到汉字的映射字典 +def create_pinyin_dict(): + """ + 创建拼音到汉字的映射字典 + """ + # 常用汉字范围 + chars = [chr(i) for i in range(0x4e00, 0x9fff)] + pinyin_dict = defaultdict(list) + + # 为每个汉字建立拼音映射 + for char in chars: + try: + py = pinyin(char, style=Style.TONE3)[0][0] + pinyin_dict[py].append(char) + except Exception: + continue + + return pinyin_dict + +def is_chinese_char(char): + """ + 判断是否为汉字 + """ + try: + return '\u4e00' <= char <= '\u9fff' + except: + return False + +def get_pinyin(sentence): + """ + 将中文句子拆分成单个汉字并获取其拼音 + :param sentence: 输入的中文句子 + :return: 每个汉字及其拼音的列表 + """ + # 将句子拆分成单个字符 + characters = list(sentence) + + # 获取每个字符的拼音 + result = [] + for char in characters: + # 跳过空格和非汉字字符 + if char.isspace() or not is_chinese_char(char): + continue + # 获取拼音(数字声调) + py = pinyin(char, style=Style.TONE3)[0][0] + result.append((char, py)) + + return result + +def get_homophone(char, py, pinyin_dict, char_frequency, min_freq=5): + """ + 获取同音字,按照使用频率排序 + """ + homophones = pinyin_dict[py] + # 移除原字并过滤低频字 + if char in homophones: + homophones.remove(char) + + # 过滤掉低频字 + homophones = [h for h in homophones if char_frequency.get(h, 0) >= min_freq] + + # 按照字频排序 + sorted_homophones = sorted(homophones, + key=lambda x: char_frequency.get(x, 0), + reverse=True) + + # 只返回前10个同音字,避免输出过多 + return sorted_homophones[:10] + +def get_similar_tone_pinyin(py): + """ + 获取相似声调的拼音 + 例如:'ni3' 可能返回 'ni2' 或 'ni4' + 处理特殊情况: + 1. 轻声(如 'de5' 或 'le') + 2. 非数字结尾的拼音 + """ + # 检查拼音是否为空或无效 + if not py or len(py) < 1: + return py + + # 如果最后一个字符不是数字,说明可能是轻声或其他特殊情况 + if not py[-1].isdigit(): + # 为非数字结尾的拼音添加数字声调1 + return py + '1' + + base = py[:-1] # 去掉声调 + tone = int(py[-1]) # 获取声调 + + # 处理轻声(通常用5表示)或无效声调 + if tone not in [1, 2, 3, 4]: + return base + str(random.choice([1, 2, 3, 4])) + + # 正常处理声调 + possible_tones = [1, 2, 3, 4] + possible_tones.remove(tone) # 移除原声调 + new_tone = random.choice(possible_tones) # 随机选择一个新声调 + return base + str(new_tone) + +def calculate_replacement_probability(orig_freq, target_freq, max_freq_diff=200): + """ + 根据频率差计算替换概率 + 频率差越大,概率越低 + :param orig_freq: 原字频率 + :param target_freq: 目标字频率 + :param max_freq_diff: 最大允许的频率差 + :return: 0-1之间的概率值 + """ + if target_freq > orig_freq: + return 1.0 # 如果替换字频率更高,保持原有概率 + + freq_diff = orig_freq - target_freq + if freq_diff > max_freq_diff: + return 0.0 # 频率差太大,不替换 + + # 使用指数衰减函数计算概率 + # 频率差为0时概率为1,频率差为max_freq_diff时概率接近0 + return math.exp(-3 * freq_diff / max_freq_diff) + +def get_similar_frequency_chars(char, py, pinyin_dict, char_frequency, num_candidates=5, min_freq=5, tone_error_rate=0.2): + """ + 获取与给定字频率相近的同音字,可能包含声调错误 + """ + homophones = [] + + # 有20%的概率使用错误声调 + if random.random() < tone_error_rate: + wrong_tone_py = get_similar_tone_pinyin(py) + homophones.extend(pinyin_dict[wrong_tone_py]) + + # 添加正确声调的同音字 + homophones.extend(pinyin_dict[py]) + + if not homophones: + return None + + # 获取原字的频率 + orig_freq = char_frequency.get(char, 0) + + # 计算所有同音字与原字的频率差,并过滤掉低频字 + freq_diff = [(h, char_frequency.get(h, 0)) + for h in homophones + if h != char and char_frequency.get(h, 0) >= min_freq] + + if not freq_diff: + return None + + # 计算每个候选字的替换概率 + candidates_with_prob = [] + for h, freq in freq_diff: + prob = calculate_replacement_probability(orig_freq, freq) + if prob > 0: # 只保留有效概率的候选字 + candidates_with_prob.append((h, prob)) + + if not candidates_with_prob: + return None + + # 根据概率排序 + candidates_with_prob.sort(key=lambda x: x[1], reverse=True) + + # 返回概率最高的几个字 + return [char for char, _ in candidates_with_prob[:num_candidates]] + +def get_word_pinyin(word): + """ + 获取词语的拼音列表 + """ + return [py[0] for py in pinyin(word, style=Style.TONE3)] + +def segment_sentence(sentence): + """ + 使用jieba分词,返回词语列表 + """ + return list(jieba.cut(sentence)) + +def get_word_homophones(word, pinyin_dict, char_frequency, min_freq=5): + """ + 获取整个词的同音词,只返回高频的有意义词语 + :param word: 输入词语 + :param pinyin_dict: 拼音字典 + :param char_frequency: 字频字典 + :param min_freq: 最小频率阈值 + :return: 同音词列表 + """ + if len(word) == 1: + return [] + + # 获取词的拼音 + word_pinyin = get_word_pinyin(word) + word_pinyin_str = ''.join(word_pinyin) + + # 创建词语频率字典 + word_freq = defaultdict(float) + + # 遍历所有可能的同音字组合 + candidates = [] + for py in word_pinyin: + chars = pinyin_dict.get(py, []) + if not chars: + return [] + candidates.append(chars) + + # 生成所有可能的组合 + import itertools + all_combinations = itertools.product(*candidates) + + # 获取jieba词典和词频信息 + dict_path = os.path.join(os.path.dirname(jieba.__file__), 'dict.txt') + valid_words = {} # 改用字典存储词语及其频率 + with open(dict_path, 'r', encoding='utf-8') as f: + for line in f: + parts = line.strip().split() + if len(parts) >= 2: + word_text = parts[0] + word_freq = float(parts[1]) # 获取词频 + valid_words[word_text] = word_freq + + # 获取原词的词频作为参考 + original_word_freq = valid_words.get(word, 0) + min_word_freq = original_word_freq * 0.1 # 设置最小词频为原词频的10% + + # 过滤和计算频率 + homophones = [] + for combo in all_combinations: + new_word = ''.join(combo) + if new_word != word and new_word in valid_words: + new_word_freq = valid_words[new_word] + # 只保留词频达到阈值的词 + if new_word_freq >= min_word_freq: + # 计算词的平均字频(考虑字频和词频) + char_avg_freq = sum(char_frequency.get(c, 0) for c in new_word) / len(new_word) + # 综合评分:结合词频和字频 + combined_score = (new_word_freq * 0.7 + char_avg_freq * 0.3) + if combined_score >= min_freq: + homophones.append((new_word, combined_score)) + + # 按综合分数排序并限制返回数量 + sorted_homophones = sorted(homophones, key=lambda x: x[1], reverse=True) + return [word for word, _ in sorted_homophones[:5]] # 限制返回前5个结果 + +def create_typo_sentence(sentence, pinyin_dict, char_frequency, error_rate=0.5, min_freq=5, tone_error_rate=0.2, word_replace_rate=0.3): + """ + 创建包含同音字错误的句子,支持词语级别和字级别的替换 + 只使用高频的有意义词语进行替换 + """ + result = [] + typo_info = [] + + # 分词 + words = segment_sentence(sentence) + + for word in words: + # 如果是标点符号或空格,直接添加 + if all(not is_chinese_char(c) for c in word): + result.append(word) + continue + + # 获取词语的拼音 + word_pinyin = get_word_pinyin(word) + + # 尝试整词替换 + if len(word) > 1 and random.random() < word_replace_rate: + word_homophones = get_word_homophones(word, pinyin_dict, char_frequency, min_freq) + if word_homophones: + typo_word = random.choice(word_homophones) + # 计算词的平均频率 + orig_freq = sum(char_frequency.get(c, 0) for c in word) / len(word) + typo_freq = sum(char_frequency.get(c, 0) for c in typo_word) / len(typo_word) + + # 添加到结果中 + result.append(typo_word) + typo_info.append((word, typo_word, + ' '.join(word_pinyin), + ' '.join(get_word_pinyin(typo_word)), + orig_freq, typo_freq)) + continue + + # 如果不进行整词替换,则进行单字替换 + if len(word) == 1: + char = word + py = word_pinyin[0] + if random.random() < error_rate: + similar_chars = get_similar_frequency_chars(char, py, pinyin_dict, char_frequency, + min_freq=min_freq, tone_error_rate=tone_error_rate) + if similar_chars: + typo_char = random.choice(similar_chars) + typo_freq = char_frequency.get(typo_char, 0) + orig_freq = char_frequency.get(char, 0) + replace_prob = calculate_replacement_probability(orig_freq, typo_freq) + if random.random() < replace_prob: + result.append(typo_char) + typo_py = pinyin(typo_char, style=Style.TONE3)[0][0] + typo_info.append((char, typo_char, py, typo_py, orig_freq, typo_freq)) + continue + result.append(char) + else: + # 处理多字词的单字替换 + word_result = [] + for i, (char, py) in enumerate(zip(word, word_pinyin)): + # 词中的字替换概率降低 + word_error_rate = error_rate * (0.7 ** (len(word) - 1)) + + if random.random() < word_error_rate: + similar_chars = get_similar_frequency_chars(char, py, pinyin_dict, char_frequency, + min_freq=min_freq, tone_error_rate=tone_error_rate) + if similar_chars: + typo_char = random.choice(similar_chars) + typo_freq = char_frequency.get(typo_char, 0) + orig_freq = char_frequency.get(char, 0) + replace_prob = calculate_replacement_probability(orig_freq, typo_freq) + if random.random() < replace_prob: + word_result.append(typo_char) + typo_py = pinyin(typo_char, style=Style.TONE3)[0][0] + typo_info.append((char, typo_char, py, typo_py, orig_freq, typo_freq)) + continue + word_result.append(char) + result.append(''.join(word_result)) + + return ''.join(result), typo_info + +def format_frequency(freq): + """ + 格式化频率显示 + """ + return f"{freq:.2f}" + +def main(): + # 记录开始时间 + start_time = time.time() + + # 首先创建拼音字典和加载字频统计 + print("正在加载汉字数据库,请稍候...") + pinyin_dict = create_pinyin_dict() + char_frequency = load_or_create_char_frequency() + + # 获取用户输入 + sentence = input("请输入中文句子:") + + # 创建包含错别字的句子 + typo_sentence, typo_info = create_typo_sentence(sentence, pinyin_dict, char_frequency, + error_rate=0.3, min_freq=5, + tone_error_rate=0.2, word_replace_rate=0.3) + + # 打印结果 + print("\n原句:", sentence) + print("错字版:", typo_sentence) + + if typo_info: + print("\n错别字信息:") + for orig, typo, orig_py, typo_py, orig_freq, typo_freq in typo_info: + # 判断是否为词语替换 + is_word = ' ' in orig_py + if is_word: + error_type = "整词替换" + else: + tone_error = orig_py[:-1] == typo_py[:-1] and orig_py[-1] != typo_py[-1] + error_type = "声调错误" if tone_error else "同音字替换" + + print(f"原文:{orig}({orig_py}) [频率:{format_frequency(orig_freq)}] -> " + f"替换:{typo}({typo_py}) [频率:{format_frequency(typo_freq)}] [{error_type}]") + + # 获取拼音结果 + result = get_pinyin(sentence) + + # 打印完整拼音 + print("\n完整拼音:") + print(" ".join(py for _, py in result)) + + # 打印词语分析 + print("\n词语分析:") + words = segment_sentence(sentence) + for word in words: + if any(is_chinese_char(c) for c in word): + word_pinyin = get_word_pinyin(word) + print(f"词语:{word}") + print(f"拼音:{' '.join(word_pinyin)}") + print("---") + + # 计算并打印总耗时 + end_time = time.time() + total_time = end_time - start_time + print(f"\n总耗时:{total_time:.2f}秒") + +if __name__ == "__main__": + main() diff --git a/src/test/typo_word.py b/src/test/typo_word.py new file mode 100644 index 000000000..b6982c0ed --- /dev/null +++ b/src/test/typo_word.py @@ -0,0 +1,301 @@ +from pypinyin import pinyin, Style +from collections import defaultdict +import json +import os +import unicodedata +import jieba +import jieba.posseg as pseg +from pathlib import Path +import random +import math + +def load_or_create_char_frequency(): + """ + 加载或创建汉字频率字典 + """ + cache_file = Path("char_frequency.json") + + # 如果缓存文件存在,直接加载 + if cache_file.exists(): + with open(cache_file, 'r', encoding='utf-8') as f: + return json.load(f) + + # 使用内置的词频文件 + char_freq = defaultdict(int) + dict_path = os.path.join(os.path.dirname(jieba.__file__), 'dict.txt') + + # 读取jieba的词典文件 + with open(dict_path, 'r', encoding='utf-8') as f: + for line in f: + word, freq = line.strip().split()[:2] + # 对词中的每个字进行频率累加 + for char in word: + if is_chinese_char(char): + char_freq[char] += int(freq) + + # 归一化频率值 + max_freq = max(char_freq.values()) + normalized_freq = {char: freq/max_freq * 1000 for char, freq in char_freq.items()} + + # 保存到缓存文件 + with open(cache_file, 'w', encoding='utf-8') as f: + json.dump(normalized_freq, f, ensure_ascii=False, indent=2) + + return normalized_freq + +# 创建拼音到汉字的映射字典 +def create_pinyin_dict(): + """ + 创建拼音到汉字的映射字典 + """ + # 常用汉字范围 + chars = [chr(i) for i in range(0x4e00, 0x9fff)] + pinyin_dict = defaultdict(list) + + # 为每个汉字建立拼音映射 + for char in chars: + try: + py = pinyin(char, style=Style.TONE3)[0][0] + pinyin_dict[py].append(char) + except Exception: + continue + + return pinyin_dict + +def is_chinese_char(char): + """ + 判断是否为汉字 + """ + try: + return '\u4e00' <= char <= '\u9fff' + except: + return False + +def get_pinyin(sentence): + """ + 将中文句子拆分成单个汉字并获取其拼音 + :param sentence: 输入的中文句子 + :return: 每个汉字及其拼音的列表 + """ + # 将句子拆分成单个字符 + characters = list(sentence) + + # 获取每个字符的拼音 + result = [] + for char in characters: + # 跳过空格和非汉字字符 + if char.isspace() or not is_chinese_char(char): + continue + # 获取拼音(数字声调) + py = pinyin(char, style=Style.TONE3)[0][0] + result.append((char, py)) + + return result + +def get_homophone(char, py, pinyin_dict, char_frequency, min_freq=5): + """ + 获取同音字,按照使用频率排序 + """ + homophones = pinyin_dict[py] + # 移除原字并过滤低频字 + if char in homophones: + homophones.remove(char) + + # 过滤掉低频字 + homophones = [h for h in homophones if char_frequency.get(h, 0) >= min_freq] + + # 按照字频排序 + sorted_homophones = sorted(homophones, + key=lambda x: char_frequency.get(x, 0), + reverse=True) + + # 只返回前10个同音字,避免输出过多 + return sorted_homophones[:10] + +def get_similar_tone_pinyin(py): + """ + 获取相似声调的拼音 + 例如:'ni3' 可能返回 'ni2' 或 'ni4' + """ + base = py[:-1] # 去掉声调 + tone = int(py[-1]) # 获取声调 + possible_tones = [1, 2, 3, 4] + possible_tones.remove(tone) # 移除原声调 + new_tone = random.choice(possible_tones) # 随机选择一个新声调 + return base + str(new_tone) + +def calculate_replacement_probability(orig_freq, target_freq, max_freq_diff=200): + """ + 根据频率差计算替换概率 + 频率差越大,概率越低 + :param orig_freq: 原字频率 + :param target_freq: 目标字频率 + :param max_freq_diff: 最大允许的频率差 + :return: 0-1之间的概率值 + """ + if target_freq > orig_freq: + return 1.0 # 如果替换字频率更高,保持原有概率 + + freq_diff = orig_freq - target_freq + if freq_diff > max_freq_diff: + return 0.0 # 频率差太大,不替换 + + # 使用指数衰减函数计算概率 + # 频率差为0时概率为1,频率差为max_freq_diff时概率接近0 + return math.exp(-3 * freq_diff / max_freq_diff) + +def get_similar_frequency_chars(char, py, pinyin_dict, char_frequency, num_candidates=5, min_freq=5, tone_error_rate=0.2): + """ + 获取与给定字频率相近的同音字,可能包含声调错误 + """ + homophones = [] + + # 有20%的概率使用错误声调 + if random.random() < tone_error_rate: + wrong_tone_py = get_similar_tone_pinyin(py) + homophones.extend(pinyin_dict[wrong_tone_py]) + + # 添加正确声调的同音字 + homophones.extend(pinyin_dict[py]) + + if not homophones: + return None + + # 获取原字的频率 + orig_freq = char_frequency.get(char, 0) + + # 计算所有同音字与原字的频率差,并过滤掉低频字 + freq_diff = [(h, char_frequency.get(h, 0)) + for h in homophones + if h != char and char_frequency.get(h, 0) >= min_freq] + + if not freq_diff: + return None + + # 计算每个候选字的替换概率 + candidates_with_prob = [] + for h, freq in freq_diff: + prob = calculate_replacement_probability(orig_freq, freq) + if prob > 0: # 只保留有效概率的候选字 + candidates_with_prob.append((h, prob)) + + if not candidates_with_prob: + return None + + # 根据概率排序 + candidates_with_prob.sort(key=lambda x: x[1], reverse=True) + + # 返回概率最高的几个字 + return [char for char, _ in candidates_with_prob[:num_candidates]] + +def create_typo_sentence(sentence, pinyin_dict, char_frequency, error_rate=0.5, min_freq=5, tone_error_rate=0.2): + """ + 创建包含同音字错误的句子,保留原文标点符号 + """ + result = [] + typo_info = [] + + # 获取每个字的拼音 + chars_with_pinyin = get_pinyin(sentence) + + # 创建原字到拼音的映射,用于跟踪已处理的字符 + processed_chars = {char: py for char, py in chars_with_pinyin} + + # 遍历原句中的每个字符 + char_index = 0 + for i, char in enumerate(sentence): + if char.isspace(): + # 保留空格 + result.append(char) + elif char in processed_chars: + # 处理汉字 + py = processed_chars[char] + # 基础错误率 + if random.random() < error_rate: + # 获取频率相近的同音字(可能包含声调错误) + similar_chars = get_similar_frequency_chars(char, py, pinyin_dict, char_frequency, + min_freq=min_freq, tone_error_rate=tone_error_rate) + if similar_chars: + # 随机选择一个替换字 + typo_char = random.choice(similar_chars) + # 获取替换字的频率 + typo_freq = char_frequency.get(typo_char, 0) + orig_freq = char_frequency.get(char, 0) + + # 计算实际替换概率 + replace_prob = calculate_replacement_probability(orig_freq, typo_freq) + + # 根据频率差进行概率替换 + if random.random() < replace_prob: + result.append(typo_char) + # 获取替换字的实际拼音 + typo_py = pinyin(typo_char, style=Style.TONE3)[0][0] + typo_info.append((char, typo_char, py, typo_py, orig_freq, typo_freq)) + else: + result.append(char) + else: + result.append(char) + else: + result.append(char) + char_index += 1 + else: + # 保留非汉字字符(标点符号等) + result.append(char) + + return ''.join(result), typo_info + +def format_frequency(freq): + """ + 格式化频率显示 + """ + return f"{freq:.2f}" + +def main(): + # 首先创建拼音字典和加载字频统计 + print("正在加载汉字数据库,请稍候...") + pinyin_dict = create_pinyin_dict() + char_frequency = load_or_create_char_frequency() + + # 获取用户输入 + sentence = input("请输入中文句子:") + + # 创建包含错别字的句子 + typo_sentence, typo_info = create_typo_sentence(sentence, pinyin_dict, char_frequency, + min_freq=5, tone_error_rate=0.2) + + # 打印结果 + print("\n原句:", sentence) + print("错字版:", typo_sentence) + + if typo_info: + print("\n错别字信息:") + for orig, typo, orig_py, typo_py, orig_freq, typo_freq in typo_info: + tone_error = orig_py[:-1] == typo_py[:-1] and orig_py[-1] != typo_py[-1] + error_type = "声调错误" if tone_error else "同音字替换" + print(f"原字:{orig}({orig_py}) [频率:{format_frequency(orig_freq)}] -> " + f"错字:{typo}({typo_py}) [频率:{format_frequency(typo_freq)}] [{error_type}]") + + # 获取拼音结果 + result = get_pinyin(sentence) + + # 打印完整拼音 + print("\n完整拼音:") + print(" ".join(py for _, py in result)) + + # 打印所有可能的同音字 + print("\n每个字的所有同音字(按频率排序,仅显示频率>=5的字):") + for char, py in result: + homophones = get_homophone(char, py, pinyin_dict, char_frequency, min_freq=5) + char_freq = char_frequency.get(char, 0) + print(f"{char}: {py} [频率:{format_frequency(char_freq)}]") + if homophones: + homophone_info = [] + for h in homophones: + h_freq = char_frequency.get(h, 0) + homophone_info.append(f"{h}[{format_frequency(h_freq)}]") + print(f"同音字: {','.join(homophone_info)}") + else: + print("没有找到频率>=5的同音字") + +if __name__ == "__main__": + main() From 079bab753aa00826f203f6a17e8a0f1af5249c0d Mon Sep 17 00:00:00 2001 From: SengokuCola <1026294844@qq.com> Date: Mon, 3 Mar 2025 17:30:08 +0800 Subject: [PATCH 26/26] littelchange --- .env | 2 +- bot.py | 2 +- src/plugins/chat/prompt_builder.py | 2 +- src/plugins/chat/utils.py | 2 ++ src/plugins/models/utils_model.py | 4 ++-- 5 files changed, 7 insertions(+), 5 deletions(-) diff --git a/.env b/.env index 06c26cdf3..8e50bc5d9 100644 --- a/.env +++ b/.env @@ -1,5 +1,5 @@ # 您不应该修改默认值,这个文件被仓库索引,请修改.env.prod -ENVIRONMENT=prod +ENVIRONMENT=dev # HOST=127.0.0.1 # PORT=8080 diff --git a/bot.py b/bot.py index 78bf34b32..906ffc37d 100644 --- a/bot.py +++ b/bot.py @@ -25,7 +25,7 @@ else: # 根据 ENVIRONMENT 加载对应的环境配置 env = os.getenv("ENVIRONMENT") env_file = f".env.{env}" - + if env_file == ".env.dev" and os.path.exists(env_file): logger.success("加载开发环境变量配置") load_dotenv(env_file, override=True) # override=True 允许覆盖已存在的环境变量 diff --git a/src/plugins/chat/prompt_builder.py b/src/plugins/chat/prompt_builder.py index 272229416..25e06a764 100644 --- a/src/plugins/chat/prompt_builder.py +++ b/src/plugins/chat/prompt_builder.py @@ -118,7 +118,7 @@ class PromptBuilder: prompt_info = self.get_prompt_info(message_txt,threshold=0.5) if prompt_info: prompt_info = f'''\n----------------------------------------------------\n你有以下这些[知识]:\n{prompt_info}\n请你记住上面的[知识],之后可能会用到\n----------------------------------------------------\n''' - promt_info_prompt = '你有一些[知识],在上面可以参考。' + # promt_info_prompt = '你有一些[知识],在上面可以参考。' end_time = time.time() print(f"\033[1;32m[知识检索]\033[0m 耗时: {(end_time - start_time):.3f}秒") diff --git a/src/plugins/chat/utils.py b/src/plugins/chat/utils.py index 91018ee08..a2a7a6f50 100644 --- a/src/plugins/chat/utils.py +++ b/src/plugins/chat/utils.py @@ -185,6 +185,8 @@ def get_recent_group_detailed_plain_text(db, group_id: int, limit: int = 12,comb message_detailed_plain_text = '' message_detailed_plain_text_list = [] + # 反转消息列表,使最新的消息在最后 + recent_messages.reverse() if combine: for msg_db_data in recent_messages: diff --git a/src/plugins/models/utils_model.py b/src/plugins/models/utils_model.py index 5f4d02df5..f911d7495 100644 --- a/src/plugins/models/utils_model.py +++ b/src/plugins/models/utils_model.py @@ -166,8 +166,8 @@ class LLM_request: # 发送请求到完整的chat/completions端点 api_url = f"{self.base_url.rstrip('/')}/chat/completions" - max_retries = 3 - base_wait_time = 15 + max_retries = 2 + base_wait_time = 6 for retry in range(max_retries): try: