Content translation/Machine Translation/MT Clients/nl
Machinevertalingsdiensten zijn toegankelijk met behulp van clientmodules in Content Translation. We hebben Apertium- en Yandex-clients die al in de code zijn geschreven. Het is mogelijk om een willekeurig aantal van dergelijke MT-serviceclients toe te voegen en toe te wijzen aan talencombinaties. In deze documentatie wordt de architectuur van de Machine-client uitgelegd.
Technische vereisten
Een nieuwe MT-client kan een lokaal gehost machinevertaalsysteem zijn of een extern machinevertaalsysteem dat toegankelijk is via API. API-gebaseerde services worden aanbevolen, omdat dit het mogelijk maakt om het als een service te isoleren. Als de client een vrije licentie heeft en beter is verpakt voor Linux-distributies, kunnen we overwegen om deze in het Wikimedia-cluster te hosten. Bijvoorbeeld: Apertium wordt gehost in wmflabs. Aan de andere kant, Yandex wordt niet gehost door Wikimedia. Zowel Apertium als Yandex zijn toegankelijk via de web-API's.
Vertaal API
Een machinevertalings-API neemt de brontaal, de doeltaal, het broncontent en de uitvoer van de vertaalde inhoud.
- Als de API niet openbaar is, kan het een authenticatie token accepteren, meestal een sleutel.
- Het uitvoerformaat kan JSON zijn om het gemakkelijk te houden.
- De API moet POST accepteren.
- API mag geen identificeerbare informatie van de gebruiker vereisen, zoals de gebruikersnaam. CXServer verstrekt deze niet aan MT-client.
- De API moet in staat zijn om een redelijk aantal verzoeken per minuut te accepteren.
- De API moet een redelijke hoeveelheid inhoud per verzoek accepteren.
- Het wordt aanbevolen om een dashboard te hebben om het gebruik van API te analyseren, inclusief verzoeken per dag/week/maand en het aantal vertaalde tekens per dag/week/maand
De API moet openbaar worden gedocumenteerd, met inbegrip van de foutcodes.
Richtlijnen voor performance
Inhoudsvertaling is nog steeds een bètafunctie, die alleen beschikbaar is voor gebruikers die zich aanmelden. Het huidige gebruikspatroon is dus mogelijk niet de juiste beoordeling voor de toekomst. Bovendien, wanneer we de machinevertaling uitbreiden naar meer talen, zullen er meer gebruikers en verzoeken zijn. Afhankelijk van ons huidige gebruik, worden hieronder enkele basislijnen gegeven. Merk op dat dit nooit de definitieve beoordeling zal zijn. API's moeten worden ontworpen om meer dan dit te accepteren.
- Minimaal 10.000 verzoeken per dag
- Minimaal 10 miljoen tekens per dag
- Minimaal 5000 tekens per verzoek
Invoerformaat
De inhoud die van CX moet worden vertaald is HTML-geformatteerd. HTML vertalen terwijl het markering/opmaak behoudt is een uitdaging, maar sommige MT-engines zijn daartoe in staat (voorbeeld: Yandex). Apertium behandelt geen HTML-opmaak. Afhankelijk van de mogelijkheid kan CX een platte-tekstversie of HTML van de inhoud sturen.
Kwaliteit van de vertaling
We evalueren de kwaliteit van MT door feedback te vragen van Wikipedia-medewerkers uit de taal in de context. CX gebruikt MT als een eerste vertalingsschema en moedigt vertalers aan om deze te verbeteren. Daarom, tenzij de kwaliteit erg slecht is, aan de hand van de feedback we krijgen, kunnen we het gebruiken.
Ontwikkelen van een nieuwe MT-client Module
De beste manier om dit te leren, is door naar een bestaande clientmodule zoals Yandex of Apertium te kijken. De clientmodules zijn aanwezig in de map cxserver's lib/mt. Laten we onze klant noemen als BabelFish MT-client. Maak een bestand met de naam BabelFish.js in de map lib/mt.
const MTClient = require( './MTClient.js' );
<!--T:33-->
// Class constructor
class BabelFish extends MTClient {
/**
* Inhoud vertalen met BabelFish
*
* @param {string} sourceLang Brontaal code
* @param {string} targetLang Doeltaal code
* @param {string} content Brontaal inhoud
* @return {Promise} Vertaalde tekst
*/
translate( sourceLang, targetLang, content ) {
// Voeg uw API-aanvraag toe aan de dienst. Geef een object Promise terug.
}
}
module.exports = BabelFish;
Als uw BabelFish-service niet in staat is om HTML te vertalen door alle markeringen in de juiste positie in de vertaling te houden, moet u in plaats van translate
de methode translateText
schrijven in de bovenstaande code. Zie hier een voorbeeld van Apertium.js. Yandex.js is een voorbeeld voor MT-client die zowel html- als tekstinhoud kan verwerken.
U moet een record in lib/mt/index.js toevoegen voor uw nieuwe cliënt.
Om een taalpaar te koppelen om deze client te gebruiken, maak een config-bestand in config-map. U kunt de uitgaande configuratiebestanden als voorbeeld gebruiken. Zet deze MT-engine in de cxserver. Hier volgen ook de bestaande records voor voorbeelden.
Start de cxserver opnieuw en test de cliënt. Misschien wilt u een aantal bestaande init-tests voor Apertium lezen om uw eigen tests te schrijven.
Machinevertaling clients
De volgende clients ondersteunen Content Translation voor verschillende talen:
- Apertium (ondersteunde talen)
- OpusMT (ondersteunde talen)
- LingoCloud (ondersteunde talen)
- Google Translate (ondersteunde talen)
- Yandex (ondersteunde talen)
- Youdao (ondersteunde talen)
- Elia (eerder bekend als Matxin) (ondersteunde talen)
- MinT (ondersteunde talen)