===Brief summary
The Wikimedia Foundation runs a service called [[https://www.mediawiki.org/wiki/ORES|ORES]] that hosts machine learning models that can make predictions about various forms of content on Wikipedia -- e.g., the likelihood that a given edit is vandalism or how the quality of a Wikipedia article. One of the newer models is one that can label Wikipedia articles with a set of pre-defined topics -- e.g., the English Wikipedia article for sci-fi author [[https://en.wikipedia.org/wiki/N._K._Jemisin|N. K. Jemisin]] is [[https://ores.wmflabs.org/v3/scores/enwiki/?models=articletopic&revids=935784560|predicted]] to be part of the following topics:
* `Culture.Biography.Biography*` (the article is a biography)
* `Culture.Biography.Women` (the biography is about a woman)
* `Culture.Literature` (she's an author).
The challenge is that this model only works for English Wikipedia, and while efforts are being made to expand it to [[https://en.wikipedia.org/wiki/List_of_Wikipedias#Detailed_list|more languages]], this is difficult. To overcome this challenge, a separate model was developed to make predictions based not on articles but on [[https://en.wikipedia.org/wiki/Wikidata|Wikidata]] (loosely a database of facts about concepts that have Wikipedia articles -- e.g., [[https://www.wikidata.org/wiki/Q2427544|the Wikidata item]] for N.K. Jemisin). This model can be used to generate topic predictions for Wikipedia articles in any language based on its associated Wikidata item (yay!). We have developed an [[https://tools.wmflabs.org/wiki-topic/|experimental API]] but this project will rewrite the code for this model so that it works in the production-level ORES environment. While this is primarily an engineering task, there will also be opportunities for machine learning and data science as desired.
===Skills required
* Python coding -- the code for this API will be in Python so at least some prior experience will be necessary.
* [[https://wikitech.wikimedia.org/wiki/PAWS|Jupyter Notebooks]]: this will likely only be used for this initial application but is also a very useful medium for sharing code and analyses. If you have prior experience with Jupyter notebooks, great! If not, we can help you learn it.
* Basic understanding of [[https://en.wikipedia.org/wiki/Supervised_learning|machine learning]]. We can incorporate more or less machine learning work in this project as needed though.
===Possible mentor(s)
@Isaac @Halfak
===Microtasks
Each applicant will submit a Jupyter notebook that demonstrates an ability to work with the Python code and features that comprise the topic classification model as well as the ability to do some basic model evaluation. Note that unlikely many Outreachy tasks, we are not asking each applicant to claim a task but instead to all work independently on the same task. Feel free to help each other out though! This task is described here: T246013
===Further Reading
Research paper with more background on topic classification models at Wikimedia: https://dl.acm.org/doi/10.1145/3274290