这是一个基于Python开发的题库查重工具,使用嵌入向量和余弦相似度算法来检测Excel题库中的重复题目。
- 使用sentence-transformers生成文本嵌入向量
- 通过余弦相似度算法计算题目之间的相似度
- 提供友好的图形用户界面(GUI)
- 支持自定义相似度阈值
- 显示重复题目对及其相似度
- 生成相似度分布图表
- 进度条显示处理进度
在使用本工具前,需要安装必要的Python库。您可以通过运行install_dependencies.py脚本来自动安装所有依赖:
python install_dependencies.py
主要依赖包括:
- pandas (数据处理)
- numpy (数学计算)
- sentence-transformers (文本嵌入)
- scikit-learn (相似度计算)
- matplotlib (图表生成)
- tqdm (进度条)
- tkinter (GUI界面)
- xlrd/openpyxl (Excel文件处理)
- 运行主程序:
python question_duplicate_checker.py
-
在界面中选择Excel题库文件(默认已设置为
面向对象程序设计-题库 (1).xls) -
调整相似度阈值(默认0.85,值越高要求题目越相似才会被判定为重复)
-
选择嵌入模型(默认使用多语言模型以支持中文)
-
点击"开始分析"按钮开始查重
-
查看结果区域显示的重复题目对及其相似度
- 首次运行时,程序会下载预训练模型,需要联网
- 处理大型题库可能需要较长时间
- 建议使用较新版本的Python (3.7+)
- Excel文件应包含题目ID和题目内容列
本工具使用了自然语言处理中的文本嵌入技术,将题目文本转换为高维向量,然后通过计算向量间的余弦相似度来判断题目的相似程度。这种方法能够有效识别语义相似但表述不同的题目。