Proceedings of ISP RAS

Discovering Near Duplicate Text in Software Documentation

L.D. Kanteev (SPbU, Saint Petersburg, Russia)
Yu.O. Kostyukov (SPbU, Saint Petersburg, Russia)
D.V. Luciv (SPbU, Saint Petersburg, Russia)
D.V. Koznov (SPbU, Saint Petersburg, Russia)
M.N. Smirnov (SPbU, Saint Petersburg, Russia)


Development of software documentation often involves copy-pasting, which produces a lot of duplicate text. Such duplicates make it difficult and expensive documentation maintenance, especially in case of long life cycle of software and its documentation. The situation is further complicated by duplicate information frequently being near duplicate, i.e., the same information may be presented many times with different levels of detail, in various contexts, etc. There are a number approaches to deal with duplicates in software documentation. But most of them use software clone detection technique, that is make difficult to provide efficient near duplicate detection: source code algorithms ignore a document structure, and they produce a lot of false positives.  In this paper, we present an algorithm aiming to detect near duplicates in software documentation using natural language processing technique called as N-gramm model. The algorithm has a considerable limitation: it only detects single sentences as near duplicates. But it is very simple and may be easily improved in future. It is implemented with use of Natural Language Toolkit (NLTK), and. Evaluation results are presented for five real life documents from various industrial projects. Manual analysis shows 39 % of false positives in automatic detected duplicates.  The algorithm demonstrates reasonable performance: documents of 0,8–3 Mb are processed 5–22 min.  


software documentation, near duplicates, natural language processing, N-gram model


Proceedings of the Institute for System Programming, vol. 29, issue 4, 2017, pp. 303-314

ISSN 2220-6426 (Online), ISSN 2079-8156 (Print).

DOI: 10.15514/ISPRAS-2017-29(4)-21

Full text of the paper in pdf Back to the contents of the volume