跳到内容
此存储库已由所有者于2020年12月25日存档。它现在是只读的。

whatevernevermindbro / source_code_classification

切换分支/标记

已使用的名称

已存在带有所提供分支名称的标记。许多Git命令同时接受标记和分支名称,因此创建这个分支可能会导致意外行为。您确定要创建这个分支吗?
代码

源代码分类

这是高等经济学院大数据分析方法实验室(HSE LAMBDA)的自然语言到机器学习(NL2ML)项目的一个版本。

项目官方回购存储在GitLab (HSE LAMBDA存储库)-https://gitlab.com/lambda-hse/nl2ml
项目的完整的描述存储在Notion -https://www.notion.so/NL2ML-Corpus-1ed964c08eb049b383c73b9728c3a231
项目的实验都存储在DAGsHub -//www.kkolawyers.com/levin/source_code_classification

项目目标

短期目标

构建对源代码块进行分类的模型,并指定检测到的类在块中的确切位置(标记分割)。

长期目标

通过获取一个简短的原始英语任务作为输入来构建一个模型生成代码。

库描述

这个存储库包含了项目团队一直使用的工具,用于标记带有知识图顶点的源代码块,并训练模型在将来识别这些顶点。通过知识图顶点,我们指的是ml管道的基本部分。当前最新版本的知识图谱包含以下高级顶点:['import', 'data_import', 'data_export', '预处理','可视化','模型','deep_learning_model', 'train' 'predict']

数据下载

下载项目数据及模型:

  1. 克隆此存储库
  2. 安装DVChttps://dvc.org/doc/install
  3. DVC拉拔数据DVC拉拔数据。注意:如果你失败了DVC pull [folder_to_pull],试着DVC pull [folder_to_pull]—jobs

内容:

我们用来实现项目目标的工具有:Kaggle API和Github API的笔记本解析、数据准备、regex标签、训练模型、验证模型、模型权重/系数分析、错误分析、同义词分析。

nl2ml_notebook_parser.py解析Kaggle笔记本并将其处理为JSON/CSV/Pandas的脚本。

bert_distances.ipynb-一个带有BERT实验的笔记本,涉及BERT嵌入之间的距距感,其中输入令牌被标记为源代码块。

bert_classifier.ipynb-一个笔记本与预处理和培训伯特流水线。

regex.ipynb一个用正则表达式为代码块创建标签的笔记本

logreg_classifier.ipynb-一个用tf-idf在正则表达式标签上训练逻辑回归模型并分析输出的笔记本

注释vs注释代码-一个笔记本,有一个模型区分nl注释和被注释的源代码

github_dataset.ipynb-一个笔记本,打开github_dataset

predict_tag.ipynb-一个笔记本与预测类别标签(标签)与任何模型

svm_classifier.ipynb-一个带有训练支持向量机的笔记本(由svm_train.py),并分析SVM输出

svm_train.py一个训练SVM模型的脚本

约定:

  • 输入CSV: encoding='utf-8', sep=',', CODE_COLUMN在所有输入CSV中必须== 'code_block'
  • 知识图谱:GRAPH_DIR必须是以下格式:'./graph/graph_v{}.txt'.format(GRAPH_VER)

关于

(弃用)NL2ML-project

资源

星星

观察人士

释放

未发布

没有发布包