SO网站中知识单元的内部链接目的分类方法技术

技术编号:39134528 阅读:10 留言:0更新日期:2023-10-23 14:52
本发明专利技术公开了一种SO网站中知识单元的内部链接目的分类方法,该方法首先将SO知识单元内容拆分为自然语言和代码语言,然后分别采用不同的数据增强方法进一步提升数据增强的效果,再利用课程学习的方法将增强后的数据输入到RoBERTa模型中进行训练,缓解了数据集量少、模型学习种类复杂而导致的分类结果准确度低的问题,提高了整体鲁棒性。本发明专利技术方法只需少量数据即能够实现对SO知识单元链接目的准确分类。本发明专利技术方法为自动化的链接目的分类方法,使得SO中的链接目的将能够更加准确地进行分类。本发明专利技术能够帮助寻求帮助的开发者了解链接的目的,进而快速判断是否需要点击链接以获取相关的知识。取相关的知识。取相关的知识。

【技术实现步骤摘要】
SO网站中知识单元的内部链接目的分类方法


[0001]本专利技术涉及一种SO网站中知识单元的内部链接目的分类方法,主要应用于知识问答网站SO中对知识单元与知识单元的链接目的进行分类。

技术介绍

[0002]在SO的知识问答网站中,存在着大量由特定问题、答案和评论组成的知识单元。用户在问题、答案或评论中使用内部链接的目的各不相同,例如补充自己的回答、解释相关的知识单元重复、或者指向其他知识单元以获取更详细的解决方法等等。
[0003]然而,不同链接目的的内部链接对于后来寻求帮助的开发者来说具有不同的帮助程度。
[0004]例如,当链接目的是为了提供特定问题的子步骤的具体解决方法时,开发者必须点击链接才能获取到相关的知识。而当链接目的是为了提供回答内容的参考出处时,开发者无需点击链接即可获取到原本知识单元中的知识,而链接中的知识单元的内容则属于扩充内容,对于原本知识单元的理解并非必要,因此需要对SO知识单元中内部链接目的进行分类。
[0005]然而,在SO社区中存在着数以百万计的内部链接。若要采用人工方法对SO知识单元中所有链接目的进行分类,不仅是一项不切实际的任务,而且由于SO作为一个编程热门社区,其内容一直在不断更新,导致分类工作成为一项持续性的挑战。从头开始对一个大型模型进行预训练的开销很大,因此应充分利用预训练模型适应分类任务。
[0006]针对知识单元中内部链接的分类的准确度的提升,传统的方法往往是直接将训练数据输入到BERT模型中或输入到改良模型后的RoBERTa模型中,但是此种方法没有充分地利用预训练模型的潜力,未能解决特定训练数据数据量少而网络结构复杂的过拟合问题。

技术实现思路

[0007]本专利技术的目的在于提出一种SO网站中知识单元的内部链接目的分类方法,旨在解决数据集量少、模型学习种类复杂而导致的分类结果准确度低的问题,提高识别精度。
[0008]本专利技术为了实现上述目的,采用如下技术方案:
[0009]SO网站中知识单元的内部链接目的分类方法,包括如下步骤:
[0010]步骤1.将原始数据集经过预处理,得到自然语言数据集和代码数据集;
[0011]步骤2.将自然语言数据集中的自然语言以及代码数据集中的代码分别进行数据增强,然后将增强后的自然语言以及代码重新组合成为增强数据集;
[0012]将增强数据集分为训练集以及测试集,分别用于RoBERTa模型训练和测试;
[0013]步骤3.将训练集中的数据通过课程学习的方法输入到RoBERTa模型中进行训练,得到训练好的RoBERTa模型,并利用测试集对训练好的RoBERTa模型测试;
[0014]利用训练以及测试好的RoBERTa模型对输入的内部链接目的进行分类预测。
[0015]本专利技术具有如下优点:
[0016]如上所述,本专利技术述及了一种SO网站中知识单元的内部链接目的分类方法,该内部链接目的分类方法首先将SO知识单元内容拆分为自然语言和代码语言,然后分别采用不同的数据增强方法,进一步提升数据增强的效果,再采用课程学习的方法,将增强后的数据输入到RoBERTa模型中进行训练,从而缓解了数据集量少、模型学习种类复杂而导致的分类结果准确度低的问题,提高了整体鲁棒性。本专利技术方法只需少量数据即能够实现对SO知识单元链接目的准确分类。本专利技术方法能够帮助后来寻求帮助的开发者了解链接的目的,从而能够快速判断是否需要点击链接以获取相关的知识,进而提升阅读效率。
附图说明
[0017]图1为本专利技术实施例中SO网站中知识单元的内部链接目的分类方法的流程图。
具体实施方式
[0018]下面结合附图以及具体实施方式对本专利技术作进一步详细说明:
[0019]本专利技术实施例提出了一种SO网站中知识单元的内部链接目的分类方法,该方法旨在通过使用数据增强、课程学习的方法来对预训练模型进行改进,并最终对Stack Overflow网站(以下简称SO)中链接知识单元与知识单元的链接目的进行分类预测,具体构思如下:
[0020]在将数据输入预训练模型之前,通过数据增强,即通过语义保持变换来丰富数据的多样性;并且通过引入课程学习,以从易到难的方式组织语义保持变换后的数据,从而达到改进预训练模型的目的,有效地缓解分类过程中的过拟合问题、提高分类过程的准确性。
[0021]如图1所示,本实施例中SO网站中知识单元的内部链接目的分类方法,包括如下步骤:
[0022]步骤1.将原始数据集经过预处理,得到自然语言数据集和代码数据集。
[0023]所述步骤1具体为:
[0024]步骤1.1.为了获取Stack Overflow社区中的所有内部链接,从SO网站官方的转储库中下载posts数据表和postlinks数据表。
[0025]其中,posts数据表记录了所有知识单元的各种信息,包括知识单元的ID号和文本内容;而postlinks数据表记录了由内部链接关联起来的两个知识单元的ID号。
[0026]通过这些数据,本实施例可以获取到所有的内部链接以及它们所关联的内容。一旦获取了数据,接下来的步骤是将知识单元的内容拆分为自然语言和代码,以便后续处理。
[0027]步骤1.2.通过数据表posts的文本内容的格式说明字符,定位知识单元中自然语言部分以及代码部分,并将知识单元内容拆分为自然语言和代码。
[0028]在posts数据表中,记录文本内容时采用了不同的标记方式;其中,对于代码,使用<code></code>进行标记,而对于自然语言,则使用<p></p>进行标记。
[0029]因此,本实施例使用正则表达式将自然语言部分和代码部分区分开来。具体的,通过正则表达式,将<p></p>与<code></code>中的部分识别出来。
[0030]由于每个知识单元中可能有多个自然语言区域和代码区域,因此,本实施例采用\pm和\cm分别对不同的自然语言和代码进行标记,其中,m为自然数。
[0031]将所有的\pm代表的自然语言合并,所有的\cm代表的代码合并,并分别作为自然
语言数据集中的自然语言和代码数据集中的代码,并赋予ID号。
[0032]每个知识单元都有唯一的ID编号,将ID编号分别赋予拆分后的自然语言和代码,作为拆分后的自然语言和代码在自然语言数据集和代码数据集中的ID号。
[0033]在进行数据增强后,再次将它们组合起来。通过这样的数据预处理过程,成功将原始数据集分为自然语言数据集和代码数据集,为后续的处理和分析打下了基础。
[0034]下面是一个具体示例。假设原知识单元在数据库中的ID为“10001”,其内容如下:
[0035]&am本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.SO网站中知识单元的内部链接目的分类方法,其特征在于,包括如下步骤:步骤1.将原始数据集经过预处理,得到自然语言数据集和代码数据集;步骤2.将自然语言数据集中的自然语言以及代码数据集中的代码分别进行数据增强,然后将增强后的自然语言以及代码重新组合成为增强数据集;将增强数据集分为训练集以及测试集,分别用于RoBERTa模型训练和测试;步骤3.将训练集中的数据通过课程学习的方法输入到RoBERTa模型中进行训练,得到训练好的RoBERTa模型,并利用测试集对训练好的RoBERTa模型测试;步骤4.利用训练以及测试好的RoBERTa模型对输入的内部链接目的进行分类预测。2.根据权利要求1所述的SO网站中知识单元的内部链接目的分类方法,其特征在于,所述步骤1具体为:步骤1.1.从SO网站的转储库中下载posts数据表和postlinks数据表;其中,posts数据表记录了所有知识单元的各种信息,包括知识单元的ID号和文本内容;而postlinks数据表记录了由内部链接关联起来的两个知识单元的ID号;步骤1.2.通过数据表posts的文本内容的格式说明字符,定位知识单元中自然语言部分以及代码部分,并将知识单元内容拆分为自然语言和代码;在posts数据表中,记录文本内容时采用了不同的标记方式;其中,对于代码,使用<code></code>进行标记,而对于自然语言,则使用<p></p>进行标记;通过正则表达式,将<p></p>与<code></code>中的部分识别出来,并分别作为自然语言数据集中的自然语言和代码数据集中的代码,并赋予ID号;每个知识单元都有唯一的ID编号,将ID编号分别赋予拆分后的自然语言和代码,作为拆分后的自然语言和代码在自然语言数据集和代码数据集中的ID号;至此,将原始数据集划分为自然语言数据集和代码数据集。3.根据权利要求1所述的SO网站中知识单元的内部链接目的分类方法,其特征在于,所述步骤2中,自然语言进行数据增强的过程如下:步骤2.1.1.检测自然语言数据集中的自然语言数据中的词语的词性;对于关键词进行保留;对于非关键词,使用同义词或近义词替代原有词汇,得到第一次增强后的自然语言数据;步骤2.1.2.将第一次增强后的自然语言数据通过翻译程序翻译为其他语言,再通过相同的翻译程序翻译回原语言类型,得到第二次增强后的自然语言数据;步骤2.1.3.在第二次增强后的自然语言数据中随机插入至少一个与第二次增强后的自然语言数据无关紧要的词语,得到第三次增强后的自然语言数据。4.根据权利要求3所述的SO网站中知识单元的内部链接目的分类方法,其特征在于,所述步骤2.1.1中,nltk语料库中存在与同义词替换适配的包,因此通过在代码中加入nltk语料库,将自然语言数据集中的自然语言输入,能够得...

【专利技术属性】
技术研发人员:张静宣孙天悦宫丽娜魏明强赵宇
申请(专利权)人:南京航空航天大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1