Artificial Intelligence test
This repository has several tests that comply with the Computer Vision, Natural Language Processing and Machine Learning expertise. Each test has its own set of files, parameters, instructions and strategies to be solved. Therefore, choose them wisely.
Tests
The following tests are given:
- (πͺ) Document Cleanup (Computer Vision)
- (π) Fraud Detection (Machine Learning)
- (πͺ) Where's Wally? (Computer Vision)
- (π) SMS Spam Detection (Natural Language Processing)
Where the level of difficulty can be (roughly) defined such as:
- π : It is regular challenge that should be fine for most of AI enthusiasts.
- πͺ : Increase the level of complexity and requires more experience on the AI field
- π : It is a good challenge for AI specialists that are both curious and have great familiriaty in the field
The instructions to each problem are described in separated README files in each folder.
Instructions
Please, develop a script or computer program using the programming language of your choice to solve at least two of these tests, where the candidate is free to choose any of them. We are aware of the difficulty associated with each problem, but all creativeness, reasoning strategy, details on code documentation, code structure and accuracy will be used to evaluate the candidate performance. So make sure the presented code reflects your knowledge as much as possible!
We expect that a solution could be achieved within a reasonable time-period, considering a few days, so be free to use the time as best as possible. We understand that you may have a tight schedule, therefore do not hesitate to contact us for any further request π.
Datasets
All the datasets are located into a single compressed file in this link.
Note that the file is quite big (~1 Gb), but we believe that a few minutes could deal with it
Upload code solutions
Fork this project and create a branch with your first + last name
on it. For instance, a branch naming "Antonio Silva" will define that the candidate with the same name is uploading the code with the solution for the chosen tests. Please, give the scripts and code in separate folders (with the same name as the provided file folders) to facilitate our analysis.
Also, we expect that the candidate can explain the procedure and strategy adopted by using a lot of commentaries or even a separated README file. This description part is very important to facilitates our understanding of your solution! Remember that the first technical contact with the candidate is by these coding tests. Even though we reinforces the importance of the documentation and code explanation, we are very flexible to allow the freedom to choose what will be the type of communication (e.g. README files, code commentaries, etc).
Another good tip to follow is the general concept of software engineering that is also evaluated in this test. It is expected that the candidate has a solid knowledge of topics such as Test-Driven Development (TDD), and clean code paradigms in general. In summary, it is a good idea to pay attention to both artificial inteligence and software engineers skills.
After all the analysis and coding being done, create a pull request (PR) in this repository.
Summary
As an extra help, use the following checklist to verify if everything is ok:
- Downloaded all the test files using the link.
- Create a suitable solution using scripts, open-source libraries, own-code solutions, etc. Consider we follow your instructions to run your code and look the outcome.
- Make sure that the output for the choosen tests are in accordance with the required output explained in the README.md file for each challenge.
- Choose at least two tests to be solved. If the candidate is thrilled to solve them all it is ok too π.
- Make commentaries or auxiliary documentation files (e.g. README files) to assist the interpretation of your solutions. Remember: we love to read your comments and explanations! π
- Save the resulting code, scripts, documentatiion, etc on separated folders with complies with the same name as the input dataset (just to help us π)
- Prepare the commits on the separated branch using the naming standard:
first + last name
. - Submit the PR! (fingers crossed π)