marK is a machine learning dataset annotation tool being developed that will help users annotate multiple types of data for training in supervised classification problems. The objective of the project is to add text annotation support and refactor the codebase to separate image annotation logic from the core of marK, making its codebase more extensible and easy to add new annotation types.
Mentor: Caio Jordão Carvalho
- Refactor marK codebase, separating the image annotation logic from the core
- Status: Done
- Text Annotation support
- Status: Done (still need to be merged)
Community Bonding Period
I took advantage of this phrase to study how tools of text annotation work to later apply the positive points that I found and correct, and improve, the ones that I didn't like. Text annotation has a bunch of fields, each one meant to a different objective/niche: phrase chunking, named entity recognition (NER), named entity linking (NEL) and so the list goes. For more explanation about this please see my blog post about text annotation.
I also deepened my knowledge, studying coding techniques, best practices, and how to make code more efficient and improve readability.
community bonding introduction
Coding Period - First evaluation
Merge Request: !2
During this coding period, I was focused on refactoring the code and fix bugs. The main branch, which was fairly behind, received the latest changes. These changes include OOP logic that is used in many parts of the code, such as saving, reading, and general handling of different types of annotation. Another big change worth mentioning is that the core was separated from the image annotation, now it is used a different approach where there is one container that switches between painters, classes that load, and annotate, the data for each type of annotation.
For more details about what changed and the current structure of marK, see the posts of weeks 1, 2, 3, 4, and 5.
Coding Period - Second evaluation
This phrase was quite challenging as I have never done something like this before, this has made me learn a lot. The initial support to text annotation, although there are some bugs needed to be fixed, is already working and it is possible to annotate text documents to, for example, Named Entity Recognition and Phrase Chunking annotation. Mouse click and drag, currently, are also supported for both, text and image annotation, making the user experience better.
Also, it is worth mentioning a change in the original plan, I was planning to use KTextEdit but to focus on the logic in this period, currently, the code is using QTextEdit.
Blog post: week 6, 7 and 8
example of Named Entity Recognition:
I also made a short video of the initial text annotation support:
Coding Period - Third evaluation
Merge Request: !4
This period was focused on the review and improvement of the code, bugs fixes related to the new painters structure (see week 4 and 5), use KDE Frameworks 5 and I also added some functionalities like support for double click on the TextPainter.
For more details about what changed/improved, see the posts of weeks 9, 10, 11 and 12.
Double click demonstration:
I also made another short video presenting the functionalities that marK have near the end of this GSoC:
You can see my proposal here. For posts of GSoC 2020, check my blog.
Name: Jean Lima Andrade
Invent id: jyeno
IRC Nick: jyeno
Telegram Nick: jyeno