快速生成格式化数据,适用与正大杯等问卷数据测试。
├── main.py # 主脚本
├── config_2.py # 配置文件,包含问卷和角色设置
├── data # 存放生成的 Excel 文件的目录
└── README.md # 文档
本项目依赖 config_2.py 中的以下变量:
-
WENJUAN
- 类型:字典
- 描述:定义问卷问题及其对应的选项数。(如每个问题有几个选项)
- 示例:
WENJUAN = { "Q1": 5, # 问题1有5个选项 "Q2": 4, # 问题2有4个选项 ... }
-
CHARACTERS
- 类型:字典
- 描述:定义各角色的采样配置,包括采样人数、各问题的选项分布等。
- 示例:
CHARACTERS = { "CharacterA": { "num": 100, # 该角色的样本数量 "fixed_probabilities": { # 指定部分问题的固定概率分布 "Q1": {"1": 0.3, "2": 0.7} }, "fixed_options": { # 指定部分问题的固定选项 "Q2": [2, 3] }, "Q3": (0.5, 0.1), # 使用正态分布生成答案,均值0.5,方差0.1 }, ... }
-
CHARACTER_NUM
- 描述:角色数。(未直接在代码块中使用,但可用作约束)
-
安装依赖
确保您的环境已安装以下依赖:
numpypandasopenpyxl(用于生成 Excel 文件)
可以使用以下命令安装:
pip install numpy pandas openpyxl
-
定义问卷和角色
根据您自己的需求,编辑
config_2.py中的 WENJUAN 和 CHARACTERS 配置。 -
运行脚本
执行主脚本
main.py:python main.py
-
查看结果
生成的样本数据会被保存到
data/目录下,文件名将带有时间戳(如:20231008_1230.xlsx)。
如果问卷和角色配置如下:
WENJUAN = {
"Q1": 4, # 问题1有4个选项
"Q2": 3 # 问题2有3个选项
}
CHARACTERS = {
"CharacterA": {
"num": 2,
"fixed_probabilities": {"Q1": {"1": 0.5, "2": 0.5}},
"fixed_options": {"Q2": [3]},
"Q1": (0.3, 0.1),
"Q2": (0.6, 0.2)
}
}生成 Excel 文件的内容可能如下:
| Q1 | Q2 |
|---|---|
| 1 | 3 |
| 2 | 3 |
- 问题选项生成的默认规则:
- 如果 fixed_options 存在,优先从固定选项中随机选择。
- 如果 fixed_probabilities 存在,根据预设概率随机选择选项。
- 否则,使用正态分布生成概率,并根据概率映射到选项。
- 请根据实际场景合理配置参数(如正态分布的均值和方差)。
- 请尽可能模拟现实中各个用户群体的不同特点,保证信效度。
此项目遵循 MIT License 开源许可证。您可以自由使用、修改和分发。