Deprecated: Return type of ffDataHolder::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffDataHolder.php on line 131

Deprecated: Return type of ffDataHolder::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffDataHolder.php on line 134

Deprecated: Return type of ffDataHolder::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffDataHolder.php on line 142

Deprecated: Return type of ffDataHolder::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffDataHolder.php on line 145

Deprecated: Creation of dynamic property ffPluginIdentificator::$_WPLayer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffPluginIdentificator.php on line 284

Deprecated: Return type of ffCollection::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 224

Deprecated: Return type of ffCollection::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 233

Deprecated: Return type of ffCollection::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 267

Deprecated: Return type of ffCollection::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 259

Deprecated: Return type of ffCollection::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 245

Deprecated: Return type of ffCollection::offsetExists($offset) should either be compatible with ArrayAccess::offsetExists(mixed $offset): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 282

Deprecated: Return type of ffCollection::offsetGet($offset) should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 285

Deprecated: Return type of ffCollection::offsetSet($offset, $value) should either be compatible with ArrayAccess::offsetSet(mixed $offset, mixed $value): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 292

Deprecated: Return type of ffCollection::offsetUnset($offset) should either be compatible with ArrayAccess::offsetUnset(mixed $offset): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 301

Deprecated: Return type of ffCollection::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php on line 209

Deprecated: Optional parameter $filterOrder declared before required parameter $postID is implicitly treated as a required parameter in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/ark-core/builder/elements/Portfolio/class.ffElPortfolio.php on line 119

Deprecated: Creation of dynamic property ffFrameworkScriptLoader::$_WPLayer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/assetsIncluding/class.ffFrameworkScriptLoader.php on line 574

Deprecated: Creation of dynamic property ffFrameworkScriptLoader::$_WPLayer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/assetsIncluding/class.ffFrameworkScriptLoader.php on line 574

Deprecated: Optional parameter $atts declared before required parameter $shortcodeName is implicitly treated as a required parameter in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/shortcodes/class.ffShortcodeObjectBasic.php on line 50

Deprecated: Optional parameter $content declared before required parameter $shortcodeName is implicitly treated as a required parameter in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/shortcodes/class.ffShortcodeObjectBasic.php on line 50

Deprecated: Creation of dynamic property ffHttp::$_WPLayer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/fileSystem/class.ffHttp.php on line 100

Deprecated: Creation of dynamic property ffWPUpgrader::$_dataStorage is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/updater/class.ffWPUpgrader.php on line 482

Deprecated: Creation of dynamic property ffAdminScreenViewFactory::$_scriptEnqueuer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/adminScreens/factories/class.ffAdminScreenViewFactory.php on line 118

Deprecated: Creation of dynamic property ffAdminScreenViewFactory::$_styleEnqueuer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/adminScreens/factories/class.ffAdminScreenViewFactory.php on line 103

Deprecated: Creation of dynamic property ffAdminScreenManager::$_adminScreenAjaxFactory is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/adminScreens/class.ffAdminScreenManager.php on line 238

Deprecated: Creation of dynamic property ffLessWPOptionsManager::$_LessWPOptions_Factory is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/assetsIncluding/lessWPOptions/class.ffLessWPOptionsManager.php on line 233

Deprecated: Creation of dynamic property ffThemeAssetsManager::$themeAssetsIncluder is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/themes/assetsIncluding/class.ffThemeAssetsManager.php on line 174

Deprecated: Optional parameter $name declared before required parameter $optionsStructureHelper is implicitly treated as a required parameter in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/dataHolders/class.ffOneStructure.php on line 47

Deprecated: Return type of ffOptionsQuery::current() should either be compatible with Iterator::current(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/walkers/class.ffOptionsQuery.php on line 850

Deprecated: Return type of ffOptionsQuery::next() should either be compatible with Iterator::next(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/walkers/class.ffOptionsQuery.php on line 835

Deprecated: Return type of ffOptionsQuery::key() should either be compatible with Iterator::key(): mixed, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/walkers/class.ffOptionsQuery.php on line 831

Deprecated: Return type of ffOptionsQuery::valid() should either be compatible with Iterator::valid(): bool, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/walkers/class.ffOptionsQuery.php on line 878

Deprecated: Return type of ffOptionsQuery::rewind() should either be compatible with Iterator::rewind(): void, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/options/walkers/class.ffOptionsQuery.php on line 841

Deprecated: Creation of dynamic property ffDataStorage_OptionsPostType::$_postLayer is deprecated in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/dataStorage/dataStorageOptionsPost/class.ffDataStorage_OptionsPostType.php on line 254

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831

Warning: Cannot modify header information - headers already sent by (output started at /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-content/plugins/fresh-framework/framework/core/class.ffCollection.php:7) in /var/www/vhosts/tenviesti.fi/httpdocs/wordpress/wp-includes/rest-api/class-wp-rest-server.php on line 1831
{"id":384,"date":"2019-03-21T21:26:31","date_gmt":"2019-03-21T21:26:31","guid":{"rendered":"http:\/\/tenviesti.fi\/wordpress\/?page_id=384"},"modified":"2019-10-30T09:30:01","modified_gmt":"2019-10-30T09:30:01","slug":"kaannosmuistin-toiminta","status":"publish","type":"page","link":"http:\/\/tenviesti.fi\/wordpress\/?page_id=384","title":{"rendered":"K\u00e4\u00e4nn\u00f6smuistin toiminta"},"content":{"rendered":"\n

K\u00e4\u00e4nn\u00f6smuistiohjelma tallentaa jo k\u00e4\u00e4nnetyt l\u00e4hdetekstit ja niit\u00e4 vastaavat kohdekieliset k\u00e4\u00e4nn\u00f6kset tietokantaan ja tuo siell\u00e4 olemassa olevat k\u00e4\u00e4nn\u00f6kset esiin vastaavan sis\u00e4lt\u00f6isi\u00e4 uusia dokumentteja k\u00e4\u00e4nnett\u00e4ess\u00e4. Nykyiset k\u00e4\u00e4nn\u00f6smuistit ovat useimmissa tapauksissa rakenteensa puolesta tekstikentist\u00e4 ja tietueista muodostuva tietokanta, johon tavallisesti sis\u00e4ltyy l\u00e4hde- ja kohdekielinen tekstisegmentti sek\u00e4 mahdollista lis\u00e4tietoa k\u00e4\u00e4nn\u00f6ksest\u00e4 (k\u00e4\u00e4nn\u00f6sajankohta, viimeisin k\u00e4ytt\u00f6ajankohta, alkuper\u00e4isen k\u00e4\u00e4nt\u00e4j\u00e4n nimi jne.). Etenkin automaattiseen ja konekieliseen k\u00e4\u00e4nt\u00e4miseen k\u00e4ytett\u00e4viss\u00e4 k\u00e4\u00e4nn\u00f6smuisteissa tukeudutaan my\u00f6s laajoihin toisiinsa kohdistettuihin referenssidokumentteihin.\n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6smuistiohjelman k\u00e4ytt\u00f6liittym\u00e4 on useimmiten itsen\u00e4inen sovellus, jossa varsinainen k\u00e4\u00e4nn\u00f6sty\u00f6 tapahtuu joko paikallisesti tai verkossa pilvipalveluna. J\u00e4lkimm\u00e4isess\u00e4 vaihtoehdossa usea k\u00e4\u00e4nt\u00e4j\u00e4 voi samanaikaisesti k\u00e4ytt\u00e4\u00e4 ja p\u00e4ivitt\u00e4\u00e4 samaa k\u00e4\u00e4nn\u00f6smuistia, mik\u00e4 lis\u00e4\u00e4 k\u00e4\u00e4nn\u00f6sty\u00f6n yhdenmukaisuutta. Ohjelma tarjoaa useimmiten my\u00f6s mahdollisuuden katsella k\u00e4\u00e4nnett\u00e4v\u00e4\u00e4 tiedostoa lopullisessa ilmiasussaan, mik\u00e4 edist\u00e4\u00e4 kontekstin ja kokonaisuuden ymm\u00e4rt\u00e4mist\u00e4. Joissakin tapauksissa k\u00e4\u00e4nn\u00f6smuisti voi olla my\u00f6s tekstink\u00e4sittely- tai taitto-ohjelman erillinen lis\u00e4osa, jossa k\u00e4\u00e4nn\u00f6smuistin avulla voidaan tehd\u00e4 k\u00e4\u00e4nn\u00f6st\u00e4 suoraan lopulliselta n\u00e4ytt\u00e4v\u00e4\u00e4n dokumenttiin. \n<\/p>\n\n\n\n

T\u00e4ss\u00e4 esityksess\u00e4 k\u00e4\u00e4nn\u00f6smuistin mallik\u00e4ytt\u00f6liittym\u00e4n\u00e4 on k\u00e4ytetty SDL Trados TagEditor \u2013ohjelmaa. Kyseinen ohjelmaversio on nykyisin jo hieman vanhentunut, mutta esitett\u00e4v\u00e4t esimerkit kuvaavat hyvin k\u00e4\u00e4nn\u00f6smuistiohjelman toimintaperiaatetta, joka on hyvin samantapainen ohjelmasta ja versiosta riippumatta.\n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6smuisteissa l\u00e4hdekieliset tekstit pilkotaan helpommin hallittaviksi kokonaisuuksiksi, joita kutsutaan segmenteiksi. L\u00e4hdekielinen virke tai lause tai n\u00e4it\u00e4 muistuttava yksikk\u00f6 (otsikko, luettelon rivi) ja sit\u00e4 vastaava k\u00e4\u00e4nn\u00f6s muodostavat yhden segmentin. Segmentointi voi joissakin tapauksissa tapahtua my\u00f6s virkett\u00e4 suuremmiksi tai rivi\u00e4 pienemmiksi yksik\u00f6iksi (tekstikappaleet, yksitt\u00e4iset sanat). \n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Kuvassa olevassa esimerkiss\u00e4 k\u00e4\u00e4nn\u00f6smuistiin on tallennettu yksi k\u00e4\u00e4nn\u00f6ssegmentti, jonka englanninkielisen\u00e4 l\u00e4hdekielisen\u00e4 tekstin\u00e4 on yksinkertainen lause This is a translation<\/em> ja sit\u00e4 vastaavana kohdekielisen\u00e4 k\u00e4\u00e4nn\u00f6ksen\u00e4 suomenkielinen lause T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s<\/em>.\n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6ssegmenttien lis\u00e4\u00e4minen k\u00e4\u00e4nn\u00f6smuistiin voi tapahtua erillisen\u00e4 tuontitoimintona. Useimmiten k\u00e4\u00e4nn\u00f6ssegmentit kuitenkin syntyv\u00e4t k\u00e4\u00e4nn\u00f6sty\u00f6n yhteydess\u00e4 siten, ett\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4 tekee ensimm\u00e4isell\u00e4 kerralla tarjolla olevaa l\u00e4hdekielist\u00e4 teksti\u00e4 vastaavan kohdekielisen k\u00e4\u00e4nn\u00f6ksen tallentaa k\u00e4\u00e4nn\u00f6ssegmentin muistiin hyv\u00e4ksym\u00e4ll\u00e4 sen.\n<\/p>\n\n\n\n

Seuraavassa tarkastellaan l\u00e4hemmin k\u00e4\u00e4nn\u00f6smuistiohjelman toimintaa ja k\u00e4ytt\u00e4ytymist\u00e4 erilaisissa tilanteissa. Vaikka k\u00e4\u00e4nn\u00f6smuisti useimmissa tapauksissa onkin hyvin k\u00e4yt\u00e4nn\u00f6llinen ty\u00f6kalu, jonka k\u00e4ytt\u00f6 auttaa yhdenmukaistamaan tekstin sis\u00e4lt\u00f6\u00e4 ja s\u00e4\u00e4st\u00e4\u00e4 aikaa ja kustannuksia, kun samojen tai l\u00e4hes samanlaisten k\u00e4\u00e4nn\u00f6sten tekeminen useita erillisi\u00e4 kertoja voidaan v\u00e4ltt\u00e4\u00e4, on my\u00f6s tilanteita, joissa k\u00e4\u00e4nn\u00f6smuistin yksioikoinen k\u00e4ytt\u00f6 voi johtaa virheellisiin tai ep\u00e4toivottuihin tuloksiin, jos muistin asetukset ovat puutteelliset ja olemassa olevia k\u00e4\u00e4nn\u00f6ksi\u00e4 k\u00e4ytet\u00e4\u00e4n sellaisinaan ilman ihmisen tekem\u00e4\u00e4 tarkistusty\u00f6t\u00e4.\n<\/p>\n\n\n\n


K\u00e4\u00e4nn\u00f6ksen tekeminen ensimm\u00e4isell\u00e4 kerralla<\/strong>\n<\/p>\n\n\n\n

K\u00e4\u00e4nt\u00e4j\u00e4n tehdess\u00e4 ty\u00f6t\u00e4\u00e4n k\u00e4\u00e4nn\u00f6smuistin avulla h\u00e4n kohtaa sek\u00e4 uusia tekstej\u00e4 \u2013 siis sellaisia, joita ei viel\u00e4 ole tallennettu k\u00e4\u00e4nn\u00f6smuistiin \u2013 ett\u00e4 k\u00e4\u00e4nn\u00f6smuistiin jo tallennettuja tekstej\u00e4. Kun k\u00e4\u00e4nn\u00f6smuistiin on tallennettu runsaasti aikaisempia k\u00e4\u00e4nn\u00f6ksi\u00e4, eteen voi tulla my\u00f6s tilanteita, joissa osa uudesta k\u00e4\u00e4nnett\u00e4v\u00e4st\u00e4 tekstist\u00e4 on jo tallennettu k\u00e4\u00e4nn\u00f6smuistiin. \n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6smuistissa valmiina olevia k\u00e4\u00e4nn\u00f6ssegmenttej\u00e4 kutsutaan t\u00e4ydellisiksi vastaavuuksiksi<\/em> (full match) ja osittain yhtenevi\u00e4 k\u00e4\u00e4nn\u00f6ssegmenttej\u00e4 puolestaan osittaisiksi vastaavuuksiksi<\/em> (fuzzy match). Osittaisistakin vastaavuuksista voi olla k\u00e4\u00e4nt\u00e4j\u00e4lle suurta hy\u00f6ty\u00e4 silloin, kun k\u00e4\u00e4nnett\u00e4v\u00e4n\u00e4 on esimerkiksi termi tai ilmaisu, jota h\u00e4nen tulisi yhdenmukaisuuden vuoksi k\u00e4ytt\u00e4\u00e4 muissakin samaa asiaa koskevissa k\u00e4\u00e4nn\u00f6ksiss\u00e4. T\u00e4llaisissa tapauksissa k\u00e4\u00e4nn\u00f6smuisti siis t\u00e4ytt\u00e4\u00e4 samalla osittain my\u00f6s toisen k\u00e4\u00e4nn\u00f6sty\u00f6kalun eli termipankin<\/em> teht\u00e4v\u00e4n. \n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6smuistin merkitt\u00e4vin etu k\u00e4\u00e4nt\u00e4j\u00e4n aputy\u00f6kaluna onkin usein se, ett\u00e4 muistin avulla k\u00e4\u00e4nt\u00e4j\u00e4 pystyy s\u00e4ilytt\u00e4m\u00e4\u00e4n termien ja erilaisten ilmaisujen osalta k\u00e4\u00e4nn\u00f6ksen yhdenmukaisuuden joutumatta jatkuvasti tarkistamaan ”tutulta tuntuvia” tekstej\u00e4 erillisist\u00e4 termipankeista tai irrallisista referenssitiedostoista. \n<\/p>\n\n\n\n

Kun k\u00e4\u00e4nt\u00e4j\u00e4 kohtaa ensimm\u00e4ist\u00e4 kertaa k\u00e4\u00e4nnett\u00e4v\u00e4n segmentin, josta k\u00e4\u00e4nn\u00f6smuistissa ei ole ennest\u00e4\u00e4n sen enemp\u00e4\u00e4 t\u00e4ydellist\u00e4 kuin osittaistakaan vastaavuutta, h\u00e4nen on teht\u00e4v\u00e4 koko k\u00e4\u00e4nn\u00f6s alusta loppuun.\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Kuvan esimerkiss\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4ll\u00e4 on edess\u00e4\u00e4n englanninkielinen teksti This is a translation<\/em>.\n<\/p>\n\n\n\n

Koska teksti\u00e4 tai edes sit\u00e4 muistuttavaa teksti\u00e4 ei ole aikaisemmin k\u00e4\u00e4nnetty eik\u00e4 tallennettu k\u00e4\u00e4nn\u00f6smuistiin, k\u00e4\u00e4nn\u00f6smuisti ei pysty tarjoamaan k\u00e4\u00e4nt\u00e4j\u00e4lle mit\u00e4\u00e4n apua. \n<\/p>\n\n\n\n

N\u00e4yt\u00f6n vasemmassa alakulmassa oleva teksti No match!<\/em> kertoo k\u00e4\u00e4nt\u00e4j\u00e4lle, ettei muistissa ole ennest\u00e4\u00e4n t\u00e4t\u00e4 tai edes sen kaltaista k\u00e4\u00e4nnetty\u00e4 lausetta. \n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

K\u00e4\u00e4nt\u00e4j\u00e4 tekee nyt k\u00e4\u00e4nn\u00f6ksen eli kirjoittaa T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s<\/em> l\u00e4hdetekstin alapuolella olevalle riville ja tallentaa k\u00e4\u00e4nn\u00f6ksen muistiin. Tallennuksen yhteydess\u00e4 tallentuu my\u00f6s k\u00e4\u00e4nn\u00f6ksen tekoajankohta, k\u00e4\u00e4nt\u00e4j\u00e4n tunnus ja mahdollisia muita ohjelmaan erikseen m\u00e4\u00e4ritettyj\u00e4 tietoja. T\u00e4m\u00e4n j\u00e4lkeen tehty k\u00e4\u00e4nn\u00f6s on valmiina k\u00e4\u00e4nn\u00f6smuistissa seuraavan kerran, kun k\u00e4\u00e4nnett\u00e4v\u00e4ksi tulee t\u00e4ysin tai l\u00e4hes t\u00e4ysin samanlainen l\u00e4hdekielinen lause.\n<\/p>\n\n\n\n


K\u00e4\u00e4nn\u00f6ksen tekeminen k\u00e4\u00e4nn\u00f6smuistin t\u00e4ydellisen vastaavuuden avulla<\/strong>\n<\/p>\n\n\n\n

Kun l\u00e4hdekielinen lause tai l\u00e4hes samansis\u00e4lt\u00f6inen teksti l\u00f6ytyy jo k\u00e4\u00e4nn\u00f6smuistista, k\u00e4\u00e4nt\u00e4j\u00e4 saa tiedon siit\u00e4 kyseisen k\u00e4\u00e4nn\u00f6ssegmentin kohdalla. \n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Jos k\u00e4\u00e4nnett\u00e4v\u00e4 lause on t\u00e4sm\u00e4lleen sama kuin k\u00e4\u00e4nn\u00f6smuistiin jo tallennettu k\u00e4\u00e4nn\u00f6s, k\u00e4\u00e4nn\u00f6smuistiohjelma tarjoaa k\u00e4\u00e4nt\u00e4j\u00e4lle hyv\u00e4ksytt\u00e4v\u00e4ksi samaa k\u00e4\u00e4nn\u00f6st\u00e4 sellaisenaan. Esimerkkiohjelman k\u00e4ytt\u00f6liittym\u00e4ss\u00e4 kohdekielinen k\u00e4\u00e4nn\u00f6s n\u00e4kyy vihre\u00e4\u00e4 taustaa vasten ja lis\u00e4ksi n\u00e4yt\u00f6n vasemmassa alakulmassa n\u00e4kyy teksti 100 % – Exact Match<\/em>. Lis\u00e4ksi ohjelma n\u00e4ytt\u00e4\u00e4 alkuper\u00e4isen k\u00e4\u00e4nn\u00f6ksen p\u00e4iv\u00e4m\u00e4\u00e4r\u00e4n sek\u00e4 sen, kuka kyseisen k\u00e4\u00e4nn\u00f6ksen on tehnyt.\n<\/p>\n\n\n\n

T\u00e4ss\u00e4 yhteydess\u00e4 on syyt\u00e4 muistaa, ett\u00e4 k\u00e4\u00e4nn\u00f6smuistiohjelma tunnistaa jo tehdyn k\u00e4\u00e4nn\u00f6sparin ainoastaan l\u00e4hdekielisen tekstin<\/em> perusteella. Vaikka muistissa jossain muualla olisikin kohdekielinen k\u00e4\u00e4nn\u00f6s, joka olisi juuri oikea kyseiseen kohtaan, k\u00e4\u00e4nn\u00f6smuisti ei kykene l\u00f6yt\u00e4m\u00e4\u00e4n tai hy\u00f6dynt\u00e4m\u00e4\u00e4n t\u00e4llaista k\u00e4\u00e4nn\u00f6st\u00e4, ellei sit\u00e4 ole tietokannassa liitetty nimenomaan vastaavaan l\u00e4hdekieliseen tekstiin. \n<\/p>\n\n\n\n

K\u00e4\u00e4nn\u00f6smuistiohjelma ei siis osaa – eik\u00e4 se edes yrit\u00e4 – itse j\u00e4rkeill\u00e4, voisiko jokin tietokannassa jo oleva kohdekielinen teksti olla ”sopiva” k\u00e4\u00e4nn\u00f6s. Ainoastaan l\u00e4hdekieliset tekstit toimivat tunnisteina k\u00e4\u00e4nn\u00f6smuistille. T\u00e4ll\u00e4 asialla voi olla suuri merkitys silloin, jos sama l\u00e4hdekielinen teksti pit\u00e4\u00e4 tai pit\u00e4isi tietoisesti k\u00e4\u00e4nt\u00e4\u00e4 eri tavoin erilaisissa asiayhteyksiss\u00e4. T\u00e4llaisesta tilanteesta aiheutuvia mahdollisia ongelmia k\u00e4sitell\u00e4\u00e4n l\u00e4hemmin tuonnempana. Normaalitilanteessa k\u00e4\u00e4nt\u00e4j\u00e4 hyv\u00e4ksyy k\u00e4\u00e4nn\u00f6smuistiohjelman esitt\u00e4m\u00e4n k\u00e4\u00e4nn\u00f6ksen ja etenee edelleen seuraavaan k\u00e4\u00e4nnett\u00e4v\u00e4\u00e4n lauseeseen.\n<\/p>\n\n\n\n


K\u00e4\u00e4nn\u00f6ksen tekeminen k\u00e4\u00e4nn\u00f6smuistin osittaisen vastaavuuden avulla<\/strong>\n<\/p>\n\n\n\n

Edellisess\u00e4 kohdassa k\u00e4siteltiin tilannetta, jossa k\u00e4\u00e4nt\u00e4j\u00e4 hyv\u00e4ksyy suoraan sellaisenaan k\u00e4\u00e4nn\u00f6smuistiohjelman esitt\u00e4m\u00e4n ja k\u00e4\u00e4nn\u00f6smuistissa jo olevan, l\u00e4hdeteksti\u00e4 t\u00e4ydellisesti vastaavan k\u00e4\u00e4nn\u00f6ksen.\n<\/p>\n\n\n\n

Mutta mit\u00e4 tapahtuu, jos k\u00e4\u00e4nnett\u00e4v\u00e4ksi tulee teksti, josta on jo olemassa osittain samanlainen k\u00e4\u00e4nn\u00f6s? \n<\/p>\n\n\n\n

Aikaisemmin todettiin, ett\u00e4 k\u00e4\u00e4nn\u00f6smuisti ei osaa ottaa kantaa siihen, onko muistissa jo sellainen kohdekielinen teksti, joka voisi olla k\u00e4\u00e4nnett\u00e4v\u00e4ksi tulevalle tekstille t\u00e4ysin oikea k\u00e4\u00e4nn\u00f6s, jollei t\u00e4llaista k\u00e4\u00e4nn\u00f6st\u00e4 ole nimenomaisesti yhdistetty kyseiseen k\u00e4\u00e4nnett\u00e4v\u00e4\u00e4n tekstiin. \n<\/p>\n\n\n\n

Jos muistiin sit\u00e4 vastoin on jo tallennettu k\u00e4\u00e4nn\u00f6ssegmentti, jonka l\u00e4hdekielinen teksti suuressa m\u00e4\u00e4rin vastaa k\u00e4\u00e4nnett\u00e4v\u00e4\u00e4 teksti\u00e4, k\u00e4\u00e4nn\u00f6smuisti tarjoaa k\u00e4\u00e4nt\u00e4j\u00e4lle mahdollisuutta k\u00e4ytt\u00e4\u00e4 jo olemassa olevaa k\u00e4\u00e4nn\u00f6st\u00e4 uuden k\u00e4\u00e4nn\u00f6ksen osana. T\u00e4llaista tilannetta kutsutaan osittaiseksi vastaavuudeksi<\/em>\u00a0(fuzzy match). <\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Ajatellaanpa nyt, ett\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4 saa eteens\u00e4 l\u00e4hdekielisen tekstin, jota l\u00e4hell\u00e4 oleva teksti ja sen kohdekielinen k\u00e4\u00e4nn\u00f6s on jo tallennettu k\u00e4\u00e4nn\u00f6smuistiin. Siksi ohjelma tarjoaa k\u00e4\u00e4nt\u00e4j\u00e4lle mahdollisuuden t\u00e4ydent\u00e4\u00e4 tai muuttaa uutta k\u00e4\u00e4nn\u00f6st\u00e4 siten, ett\u00e4 se muokattuna vastaa uutta l\u00e4hdekielist\u00e4 teksti\u00e4.\n<\/p>\n\n\n\n

Koska vastaavuus on vain osittainen, k\u00e4\u00e4nn\u00f6smuistiohjelma kertoo k\u00e4\u00e4nt\u00e4j\u00e4lle, ett\u00e4 tarjottua k\u00e4\u00e4nn\u00f6st\u00e4 ei voi k\u00e4ytt\u00e4\u00e4 sellaisenaan ja kertoo my\u00f6s, miten uusi k\u00e4\u00e4nnett\u00e4v\u00e4 teksti poikkeaa muistissa jo olevasta k\u00e4\u00e4nn\u00f6sparista. Lis\u00e4ksi (esimerkkiohjelmassa) n\u00e4kyy n\u00e4yt\u00f6n vasemmassa alalaidassa k\u00e4\u00e4nnett\u00e4v\u00e4n tekstin vastaavuus matemaattisina prosentteina (t\u00e4ss\u00e4 tapauksessa 85 % Fuzzy Match<\/em>). \n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Suurikaan matemaattinen vastaavuus ei v\u00e4ltt\u00e4m\u00e4tt\u00e4 kerro, ett\u00e4 k\u00e4\u00e4nn\u00f6s sellaisenaan on ”l\u00e4hes” oikea. Se osoittaa vain, miten suuri prosentuaalinen osuus uudesta k\u00e4\u00e4nnett\u00e4v\u00e4st\u00e4 tekstist\u00e4 on muistissa jo olevan l\u00e4hdekielisen tekstin mukainen. T\u00e4st\u00e4 huolimatta k\u00e4\u00e4nn\u00f6ksen hyv\u00e4ksyminen sellaisenaan voi johtaa t\u00e4ysin virheelliseen k\u00e4\u00e4nn\u00f6stulokseen.\n<\/p>\n\n\n\n

Jos k\u00e4\u00e4nt\u00e4j\u00e4 nyt muokkaa kohdekielisen tekstin vastaamaan uutta oikeaa k\u00e4\u00e4nn\u00f6st\u00e4 ja tallentaa sen muokatussa muodossaan, k\u00e4\u00e4nn\u00f6smuistiin syntyy uusi l\u00e4hde- ja kohdekielist\u00e4 teksti\u00e4 t\u00e4ysin vastaava k\u00e4\u00e4nn\u00f6spari.\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Seuraavan kerran, kun k\u00e4\u00e4nnett\u00e4v\u00e4ksi tulee uusinta tallennettua k\u00e4\u00e4nn\u00f6sparia vastaava l\u00e4hdekielinen teksti, my\u00f6s t\u00e4m\u00e4 k\u00e4\u00e4nn\u00f6s l\u00f6ytyy nyt muistista t\u00e4ydellisen\u00e4 vastaavuutena. Yksi k\u00e4\u00e4nn\u00f6smuistiohjelman k\u00e4yt\u00f6n olennainen etu on siis my\u00f6s se, ett\u00e4 k\u00e4\u00e4nn\u00f6sty\u00f6n edetess\u00e4 muisti jatkuvasti ”paranee”, kun osittaisista vastaavuuksista tulee k\u00e4\u00e4nt\u00e4j\u00e4n tekemien pienten muutosten j\u00e4lkeen t\u00e4ydellisi\u00e4 vastaavuuksia.\n<\/p>\n\n\n\n


Virheelliset k\u00e4\u00e4nn\u00f6kset ja duplikaattik\u00e4\u00e4nn\u00f6kset<\/strong>\n<\/p>\n\n\n\n

Kuten edell\u00e4 todettiin, perinteinen k\u00e4\u00e4nn\u00f6smuisti ei itsess\u00e4\u00e4n takaa k\u00e4\u00e4nn\u00f6ksen virheett\u00f6myytt\u00e4. Jos k\u00e4\u00e4nt\u00e4j\u00e4 tekee tai hyv\u00e4ksyy virheellisen k\u00e4\u00e4nn\u00f6ksen ja tallentaa sen, muisti tarjoaa seuraavalla kerralla t\u00e4ydellist\u00e4 k\u00e4\u00e4nn\u00f6svastaavuutta kyseiselle l\u00e4hdekieliselle tekstille, vaikka itse k\u00e4\u00e4nn\u00f6s olisikin virheellinen.\n<\/p>\n\n\n\n

Uudet k\u00e4\u00e4nn\u00f6steknologiat, joissa k\u00e4\u00e4nn\u00f6smuistien k\u00e4ytt\u00f6 yhdistet\u00e4\u00e4n konek\u00e4\u00e4nn\u00f6kseen, ovat muuttamassa tilannetta. T\u00e4st\u00e4 huolimatta hyv\u00e4 k\u00e4\u00e4nn\u00f6stulos on aina riippuvainen sen taustalla toimivasta ihmisest\u00e4. Siksi k\u00e4\u00e4nt\u00e4j\u00e4n tuleekin olla eritt\u00e4in tarkka erityisesti t\u00e4ydellisten vastaavuuksien hyv\u00e4ksynn\u00e4ss\u00e4 etenkin, jos t\u00e4ydelliset vastaavuudet ajetaan k\u00e4\u00e4nn\u00f6ksiin ”automaattisesti”.\n<\/p>\n\n\n\n

Yhten\u00e4 syyn\u00e4 k\u00e4\u00e4nn\u00f6smuisteilla saataviin n\u00e4enn\u00e4isesti virheellisiin k\u00e4\u00e4nn\u00f6stuloksiin voivat olla my\u00f6s ns. duplikaattik\u00e4\u00e4nn\u00f6kset. Kun samalla l\u00e4hdekielisell\u00e4 tekstill\u00e4 voi asiayhteydest\u00e4 riippuen olla useita ”oikeita” k\u00e4\u00e4nn\u00f6ksi\u00e4, k\u00e4\u00e4nn\u00f6smuistien asetuksilla voi olla joskus suuri vaikutus k\u00e4\u00e4nn\u00f6ksen lopulliseen laatuun. Seuraavat esimerkit kuvaavat asiaa l\u00e4hemmin.\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Kuvitellaan ensin, ett\u00e4 aikaisempaa k\u00e4\u00e4nn\u00f6st\u00e4 tehnyt ja k\u00e4\u00e4nn\u00f6smuistia k\u00e4ytt\u00e4nyt k\u00e4\u00e4nt\u00e4j\u00e4 saa seuraavaksi eteens\u00e4 tekstin This is a turn.<\/em> Aivan oikeaoppisesti h\u00e4n k\u00e4\u00e4nt\u00e4\u00e4 tekstin suomeksi muotoon T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s <\/em>ja tallentaa k\u00e4\u00e4nn\u00f6ksen muistiin.<\/em> \n<\/p>\n\n\n\n

Nyt k\u00e4\u00e4nn\u00f6smuistissa on sama k\u00e4\u00e4nn\u00f6s eli T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s<\/em> kahdelle eri l\u00e4hdetekstille. Aiheutuuko t\u00e4st\u00e4 siis ongelmia?\n<\/p>\n\n\n\n

Vastaus t\u00e4ss\u00e4 tapauksessa on: ei. \n<\/p>\n\n\n\n

Kuten edell\u00e4 todettiin, k\u00e4\u00e4nn\u00f6smuistin kannalta ei ole merkityksellist\u00e4, miten monta kertaa ja miten moneen eri k\u00e4\u00e4nn\u00f6ssegmenttiin sama kohdekielinen<\/em> k\u00e4\u00e4nn\u00f6s tallennetaan. K\u00e4\u00e4nn\u00f6smuisti k\u00e4ytt\u00e4\u00e4 hakukriteerin\u00e4\u00e4n vain l\u00e4hdekielisi\u00e4 merkkijonoja.\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Kun siis seuraavan kerran k\u00e4\u00e4nnett\u00e4v\u00e4ksi tulee teksti This is a turn,<\/em> k\u00e4\u00e4nn\u00f6smuisti tarjoaa sille t\u00e4ydelliseksi vastaavuudeksi k\u00e4\u00e4nn\u00f6st\u00e4 T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s<\/em>, mik\u00e4 on t\u00e4ss\u00e4 tapauksessa aivan oikein. K\u00e4\u00e4nn\u00f6kset eiv\u00e4t mene sekaisin tai aiheuta ristiriitoja, sill\u00e4 l\u00e4hdekieliset tekstit ovat t\u00e4ysin erilaisia. Niinp\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4 voi hyv\u00e4ksy\u00e4 uuden k\u00e4\u00e4nn\u00f6ksen ja tallentaa sen sellaisenaan muistiin.\n<\/p>\n\n\n\n

Uudenlainen tilanne syntyy, jos k\u00e4\u00e4nt\u00e4j\u00e4 haluaakin k\u00e4\u00e4nt\u00e4\u00e4 jo olemassa olevan tekstin This is a turn<\/em> aikaisemmasta poikkeavalla tavalla. K\u00e4\u00e4nn\u00f6smuistille ei ole ongelma, jos erilainen l\u00e4hdekielinen teksti k\u00e4\u00e4nnet\u00e4\u00e4n kesken\u00e4\u00e4n samanlaisilla kohdekielisill\u00e4 k\u00e4\u00e4nn\u00f6ksill\u00e4. Kun siis aikaisemmissa esimerkeiss\u00e4 sek\u00e4 l\u00e4hdekielinen ilmaisu translation<\/em> ett\u00e4 l\u00e4hdekielinen ilmaisu turn<\/em> on k\u00e4\u00e4nnetty suomenkieliseksi sanaksi k\u00e4\u00e4nn\u00f6s<\/em>, kumpikin k\u00e4\u00e4nn\u00f6s on oikea ja k\u00e4\u00e4nn\u00f6kset pysyv\u00e4t erill\u00e4\u00e4n toisistaan aiheuttamatta ongelmaa.\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Mutta jos k\u00e4\u00e4nt\u00e4j\u00e4 seuraavalla kerralla haluaakin k\u00e4\u00e4nt\u00e4\u00e4 lauseen This is a turn<\/em> muotoon T\u00e4m\u00e4 on mutka<\/em> (mik\u00e4 my\u00f6s on aivan oikea k\u00e4\u00e4nn\u00f6s), syntyy ns. duplikaatti: samalle l\u00e4hdekieliselle ilmaisulle This is a turn<\/em> onkin nyt tarjolla kaksi erilaista kohdekielist\u00e4 k\u00e4\u00e4nn\u00f6st\u00e4. Koska k\u00e4\u00e4nnett\u00e4v\u00e4n tekstin tunnistaminen ja erottelu tapahtuu l\u00e4hdekielisen segmentin mukaan, normaalisti samalle l\u00e4hdekieliselle tekstille voi kerrallaan olla vain yksi kohdekielinen k\u00e4\u00e4nn\u00f6s. \n<\/p>\n\n\n\n

Jos k\u00e4\u00e4nt\u00e4j\u00e4 siis nyt hyv\u00e4ksyy samalle l\u00e4hdekieliselle lauseelle uuden k\u00e4\u00e4nn\u00f6ksen ja tallentaa sen muistiin, aikaisemmin tehty k\u00e4\u00e4nn\u00f6spari (This is a turn <> T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s)<\/em> pyyhkiytyy muistista pois ja korvautuu k\u00e4\u00e4nn\u00f6sparilla This is a turn <> T\u00e4m\u00e4 on mutka.<\/em>\n<\/p>\n\n\n\n

\"\"<\/figure>\n\n\n\n

Kun sitten sama tai toinen k\u00e4\u00e4nt\u00e4j\u00e4 my\u00f6hemmin j\u00e4lleen kohtaa l\u00e4hdekielisen ilmaisun This is a turn<\/em>, k\u00e4\u00e4nn\u00f6smuisti tarjoaa ainoana t\u00e4ydellisen\u00e4 k\u00e4\u00e4nn\u00f6svastineena muotoa T\u00e4m\u00e4 on mutka<\/em>, vaikka aikaisemmassa k\u00e4\u00e4nn\u00f6ksess\u00e4 sama ilmaisu on k\u00e4\u00e4nnetty my\u00f6s muotoon T\u00e4m\u00e4 on k\u00e4\u00e4nn\u00f6s.<\/em> Viimeisin tehty ja hyv\u00e4ksytty k\u00e4\u00e4nn\u00f6s on aina ratkaiseva. \n<\/p>\n\n\n\n

Jos k\u00e4\u00e4nt\u00e4j\u00e4 t\u00e4ll\u00e4 kertaa haluaa j\u00e4lleen k\u00e4ytt\u00e4\u00e4 mutkan<\/em> sijasta ilmaisua k\u00e4\u00e4nn\u00f6s<\/em>, h\u00e4n voi tehd\u00e4 muutoksen ja tallentaa sen. T\u00e4ll\u00f6in kuitenkin ilmaisulle turn<\/em> tehty vaihtoehtoinen k\u00e4\u00e4nn\u00f6s mutka<\/em> vastaavasti pyyhkiytyy pois ja sama tilanne toistuu jokaisen uuden tallennetun k\u00e4\u00e4nn\u00f6ksen j\u00e4lkeen.\n<\/p>\n\n\n\n


Duplikaattik\u00e4\u00e4nn\u00f6sten tietoinen k\u00e4ytt\u00f6 ja k\u00e4\u00e4nn\u00f6smuistien p\u00e4ivitys<\/strong>\n<\/p>\n\n\n\n

Duplikaattik\u00e4\u00e4nn\u00f6sten aiheuttamaa pulmaa voidaan torjua kahdella p\u00e4\u00e4asiallisella tavalla:<\/p>\n\n\n\n

  • est\u00e4m\u00e4ll\u00e4 duplikaattien syntyminen tietokantaan (joka yleens\u00e4 on k\u00e4\u00e4nn\u00f6smuistiohjelmien oletusasetus) ja k\u00e4ytt\u00e4m\u00e4ll\u00e4 erilaisissa konteksteissa eri k\u00e4\u00e4nn\u00f6smuisteja. T\u00e4m\u00e4 on varsin helppo ja yksinkertainen ratkaisu, joka kuitenkin edellytt\u00e4\u00e4 sit\u00e4, ett\u00e4 tarve k\u00e4\u00e4nt\u00e4\u00e4 sama kohdekielinen ilmaisu eri tilanteissa samassa k\u00e4\u00e4nn\u00f6ksess\u00e4 eri tavoin ei ole ehdoton tarve.

    T\u00e4m\u00e4 menettelytapa on k\u00e4yt\u00e4nn\u00f6llinen silloin, jos k\u00e4ytett\u00e4v\u00e4 k\u00e4\u00e4nn\u00f6smuisti on suhteellisen suppea ja sen k\u00e4ytt\u00f6 rajoittuu tiettyihin konteksteihin. T\u00e4ll\u00f6in esiin ei tule tilanteita, jolloin sama l\u00e4hdekielinen teksti tulee ehdottomasti k\u00e4\u00e4nt\u00e4\u00e4 samassa tiedostossa eri paikoissa eri tavoin.<\/li><\/ul>\n\n\n\n
    • sallimalla tietoisesti duplikaattien syntyminen tietokantaan. T\u00e4m\u00e4 ratkaisu on ainoa mahdollinen silloin, jos eri tiedostojen k\u00e4\u00e4nt\u00e4misess\u00e4 halutaan k\u00e4ytt\u00e4\u00e4 laajaa ja pitk\u00e4lt\u00e4 ajanjaksolta koottua k\u00e4\u00e4nn\u00f6smuistia.

      Nykyaikaisten k\u00e4\u00e4nn\u00f6smuistien tietokannat mahdollistavat p\u00e4\u00e4s\u00e4\u00e4nt\u00f6isesti my\u00f6s duplikaattik\u00e4\u00e4nn\u00f6sten k\u00e4ytt\u00e4misen. Koska t\u00e4llaisissa tapauksissa k\u00e4\u00e4nn\u00f6ssegmentin tunnistamiseen tarvitaan itse l\u00e4hdekielisen tekstin lis\u00e4ksi my\u00f6s muita elementtej\u00e4, k\u00e4\u00e4nn\u00f6smuistin hallitseminen vaatii huomattavasti perusteellisempaa perehtymist\u00e4. Muussa tapauksessa duplikaattik\u00e4\u00e4nn\u00f6sten k\u00e4ytt\u00f6 saattaa johtaa kiusallisiin virheisiin ja ongelmatilanteisiin.<\/li><\/ul>\n\n\n\n

      Jos k\u00e4\u00e4nn\u00f6smuisteissa halutaan sallia duplikaattik\u00e4\u00e4nn\u00f6kset, tunnisteena on l\u00e4hdekielisen tekstin ohella k\u00e4ytett\u00e4v\u00e4 my\u00f6s jotain muuta avainta. Yksinkertaisimmillaan t\u00e4m\u00e4 lis\u00e4avain on tietokannan indeksinumero tai k\u00e4\u00e4nn\u00f6ksen hyv\u00e4ksymisajankohta. Avaimeksi voidaan – hieman k\u00e4\u00e4nn\u00f6smuistiohjelmasta riippuvasti – m\u00e4\u00e4ritt\u00e4\u00e4 my\u00f6s esimerkiksi k\u00e4\u00e4nn\u00f6sprojektin nimi, k\u00e4\u00e4nnett\u00e4v\u00e4n tuotteen nimi tai jokin muu selv\u00e4sti erotettavissa oleva tunniste.\n<\/p>\n\n\n\n

      Jos k\u00e4\u00e4nn\u00f6smuistissa sallitaan duplikaattik\u00e4\u00e4nn\u00f6sten k\u00e4ytt\u00f6, t\u00e4m\u00e4 ei yleens\u00e4 aiheuta ongelmia niin kauan kuin k\u00e4\u00e4nt\u00e4j\u00e4 pys\u00e4htyy erikseen jokaiseen k\u00e4\u00e4nnett\u00e4v\u00e4\u00e4n ilmaisuun ja p\u00e4\u00e4tt\u00e4\u00e4 tapauskohtaisesti, mit\u00e4 k\u00e4\u00e4nn\u00f6svaihtoehtoa k\u00e4ytet\u00e4\u00e4n – vai lis\u00e4t\u00e4\u00e4nk\u00f6 viel\u00e4 yksi uusi k\u00e4\u00e4nn\u00f6sversio. Hyvin yleisesti vallalla oleva k\u00e4yt\u00e4nt\u00f6 on kuitenkin, ett\u00e4 jo k\u00e4\u00e4nn\u00f6ksen tilaaja k\u00e4\u00e4nn\u00e4tt\u00e4\u00e4 k\u00e4\u00e4nn\u00f6smuistilla automaattisesti kaikki k\u00e4ytett\u00e4viss\u00e4 olevassa muistissa olevat 100-prosenttiset vastaavuudet tekeill\u00e4 olevaan k\u00e4\u00e4nn\u00f6kseen. Tavoitteena on t\u00e4ll\u00f6in useimmissa tapauksissa kustannusten s\u00e4\u00e4st\u00e4minen; muistista tulleista t\u00e4ydellisen vastaavuuden k\u00e4\u00e4nn\u00f6ksist\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4lle ei makseta mit\u00e4\u00e4n, sill\u00e4 onhan k\u00e4\u00e4nn\u00f6s jo kertaalleen tehty.\n<\/p>\n\n\n\n

      T\u00e4llainen ajattelutapa saattaa kuitenkin osoittautua vaaralliseksi ja hyv\u00e4n tarkoituksensa vastaiseksi. Jotta k\u00e4\u00e4nn\u00f6smuistin avulla automaattisesti teht\u00e4v\u00e4t k\u00e4\u00e4nn\u00f6kset olisivat oikeita tilanteissa, joissa k\u00e4ytett\u00e4viss\u00e4 on useita erilaisia ”oikeita” k\u00e4\u00e4nn\u00f6ksi\u00e4, k\u00e4\u00e4nn\u00f6smuistin usein varsin monimutkaiset asetukset on osattava m\u00e4\u00e4ritt\u00e4\u00e4 oikein, tarjolla olevien erotteluvaihtoehtojen perusteella. T\u00e4llainen vaatii yleens\u00e4 laajaa erityisammattitaitoa. Jos ”valmiit” k\u00e4\u00e4nn\u00f6kset viel\u00e4 m\u00e4\u00e4ritet\u00e4\u00e4n sellaisiksi, ett\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4 ei saa eik\u00e4 voi niit\u00e4 muuttaa, tuloksena voi olla joukko tahattomasti virheellisi\u00e4 k\u00e4\u00e4nn\u00f6ksi\u00e4.\n<\/p>\n\n\n\n

      Toinen tilanne, joka voi aiheuttaa ongelmia, on laajalti k\u00e4yt\u00f6ss\u00e4 oleva k\u00e4yt\u00e4nt\u00f6 k\u00e4\u00e4nt\u00e4\u00e4 k\u00e4\u00e4nn\u00f6smuistiohjelmalla kaikki 100-prosenttiset vastaavuudet suoraan l\u00e4pi, ilman tarkistusta siit\u00e4, mik\u00e4 mahdollisista duplikaattik\u00e4\u00e4nn\u00f6ksist\u00e4 on kulloinkin oikea. T\u00e4llainen asetelma syntyy etenkin silloin, jos k\u00e4\u00e4nt\u00e4j\u00e4lle ei makseta mit\u00e4\u00e4n k\u00e4\u00e4nn\u00f6smuistissa olevista 100-prosenttisista vastaavuuksista. T\u00e4ll\u00f6in k\u00e4\u00e4nt\u00e4j\u00e4lle voi olla, t\u00e4ysin perustellusti, vaikea ymm\u00e4rt\u00e4\u00e4, miksi h\u00e4nen pit\u00e4isi ottaa kantaa oikeaan k\u00e4\u00e4nn\u00f6svaihtoehtoon tilanteissa, joissa h\u00e4nelle ei kyseisest\u00e4 ty\u00f6st\u00e4 makseta mit\u00e4\u00e4n.\n<\/p>\n\n\n\n

      Useimmat nykyaikaiset k\u00e4\u00e4nn\u00f6smuistiohjelmat osaavat pys\u00e4hty\u00e4 kysym\u00e4\u00e4n k\u00e4\u00e4nt\u00e4j\u00e4lt\u00e4, mink\u00e4 erilaisista duplikaattivaihtoehdoista h\u00e4n haluaa valita. Jos k\u00e4\u00e4nt\u00e4j\u00e4lle maksetaan my\u00f6s 100-prosenttisten vastaavuuksien tarkistuksista, teett\u00e4j\u00e4ll\u00e4 on t\u00e4ysi syy edellytt\u00e4\u00e4, ett\u00e4 k\u00e4\u00e4nt\u00e4j\u00e4 my\u00f6s pys\u00e4htyy tarkistamaan kyseisen k\u00e4\u00e4nn\u00f6ksen. Toisaalta, jos 100-prosenttiset vastaavuudet on valmiiksi lukittu muutoksilta, k\u00e4\u00e4nt\u00e4j\u00e4ll\u00e4 ei ole mahdollisuutta puuttua virheellisiin k\u00e4\u00e4nn\u00f6ksiin silloinkaan, kun siihen olisi perusteltua aihetta.\n<\/p>\n\n\n\n

      Jotta t\u00e4llaisilta virheilt\u00e4 ja niit\u00e4 seuraavilta kalliilta j\u00e4lkik\u00e4teisilt\u00e4 korjauksilta voitaisiin v\u00e4ltty\u00e4, on t\u00e4rke\u00e4\u00e4 edelt\u00e4 k\u00e4sin sopia kulloinkin noudatettavista pelis\u00e4\u00e4nn\u00f6ist\u00e4. Erityisesti laajoissa k\u00e4\u00e4nn\u00f6sprojekteissa k\u00e4ytett\u00e4vien k\u00e4\u00e4nn\u00f6smuistien asetuksista ja p\u00e4ivityksist\u00e4 kannattaa yleens\u00e4 p\u00e4\u00e4tt\u00e4\u00e4 ennen k\u00e4\u00e4nn\u00f6sty\u00f6n aloittamista. Parhaaseen tulokseen p\u00e4\u00e4st\u00e4\u00e4n, jos asiasta konsultoidaan k\u00e4\u00e4nn\u00f6smuistien asiantuntijan kanssa ennen k\u00e4\u00e4nn\u00f6sty\u00f6n aloittamista.<\/p>\n","protected":false},"excerpt":{"rendered":"

      K\u00e4\u00e4nn\u00f6smuistiohjelma tallentaa jo k\u00e4\u00e4nnetyt l\u00e4hdetekstit ja niit\u00e4 vastaavat kohdekieliset k\u00e4\u00e4nn\u00f6kset tietokantaan ja tuo siell\u00e4 olemassa olevat k\u00e4\u00e4nn\u00f6kset esiin vastaavan sis\u00e4lt\u00f6isi\u00e4 uusia dokumentteja k\u00e4\u00e4nnett\u00e4ess\u00e4. Nykyiset k\u00e4\u00e4nn\u00f6smuistit ovat useimmissa tapauksissa rakenteensa puolesta tekstikentist\u00e4 ja tietueista muodostuva tietokanta, johon tavallisesti sis\u00e4ltyy l\u00e4hde- ja kohdekielinen tekstisegmentti sek\u00e4 mahdollista lis\u00e4tietoa k\u00e4\u00e4nn\u00f6ksest\u00e4 (k\u00e4\u00e4nn\u00f6sajankohta, viimeisin k\u00e4ytt\u00f6ajankohta, alkuper\u00e4isen k\u00e4\u00e4nt\u00e4j\u00e4n nimi jne.). Etenkin automaattiseen ja […]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":377,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"_links":{"self":[{"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/384"}],"collection":[{"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=384"}],"version-history":[{"count":8,"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/384\/revisions"}],"predecessor-version":[{"id":486,"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/384\/revisions\/486"}],"up":[{"embeddable":true,"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=\/wp\/v2\/pages\/377"}],"wp:attachment":[{"href":"http:\/\/tenviesti.fi\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=384"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}