Skip to content

基于Embedding向量嵌入结合余弦相似度匹配开发的查重脚本

Notifications You must be signed in to change notification settings

AstreoX/DuplicateCheck

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 

Repository files navigation

题库查重工具

这是一个基于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文件处理)

使用方法

  1. 运行主程序:
python question_duplicate_checker.py
  1. 在界面中选择Excel题库文件(默认已设置为面向对象程序设计-题库 (1).xls

  2. 调整相似度阈值(默认0.85,值越高要求题目越相似才会被判定为重复)

  3. 选择嵌入模型(默认使用多语言模型以支持中文)

  4. 点击"开始分析"按钮开始查重

  5. 查看结果区域显示的重复题目对及其相似度

注意事项

  • 首次运行时,程序会下载预训练模型,需要联网
  • 处理大型题库可能需要较长时间
  • 建议使用较新版本的Python (3.7+)
  • Excel文件应包含题目ID和题目内容列

技术实现

本工具使用了自然语言处理中的文本嵌入技术,将题目文本转换为高维向量,然后通过计算向量间的余弦相似度来判断题目的相似程度。这种方法能够有效识别语义相似但表述不同的题目。

About

基于Embedding向量嵌入结合余弦相似度匹配开发的查重脚本

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages