Ứng dụng học sâu và embedding văn bản phát hiện lỗi mã nguồn - Luận án Trần Thị Đinh

Luận án ứng dụng học sâu và BERT embedding phát hiện nợ kỹ thuật trong mã nguồn R và Java. Sử dụng Graph Convolutional Networks đạt hiệu quả vượt trội.

Chuyên ngành

Software Engineering

Tác giả

Luan An

Thể loại

Thesis

Năm xuất bản

Số trang

64

Thời gian đọc

10 phút

Lượt xem

1

Lượt tải

0

Phí lưu trữ

40 Point

Tóm tắt nội dung

I. Phát hiện nợ kỹ thuật tự thừa nhận SATD

Nợ kỹ thuật (Technical Debt - TD) xuất hiện khi nhóm phát triển phần mềm chọn giải pháp tối ưu ngắn hạn thay vì tuân thủ nguyên tắc phát triển tốt nhất. Các quyết định này tạo ra gánh nặng bảo trì phải giải quyết sau này. Self-admitted technical debt (SATD) là loại nợ kỹ thuật được lập trình viên ghi nhận trực tiếp trong code comments. Việc phát hiện SATD giúp đội ngũ phát triển nhận diện sớm các vấn đề tiềm ẩn, từ đó lập kế hoạch xử lý hiệu quả. Nghiên cứu trước đây tập trung chủ yếu vào ngôn ngữ hướng đối tượng như Java. Tuy nhiên, SATD detection trở nên phức tạp hơn với scripting languages như R do đặc điểm dynamic programming và comments súc tích. DebtSniffer ra đời như giải pháp thực tiễn cho bài toán này, áp dụng deep learning và text embedding để phát hiện SATD trong cả R packages và Java source codes.

1.1. Khái niệm nợ kỹ thuật trong phát triển phần mềm

Technical debt phản ánh sự đánh đổi giữa tốc độ phát triển và chất lượng code. Các nhóm phát triển thường chấp nhận giải pháp không tối ưu để đáp ứng deadline hoặc yêu cầu thị trường. Những quyết định này tạo ra 'khoản nợ' cần trả bằng effort bảo trì sau này. Code quality bị ảnh hưởng trực tiếp, dẫn đến tăng chi phí maintenance và giảm khả năng mở rộng hệ thống.

1.2. Self admitted technical debt và tầm quan trọng

SATD là dạng technical debt được developers ghi chép trực tiếp trong source code comments. Các ghi chú này thường chứa từ khóa như 'TODO', 'FIXME', 'HACK' hoặc mô tả vấn đề cần cải thiện. SATD detection tự động giúp quản lý code debt hiệu quả hơn, tránh tích lũy vấn đề dẫn đến system degradation. Natural language processing đóng vai trò then chốt trong việc phân tích những comment này.

1.3. Thách thức trong phát hiện SATD đa ngôn ngữ

Phát hiện SATD gặp khó khăn khi áp dụng cho nhiều ngôn ngữ lập trình khác nhau. R language với dynamic programming paradigm và comments ngắn gọn tạo ra thách thức riêng. Java với cấu trúc hướng đối tượng có đặc điểm comment khác biệt. Code comment analysis cần điều chỉnh phù hợp với từng ngôn ngữ để đạt độ chính xác cao.

II. Deep learning cho SATD detection

Deep learning mang lại đột phá trong SATD detection nhờ khả năng học các đặc trưng phức tạp từ text data. Các mô hình neural network có thể nắm bắt semantic information trong code comments tốt hơn phương pháp truyền thống. BERT (Bidirectional Encoder Representations from Transformers) là pre-trained model mạnh mẽ cho natural language understanding. Graph Convolutional Networks (GCN) giúp kết nối các câu comment rời rạc và học representations thông qua graph structure. Sự kết hợp giữa BERT embeddings và GCN tạo nên DebtSniffer - framework hiệu quả cho SATD detection. Transfer learning cho phép tận dụng kiến thức từ pre-trained models, giảm nhu cầu dữ liệu huấn luyện. Các transformer models như BERT đã được chứng minh vượt trội trong code-related tasks.

2.1. BERT model và text embedding

BERT là pre-trained language model sử dụng transformer architecture để học bidirectional context. Model này tạo ra dense vector representations chứa rich semantic information từ text. Text embedding từ BERT nắm bắt được ý nghĩa sâu xa của code comments, vượt trội hơn word2vec hay traditional word embedding. Transfer learning cho phép fine-tune BERT trên domain-specific data như software comments để cải thiện performance.

2.2. Graph Convolutional Networks trong SATD

GCN mở rộng convolutional neural networks sang dữ liệu dạng graph structure. Trong SATD detection, GCN kết nối các comment sentences thành graph, cho phép label propagation giữa labeled training data và unlabeled test data. Graph convolution học node representations bằng cách aggregate thông tin từ neighboring nodes. Phương pháp này hiệu quả với scattered comments trong source code.

2.3. Kiến trúc DebtSniffer framework

DebtSniffer kết hợp BERT embeddings với GCN để phát hiện SATD. Đầu tiên, pre-trained BERT model encode code comments thành vector representations. Tiếp theo, GCN xây dựng graph từ comment embeddings và học relationships giữa các nodes. Layer cuối cùng classification layer phân loại comments thành 12 TD categories. Architecture này áp dụng cho cả R packages và Java source codes.

III. Text embedding methods cho code analysis

Text embedding chuyển đổi text thành numerical vectors mà machine learning models có thể xử lý. Các phương pháp embedding khác nhau mang lại chất lượng representation khác biệt. Word2vec là kỹ thuật truyền thống học word vectors từ large corpus dựa trên context. BERT và các transformer models tạo contextual embeddings thay đổi theo surrounding words. Code-specific embeddings được thiết kế riêng để nắm bắt đặc điểm của programming languages. Pre-trained models như CodeBERT được huấn luyện trên large code repositories. Text embedding quality ảnh hưởng trực tiếp đến SATD detection accuracy. DebtSniffer sử dụng BERT embeddings để giữ lại semantic richness của code comments trong cả R và Java.

3.1. Word2vec và traditional embedding approaches

Word2vec học static word embeddings thông qua neural network với hai architectures: CBOW và Skip-gram. Mỗi word có một fixed vector representation bất kể context. Traditional methods này không nắm bắt được polysemy - từ có nhiều nghĩa khác nhau. Trong code comment analysis, word2vec gặp hạn chế với technical terms và domain-specific vocabulary.

3.2. BERT và contextual embeddings

BERT tạo contextual embeddings thay đổi dựa trên surrounding words trong sentence. Pre-training trên massive text corpus giúp BERT học general language understanding. Fine-tuning trên code comments data điều chỉnh model cho software engineering tasks. BERT embeddings capture semantic nuances tốt hơn static embeddings, quan trọng cho SATD detection với varied comment styles.

3.3. Code specific embedding models

CodeBERT và GraphCodeBERT là pre-trained models chuyên biệt cho code understanding. Models này học từ code-text pairs trong repositories như GitHub. Code-specific embeddings hiểu syntax và semantic của programming languages tốt hơn general-purpose models. Transfer learning từ code-pretrained models cải thiện performance trên downstream tasks như SATD detection.

IV. Thí nghiệm SATD detection trên R và Java

Đánh giá DebtSniffer được thực hiện trên hai datasets lớn: 4,961 R comments từ 503 open source projects và bốn Java sources bao gồm source code comments, commit messages, pull requests, và issue tracking systems. R comments được phân loại thành 12 TD categories phản ánh các loại technical debt khác nhau. Java dataset đa dạng hơn với nhiều nguồn dữ liệu từ development workflow. Experimental results cho thấy DebtSniffer vượt trội so với state-of-the-art approaches sử dụng traditional word embedding. Performance metrics bao gồm precision, recall, và F1-score trên từng TD class. Code quality assessment được cải thiện đáng kể nhờ accurate SATD detection. Kết quả chứng minh hiệu quả của deep learning và BERT embeddings trong software engineering tasks.

4.1. Dataset và phương pháp thu thập dữ liệu

R dataset gồm 4,961 comments từ 503 open source projects trên repositories như CRAN và GitHub. Comments được manual labeling thành 12 technical debt categories bởi domain experts. Java dataset thu thập từ multiple sources: inline comments, commit messages, pull request discussions, và issue tracker comments. Data collection đảm bảo diversity về project types và comment styles để tăng generalization của model.

4.2. Kết quả thí nghiệm và so sánh performance

DebtSniffer đạt F1-score cao hơn baseline methods sử dụng word2vec và traditional machine learning. Trên R dataset, model phát hiện chính xác 12 TD classes với performance improvement đáng kể. Java sources cho kết quả tương tự, đặc biệt tốt trên commit messages và pull requests. Comparison với state-of-the-art approaches chứng minh ưu việt của BERT embeddings kết hợp GCN.

4.3. Phân tích chi tiết theo TD categories

Các TD categories như Design Debt, Defect Debt, và Documentation Debt có detection accuracy khác nhau. Design-related comments thường dài và descriptive, dễ phát hiện hơn. Defect Debt với keywords như 'bug' hoặc 'fix' có precision cao. Documentation Debt đôi khi bị nhầm lẫn với normal comments do ngôn ngữ tương tự. Analysis này giúp identify areas cần improvement trong future work.

V. Ứng dụng thực tiễn trong software engineering

SATD detection tự động mang lại nhiều lợi ích thực tiễn cho software development teams. Code review process được tăng tốc khi reviewers có thể focus vào identified technical debt areas. Project managers sử dụng SATD metrics để prioritize refactoring tasks và resource allocation. Continuous integration pipelines tích hợp DebtSniffer để monitor technical debt accumulation theo thời gian. Maintenance cost giảm khi teams address SATD proactively thay vì reactive fixing. Software quality improvement đến từ systematic debt management dựa trên automated detection. Long-term codebase health được đảm bảo thông qua regular SATD tracking và resolution. Development productivity tăng khi developers spend less time hunting for hidden technical issues.

5.1. Tích hợp vào quy trình phát triển phần mềm

DebtSniffer có thể integrate vào CI/CD pipelines như Jenkins hoặc GitLab CI. Automated checks chạy mỗi khi code được commit hoặc pull request được tạo. Teams nhận notifications về new SATD instances để xử lý ngay. Integration với project management tools như Jira tạo automatic tickets cho technical debt items. Workflow này đảm bảo technical debt không bị ignored trong development cycle.

5.2. Quản lý và ưu tiên technical debt

SATD detection results giúp teams categorize và prioritize debt items theo severity và impact. Metrics như debt density và debt trend cung cấp insights về codebase health. Project managers sử dụng data này để plan refactoring sprints và allocate resources. Prioritization dựa trên factors như business impact, fixing effort, và risk level. Systematic approach này thay thế ad-hoc debt management.

5.3. Cải thiện chất lượng code và bảo trì

Regular SATD monitoring giúp teams maintain high code quality standards. Early detection prevents debt accumulation dẫn đến major refactoring efforts. Documentation của technical debt qua SATD comments tạo knowledge base cho future developers. Code maintainability được cải thiện khi debt được addressed systematically. Long-term benefits bao gồm reduced bug rates và faster feature development.

VI. Hướng phát triển và kết luận nghiên cứu

Nghiên cứu này giới thiệu DebtSniffer - approach mới cho SATD detection sử dụng BERT embeddings và Graph Convolutional Networks. Experimental results trên R và Java datasets chứng minh effectiveness vượt trội so với traditional methods. Deep learning và text embedding methods mở ra hướng mới cho automated code analysis. Future work có thể mở rộng sang nhiều programming languages khác như Python, JavaScript, hoặc C++. Improvement opportunities bao gồm multi-lingual models và cross-project SATD detection. Research directions khác là explainable AI để hiểu tại sao model classify comments as SATD. Integration với automated refactoring tools tạo end-to-end debt management system. Contributions của thesis bao gồm novel architecture, comprehensive evaluation, và practical implications cho software engineering community.

6.1. Đóng góp chính của nghiên cứu

Thesis đề xuất DebtSniffer framework kết hợp BERT và GCN cho SATD detection. Đây là nghiên cứu đầu tiên áp dụng pre-trained transformer models cho R language comments. Comprehensive evaluation trên 12 TD categories và multiple Java sources cung cấp thorough assessment. Practical approach có thể deploy trong real-world development environments. Research methodology và findings đóng góp vào software engineering và natural language processing literature.

6.2. Hạn chế và hướng nghiên cứu tương lai

Current approach requires labeled training data, hạn chế scalability sang new domains. Model performance phụ thuộc vào comment quality và completeness trong codebase. Future work có thể explore semi-supervised hoặc unsupervised learning để reduce labeling effort. Extension sang more programming languages và comment types mở rộng applicability. Explainability mechanisms giúp developers understand và trust model predictions.

6.3. Tầm nhìn automated technical debt management

Vision dài hạn là fully automated technical debt lifecycle management từ detection đến resolution. AI-powered systems có thể suggest refactoring strategies dựa trên detected SATD patterns. Integration với code generation models như GPT có thể automate debt fixing process. Predictive analytics dự đoán future technical debt dựa trên development patterns. Comprehensive platform này transforms cách teams manage code quality và technical debt.

Xem trước tài liệu
Tải đầy đủ để xem toàn bộ nội dung
Application of deep learning and text embedding methods for self   admitted technical debt detection = Ứng dụng mô hình học sâu và các kỹ thuật xử lý văn bản trong phát hiện lỗi mã nguồn

Tải xuống file đầy đủ để xem toàn bộ nội dung

Tải đầy đủ (64 trang)

Trích đoạn nội dung luận án

Tải xuống để đọc toàn bộ

HANOI UNIVERSITY OF SCIENCE AND TECHNOLOGY THESIS Application of deep learning and text embedding methods for self-admitted technical debt detection TRAN THI DINH dinh.vn Thesis advisor : Dr. Bui Thi Mai Anh Signature of advisor Department : Department of Software Engineering Institute : School of Information and Communication Technology Hanoi, 10-2023 THESIS ASSIGNMENT 1. Student’s information : Name : Tran Thi Dinh. Phone : 0971236392 Email: dinh.vn Class : Data Science (Elitech) Affiliation : Hanoi University of Science and Technology.

Thesis title : Application of deep learning and text embedding methods for self- admitted technical debt detection 3. Declarations/Disclosures : I herewith formally declare that I — Tran Thi Dinh — have performed the work and presentation in this thesis independently under supervisions of Dr. Bui Thi Mai Anh. All of the results are genuine and are not copied from any other sources.

Every reference materials are clearly listed in the bibliography. I will accept full responsibility for even one copy that violates school regulations. Hanoi, date month year 2023 Author Tran Thi Dinh 4. Attestation of thesis advisor:.

Hanoi, date month year 2023 Thesis Advisor Dr. Bui Thi Mai Anh Acknowledgments I would like to take this moment to express my deep and heartfelt gratitude to the individuals whose unwavering support, invaluable guidance, and unwavering assistance have been the cornerstone of my successful journey in completing this thesis. Foremost, I extend my sincerest thanks to Dr.Bui Thi Mai Anh and Dr.Nguyen Thanh Phuong, whose mentorship has been a beacon of wisdom and expertise. Their continuous support and mentorship have not only illuminated the path of this research but have also significantly contributed to its depth and quality.

The insightful feedback and constructive critique they have generously provided have not only steered my work in the right direction but have also fostered my academic growth. Furthermore, beyond these formal acknowledgments, I wish to express my gratitude to my friends and family, whose unwavering support, encouragement, and invaluable in- sights have accompanied me throughout this thesis journey. Your camaraderie and moti- vation have been a constant source of inspiration, reminding me of the strength derived from community and shared aspirations. In conclusion, I humbly acknowledge that this thesis would have remained a dream without the unwavering support and collaboration of these remarkable individuals.

Their collective contributions have elevated the quality and depth of this research, and I am profoundly thankful for their unwavering dedication to my academic voyage. i Thesis advisor : Dr. Bui Thi Mai Anh Tran Thi Dinh ABSTRACT Software teams typically turn to sub-optimal solutions that deviate from the best soft- ware development principles in order to strike a balance between short-term efficiency and long-term stability. Such solutions might lead to maintenance issues, so called Technical Debt (TD), which need be paid later on.

Previous studies have leveraged text-mining techniques for automated TD detection in source code comments (a.a Self Admitted Technical Debt–SATD), primarily focusing on object-oriented languages like Java. However, SATD detection becomes challenging in scripting languages such as R, which employ dynamic programming paradigms and have highly compact and algorithm-aligned comments. In this thesis, we introduce DebtSniffer as a practical approach for detecting SATD in both R packages and Java source codes. We utilize a code-embedding technique, i., pre-trained BERT models, to retain the rich semantic information embedded in R source code comments and Java source codes.

Subsequently, we apply graph convolutional net- works to establish connections between scattered comment sentences and learn represen- tations for both labeled training data and unlabeled test data by propagating label impact through the graph convolution. To assess the performance of DebtSniffer, we conducted experiments over 4,961 R comments from 503 open source projects which were typically categorized into 12 TD classes and four Java sources: source code comments, commit messages, pull requests, and issue tracking systems. The experimental results show that DebtSniffer accurately identifies SATD, outper- forming the current state-of-the-art approaches based on traditional word embedding tech- niques. Keywords: Self-Admitted Technical Debt, Pretrained BERT model, Graph Convolu- tional Network, Software Engineering ii Contents Abstract ii List of Figures v List of Tables vi List of Acronyms vii 1 Introduction 1 1.4 Organization of Thesis .1 General techniques for SATD detection .2 SATD detection in the R language .3 SATD detection in the Java language .1 Convolutional Neural Networks (CNN) .2 Graph Convolutional Networks (GCN) .3 Text embedding models.

24 iii Thesis advisor : Dr. Bui Thi Mai Anh Tran Thi Dinh 3.4 Transfer Learning for Code Tasks .2 Pretrained LM with CNN Model .3 Pretrained LM with GCN Model (DebtSniffer) .1 Dataset and baselines .2 Results and Discussion .1 Effectiveness of DebtSniffer on R dataset .2 Effectiveness of DebtSniffer on Java datasets .4 Threats to validity. 44 6 Conclusions and Future works 45 6. 46 References 51 Appendices 52 A Term Frequency - Inverse Document Frequency 52 B Pointwise Mutual Information 54 iv List of Figures 1.1 An example of Self-Admitted Technical Debt of the Defects type in R .2 Real-world scenarios where SATD has caused substantial problems .3 Example - SATD Type: Algorithm in Java .1 A basic convolutional neural network (CNN) architecture.1 The graph convolutional neural network.2 The graph convolutional neural network for text data.1 The SATD preprocessing workflow.1 The architecture of Pretrained LM with CNN model.

Pretrained Code- BERT is used as an example.2 The input representation of BERT model.1 The architecture of Pretrained LM with GCN model.2 Schematic of GCN model.1 Comment length distribution in R dataset.2 SATD length distribution in Java dataset.1 Influence of the number of GC layers in SATD detection for R packages. The baseline is equal to zero number of GC layers.2 Influence of the number of GC layers in SATD detection for Code com- ment source in Java. The baseline is equal to zero number of GC layers. 43 v List of Tables 1.1 Taxonomy TD definitions, based on Codabux et al [5] .2 Types of SATD with Examples .1 Statistics of the dataset.2 Number of different types of SATD .1 Comparison Results in R dataset (%) .2 Code comment dataset.3 Pull request dataset.4 Commit message dataset.6 Influence of the number of GC layers on average F1-score of R language dataset and Java Code comment data.

42 vi List of Acronyms CNN Convolutional Neural Network. GCN Graph Convolutional Network. LM Language Models. NLP Natural Language Processing.

OOP Object Oriented Programming. PMI Pointwise Mutual Information. PPMI Positive Pointwise Mutual Information. RNN Recurrent Neural Networks.

SATD Self-Admitted Technical Debt. SOTA State-Of-The-Art. SVM Support Vector Machines. TD Technical Debt.

TF-IDF Term Frequency – Inverse Document Frequency. vii Chapter 1 Introduction SATD refers to code artifacts within a software project where developers explicitly ac- knowledge the presence of suboptimal or problematic code but do not immediately ad- dress it. SATD can manifest as code comments, such as ”// TODO” or ”// FIXME,” and typically reflects issues related to design flaws, code smells, or deferred maintenance. The identification of SATD instances is crucial for several reasons.

It allows development teams to prioritize technical debt repayment, maintain code quality, and reduce the risk of project delays and increased maintenance costs.1 Problem Statement In the dynamic realm of software development, a common challenge that developers fre- quently encounter is the inexorable march of time. The pressures of deadlines and project constraints often force them to make expedient decisions and adopt shortcuts to expedite the development process. However, while these shortcuts may offer immediate relief, they can potentially sow the seeds of long-term consequences [30]. These expedient measures, taken in the heat of project development, can inadvertently give rise to a myriad of issues.

One of the foremost concerns is the inadvertent creation of low-quality code. These hasty coding practices, often driven by the urgency of project timelines, may result in code that lacks the robustness, efficiency, and maintainability that are the hallmarks of high-quality software. Consequently, such code can become a source of frustration for developers and may hinder the overall progress of the project. The concept of Technical Debt (TD) was introduced by Cunningham [6], referring to the phenomenon of “not-quite-right code” that represents an incomplete, temporary, or sub-optimal solution.

In the pursuit of short-term advantages, incurring debts, over the 1 Thesis advisor : Dr. Bui Thi Mai Anh Tran Thi Dinh long term, must be repaid at an increasing cost [30]. Self-Admitted Technical Debt (SATD) represents a particular form of TD where devel- opers leave comments within the source code to acknowledge sections that are not fully completed or optimized, indicating the need for further refinement or additional atten- tion [17].1: An example of Self-Admitted Technical Debt of the Defects type in R Figure 1.1 is an example of the SATD categorized into “Defect”. In this example, the comment explicitly mentions the function name, ’validate input’, and the variable ’threshold’, indicating that there is an issue related to the initialization of the variable.

However, it suggests deferring the resolution of this defect, which is a characteristic of the ”Defects” type of SATD. Detecting and effectively dealing with SATD issues presents a multifaceted challenge within the realm of software development. One of the primary complexities lies in the fact that SATD concerns often fly under the radar, remaining obscure and known to only a select few developers. The inherent intricacy of SATD identification and management is compounded by the urgency of the matter.

Failing to address these debts in a timely and efficient manner can lead to a cascading effect of adverse consequences. These repercussions reverberate through various facets of software quality, making it imperative to allocate the requisite time and resources for resolution. In essence, the proactive detection and management of SATD issues are critical com- ponents in the continuous pursuit of software quality enhancement. The intricacies in- volved in this process necessitate a thorough understanding of the various SATD types, as well as the adoption of effective strategies for their detection and subsequent mitiga- tion.

By doing so, software development teams can ensure that their projects remain on a trajectory towards improved reliability, maintainability, and overall excellence. While Self-Admitted Technical Debt (SATD) may not lead to traditional ”disasters” in the sense of natural disasters, it can have significant negative impacts on software projects, 2 Thesis advisor : Dr. Bui Thi Mai Anh Tran Thi Dinh organizations, and even individuals. SATD can lead to software failures, causing applica- tions to crash or malfunction.

For instance, in 2012, Knight Capital Group lost 440 million dolars in under an hour due to a trading algorithm error caused by an undetected software bug, which can be considered a financial disaster.2: Real-world scenarios where SATD has caused substantial problems Technical debt often includes poor security practices. Unresolved security issues in software can lead to data breaches, exposing sensitive information. The Equifax data breach in 2017, affecting 147 million people, was partly attributed to unpatched software vulnerabilities. As a multi-paradigm programming language, R is being used more and more in ap- plications related to data science and statistics [33].

Despite the fact that the R end-user programming community has been growing, the bulk of contributors are statisticians and scientists rather than software engineers. Indeed, prior research has indicated that few R-users are familiar with the nuances of the programming language and that they do not view themselves as developers [26]. While there are several studies dealing with SATD in programming languages such as Java [30], little attention has been paid to the detection of technical debt in the R language. We hypothesize that the detection of SATD in R pack- ages is more difficult than that in other languages due to the mixing of several program- ming paradigms including dynamically typing.

In the context of Java, which is widely used in various software projects, SATD detection becomes particularly relevant. SATD in Java refers to code segments where developers have knowingly introduced suboptimal solutions, which are often documented as comments within the code.Java codebases are typically large and complex, making it challenging to manually identify SATD.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ

Câu hỏi thường gặp

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" nghiên cứu về vấn đề gì?

Luận án ứng dụng học sâu và BERT embedding phát hiện nợ kỹ thuật trong mã nguồn R và Java. Sử dụng Graph Convolutional Networks đạt hiệu quả vượt trội.

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" được bảo vệ tại trường nào?

Luận án này được bảo vệ tại Hanoi University of Science and Technology. Năm bảo vệ: 2023.

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" thuộc chuyên ngành gì?

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" thuộc chuyên ngành Software Engineering. Danh mục: Khoa Học Máy Tính.

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" có bao nhiêu trang?

Luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" có 64 trang. Bạn có thể xem trước một phần tài liệu ngay trên trang web trước khi tải về.

Cách tải luận án "Phát hiện nợ kỹ thuật tự thừa nhận bằng học sâu và embedding văn bản" về máy như thế nào?

Để tải luận án về máy, bạn nhấn nút "Tải xuống ngay" trên trang này, sau đó hoàn tất thanh toán phí lưu trữ. File sẽ được tải xuống ngay sau khi thanh toán thành công. Hỗ trợ qua Zalo: 0559 297 239.

Luận án liên quan

Chia sẻ tài liệu: Facebook Twitter