Growth/Personalized first day/Structured tasks/Copyedit/hu

Ez az oldal egy "copyedit" strukturált feladattal kapcsolatos munkát ír le, amely a strukturált feladat egyik típusa, amit a Növekedési csapat a kezdők kezdőlapján keresztül ajánlhat fel. Ez az oldal tartalmazza a főbb eszközöket, terveket, nyitott kérdéseket és döntéseket. Az előrehaladásról szóló legtöbb apró frissítés az általános Növekedési csapat frissítések oldalára kerül, néhány nagyobb vagy részletes frissítés pedig ide.



Jelenlegi állapot

 * 2021-07-19: Projektoldal létrehozása és a háttérkutatás megkezdése.
 * 2022-08-12: kezdeti kutatási eredmények hozzáadása.
 * Next: teljes kézi értékelés.

Összefoglaló
A Struktúrált feladatok célja, hogy a szerkesztési feladatokat lépésről lépésre olyan munkafolyamatokra bontja, melyek értelmesek a kezdők számára és mobil eszközökön is. A növekedési csapat úgy véli, hogy az újfajta szerkesztési munkafolyamatok bevezetése lehetővé teszi, hogy több új szerkesztő vegyen részt a Wikipédia szerkesztésében, akik közül néhányan megtanulnak majd jelentősebb szerkesztéseket végezni és bekapcsolódni a közösségi életbe. Miután megvitattuk a strukturált feladatok ötletét a közösségekkel, úgy döntöttünk, hogy megépítjük az első strukturált feladatot: "hivatkozás hozzáadása".

Már az első feladat megépítése közben is gondolkodtunk azon, hogy milyenek lehetnek a későbbi strukturált feladatok; azt szeretnénk, ha a kezdők többféle feladattípus közül választhatnának, hogy megtalálják azokat, melyeket szívesen csinálnak, és melyek nehézségét növelni tudják, ahogy egyre többet tanulnak. A második feladat, amin dolgozni kezdtünk, a "kép hozzáadása" volt. De a strukturált feladatok ötletéről folytatott kezdeti közösségi megbeszéléseink során a közösségek által leginkább kívánt feladattípus a copyediting körüli feladat volt -- valami, ami a helyesírással, nyelvtannal, írásjelekkel stb. kapcsolatos. Itt vannak a kezdeti feljegyzéseink, melyeket ennek vizsgálatából és a közösségi tagokkal folytatott megbeszélésekből készítettünk.

Tudjuk, hogy sok nyitott kérdés van azzal kapcsolatban, hogy ez hogyan működne, sok lehetséges ok, amiért nem sikerülhet jól: milyen copyeditingről beszélünk? Csak a helyesírásról, vagy valami többről? Van valamilyen algoritmus, ami minden nyelven jól működik? E kérdések kapcsán reméljük, hogy sok közösségi tagtól halljuk a véleményét, és folyamatos vitát folytatunk, miközben eldöntjük, hogyan tovább.



Háttérkutatás


Célok

 * Szeretnénk megérteni, hogy milyen típusú copyediting feladatokat lehetne algoritmusokkal segíteni.
 * Olyan algoritmust szeretnénk használni, amely különböző nyelvű szócikkek egy-egy típusú copyediting feladataira tud javaslatot tenni.
 * Szeretnénk tudni, hogy az algoritmus mennyire jól működik (pl. tudni, hogy a meglévő modellek közül melyik modell működik a legjobban).



Irodalmi áttekintés

 * Milyen különböző részfeladatok számítanak copyeditingnek?
 * A copyediting különböző szempontjainak azonosítása az egész spektrumban: a helyesírási/gépelési hibáktól a nyelvtanon át a stílusig/hangnemig
 * Milyen megközelítések léteznek a Wikipédiában a copyeditingre vonatkozóan?
 * Communities such as Guild of Copy Editors or the Typo Team.
 * Maintenance-templates such as the copyedit-template.
 * Tools such as the moss-tool to identify typos (also JarBot in Arabic Wikipedia)
 * What are existing public commonly-used tools for spell-checking/grammar etc such as hunspell, LanguageTool, or Grammarly?
 * We know that our communities prefer transparent algorithms, so it is easy for everyone to understand where suggestions come from.
 * What are available models from research in NLP and ML, for example for the task of Grammatical Error Correction.

Defining the task

 * Which aspect of copyediting will we model for the structured task?
 * Type of task: spelling, grammar, tone/style
 * For example: What can browser-spellcheckers do?
 * Granularity -- highlighting task on the level of: article, section, paragraph, sentence, word, sub-word
 * Depends on the task
 * Surface known items (e.g. from templates) or predict new ones?
 * Only suggest that improvement is needed, or suggest how to improve?
 * Suggesting improvement is easier for simpler tasks.
 * Simply highlighting that work is needed is easier for more complex tasks (e.g. style or tone)
 * Language support: how many languages do we aim to support?
 * Include Spanish and Portuguese as target languages alongside Arabic, Vietnamese, Bengali, Czech.
 * We ideally want to cover all languages, but will realistically need to evaluate solutions based on the depth of their language coverage.

Building a dataset for evaluation

 * Generate a test-dataset (ideally in multiple languages) for the task for which we can compare different algorithms. This can be achieved in different ways
 * An existing benchmark dataset, such as CoNLL-2014 Shared Task on Grammatical Error Correction, or approaches for corpora generation (from Wikipedia)
 * Generate our own dataset from revision history using templates (copyedit) or edit summaries (typo)
 * Manual evaluation of output of models run on a set of sentences from Wikipedia.

Research results
A full summary of Research is available on MetaWiki: Research:Copyediting as a structured task.

Literature Review
Background research and literature review are captured in Copyediting_as_a structured_task/Literature_Review

Main findings:
 * Simple spell- and grammar checkers such as LanguageTool or Enchant are most suitable for supporting copyediting across many languages and are open/free.
 * Some adaptation to the context of Wikipedia and structured task will be required in order to decrease the sensitivity of the models; common approaches are to ignore everything in quotes or text that is linked.
 * The challenge will be to develop a ground-truth dataset for backtesting. Likely, some manual evaluation will be needed.
 * Long-term: Develop a model to highlight sentences that require editing (without necessarily suggesting a correction) based on copyediting templates. This could provide a set of more challenging copyediting tasks compared to spellchecking.

LanguageTool
We have identified LanguageTool as a candidate to surface possible copyedits in articles because: The copyedits from LanguageTool go beyond spellchecking of single words using a dictionary but also capture grammatical errors and style.
 * It is open, is being actively developed, and supports 30+ languages
 * The rule-based approach has the advantage that errors come with an explanation why they were highlighted and not just due to a high score from a ML-model. In addition, it provides functionality for adding custom rules by the community https://community.languagetool.org/

We can get a very rough approximation of how well LanguageTool works for detecting copyedits in Wikipedia articles by comparing the amount of errors in featured articles with those in articles containing a copyedit-template. We find that the performance is reasonable in many languages after applying a post-processing step in which we filter some of the errors from LanguageTool (e.g. those overlapping with links or bold text).

We also compared the performance of simple spellcheckers which are available for more languages than supported by LanguageTool. They can also surface many meaningful errors for copyediting but suffer from a much higher rate of false positives. This can be partially addressed by post-processing steps to filter the errors. Another disadvantage is that spellcheckers perform considerably worse than LanguageTool in suggesting the correct improvement for the error.

One potentially substantial improvement could be to develop a model which assigns a confidence score to the errors surfaced by LanguageTool/spellchecker. This would allow us to prioritize those errors for the structured task copyediting task for which we have a high confidence that they are true copyedits. Some initial thoughts are in T299245.

Read here for more details: Research:Copyediting_as_a_structured_task/LanguageTool

Evaluation
We have completed an initial evaluation of sample copy edits utilizing LanguageTool and Hunspell. To compare how each tool worked for Wikipedia articles, our research team created a list of sample copy edits for 5 languages: Arabic, Bengali, Czech, Spanish (Growth pilot wikis) and English (as a test-case for debugging).

Methodology

 * Started with a subset of the 10,000 first articles from the HTML dumps using the 20220801-snapshot of the respective wiki (arwiki, bnwiki, cswiki, eswiki, and enwiki).
 * Extracted the plain text from the HTML-version of the article (trying to remove any tables, images, etc).
 * Ran LanguageTool and the Hunspell-spellchecker on the plain text.
 * Applied a series of filters to decrease the number of false positives (further details available in this Phabricator task).
 * Selected the first 100 articles for which there is at least one error left after the filtering. We only consider articles that have not been edited in at least 1 year. For each article, only one error was selected randomly; thus for each language we had 100 errors from 100 different articles.
 * Growth Ambassadors evaluated the samples in their first language, and decided if the suggested edit was accurate, incorrect, or if they were unsure, or if was unclear (the suggestion wasn't clearly right or wrong).

Results

 * LanguageTool currently supports ~30 languages, so only two of the Growth team pilot languages are supported: Spanish and Arabic. LanguageTool's copy edits were judged at 50% accurate or higher across all three wikis. Suggestions were accurate for 51% of English suggestions, 50% for Spanish, and 57% for Arabic. Copy edit research - Hunspell.png
 * The precision for Hunspell copy edits were judged less than 40% accurate across all wikis. Suggestions were accurate for 39% of English suggestions, 11% for Spanish, and 32% for Arabic, 16% for Czech, and 0% for Bengali.

Next Steps
Consider how to better handle highly inflected and agglutinated languages, which likely won't benefit much from standard spell-checking approaches.

Further improving LanguageTool filters to decrease the number of false positives and thus further improve accuracy.

For languages not supported by an open source copy editing tool, we will consider a rule-based approach, i.e. only looking for very specific errors which could be based on a list of common misspellings. We will set up an additional test to estimate the accuracy and coverage of this type of approach.