python代码注释抽取并移动
抽取策略 准备源代码和对应的带注释版本,须注意LLM生成的带注释版本极有可能会吞掉注释之后具体实现的代码(LLM特色),因此我们才需要抽取注释并移动 步骤 使用tree-sitter构造注释代码的语法树,并获取根节点 遍历注释版本的代码语法树,当遇到注释节点时 向上不断找父节点,直到如下两种情况之一 如果父节点是block,则上一节点就是这个注释处于的层级位置 比如可能是class_definition, function_definition 还有可能是for_statement这种statement节点 如果父节点是module,则说明这个注释写在代码主体之外 对于停止父节点是block的,再获取其上的一级父节点,找到block在该节点中的子节点下标index,则在源代码中该注释应当插在注释代码中子节点下标为index - 2(index - 1可能是’:')的文本在源代码中对应文本的后面 对于停止父节点是module的,直接插在源代码最上面
大数据分析期末项目——构建数据库
如何构建期末项目中的数据库 步骤 获取文件papers_with_predictions.csv 可见仓库https://github.com/NJU-ymhui/big-data-analysis-final-classifier,位于main分支下的`mlp/`文件夹下 可以选择运行MySql手动在数据库中添加对应的数据表,也可以在配置文件application.yml中添加如下内容 spring: jpa: hibernate: ddl-auto: update database-platform: org.hibernate.dialect.MySQL5Dialect 然后启动spring后端,这将会在数据库中自动创建数据表 手动添加数据表的示例如下 CREATE TABLE paper ( id INT AUTO_INCREMENT PRIMARY KEY, title VARCHAR(255) NOT NULL, abstract TEXT NOT NULL, category VARCHAR(50)...
神经网络作业报告
第三次作业报告 为了完成对这101个类别的分类任务,使用vgg带块的卷积神经网络 VGG 网络结构的实现如下 vgg.py from torch import nndef vgg_block(num_convs, in_channels, out_channels): """ 实现一个VGG块 :param num_convs: 卷积层数量 :param in_channels: 输入通道数量 :param out_channels: 输出通道数量 :return: 由卷积层、激活函数和池化层组成的序列模型 """ layers = [] for _ in range(num_convs): layers.append(nn.Conv2d(in_channels, out_channels, kernel_size=3, padding=1)) layers.append(nn.ReLU()) in_channels =...
SVM作业报告
SVM作业报告 数据准备 这一步为加载Iris数据集,同时对数据进行标准化,划分训练集和测试集。使用train_test_split和StandardScaler标准化api 模型训练 这一步为了使用数据训练SVM模型。分别声明使用线性核和RBF核的SVM,并使用上一步得到的训练集训练模型;训练完成后使用测试集数据进行预测,与标准结果进行比较计算准确率。 决策边界绘制 这一步为可视化SVM的训练效果,直观地看到好坏。使用plot_decision_boundary并传入训练好的模型与原始数据进行绘制,这一步修改了该函数的内部实现,增加了对网格化后的数据的标准化。 超参数调优 这一步为了寻找相对最优的CCC 和γ\gammaγ 。使用网格搜索GridSearchCV对最优超参数进行挑选,并使用三折交叉验证。 两个超参数CCC 和 γ\gammaγ : CCC:...
TSDetect
TSDetect Introduction A useful tool for unit test smell detection. Git Repository https://github.com/NJU-ymhui/TSDetect Have a try $ git clone https://github.com/NJU-ymhui/TSDetect.git References tsDetect: an open source test smells detection tool https://github.com/TestSmells/TSDetect Contact The author of this blog, email: 221870120@smail.nju.edu.cn
自然语言处理
写在前面 参考书籍 Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola. Dive into Deep Learning. 2020. 简介 - Dive-into-DL-PyTorch (tangshusen.me) 自然语言处理 source code: NJU-ymhui/DeepLearning: Deep Learning with pytorch (github.com) use git to clone:...
机器学习第一次作业报告
决策树实现 获取数据集 获取鸢尾花数据集 code iris = load_iris() 划分数据集 将数据集划分为训练集和测试集,划分比例按默认值,随便初始化随机种子。 code x_train, x_test, y_train, y_test = train_test_split(iris.data, iris.target, random_state=114) 使用决策树预估器进行分类 基于信息增益进行树的划分,之后用训练集训练模型 code estimator = DecisionTreeClassifier(criterion='entropy')estimator.fit(x_train, y_train) 模型评估 使用训练好的模型进行预测,查看一下基本预测情况,然后用预测值和真实值进行比较,查看正确与否;最后打分判断模型准确率。 code y_predict = estimator.predict(x_test)print("y_predict:\n",...
现代卷积神经网络
写在前面 参考书籍 Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola. Dive into Deep Learning. 2020. 简介 - Dive-into-DL-PyTorch (tangshusen.me) 现代卷积神经网络 source code: NJU-ymhui/DeepLearning: Deep Learning with pytorch (github.com) use git to clone: https://github.com/NJU-ymhui/DeepLearning.git /modernCNN AlexNet.py VGG.py NiN.py GoogLeNet.py tensor_normalize_self.py tensor_normalize_lib.py AlexNet 理论部分见8.1. Deep Convolutional Neural Networks (AlexNet) — Dive into Deep Learning 1.0.3...
现代循环神经网络
写在前面 参考书籍 Aston Zhang, Zachary C. Lipton, Mu Li, Alexander J. Smola. Dive into Deep Learning. 2020. 简介 - Dive-into-DL-PyTorch (tangshusen.me) 现代循环神经网络 source code: NJU-ymhui/DeepLearning: Deep Learning with pytorch (github.com) use git to clone:...
贪心
贪心算法(含动态规划思想) 贪心算法是一种局部最优选择策略。它通过在每一步都选择当前状态下的最优解,试图最终得到全局最优解; 动态规划通过将问题分解为 子问题,逐步求解子问题的最优解,最终得到整个问题的最优解。它利用子问题的重叠性和最优子结构性质。 核心 贪心算法的核心思想是总在每一步抉择中挑选出当前最大/最小(即最值)对应的情况进行处理,从而达到最好/最坏的情况,满足贪心的目的 例题 通配符匹配 题目 给你一个输入字符串 (s) 和一个字符模式 (p) ,请你实现一个支持 '?' 和 '*' 匹配规则的通配符匹配: '?' 可以匹配任何单个字符。 '*' 可以匹配任意字符序列(包括空字符序列)。 判定匹配成功的充要条件是:字符模式必须能够 完全匹配 输入字符串(而不是部分匹配)。 示例 1: 输入:s = "aa", p = "a"输出:false解释:"a" 无法匹配 "aa" 整个字符串。 示例 2: 输入:s = "aa", p =...