OmegaTの用語集とtokenizer ― 2012年12月08日 14:24
後記(2013/4/26):OmegaT 3.0ベータ版では、tokenizerが標準で組み込まれて使いやすくなった。日本語用tokenizerを使用したときの用語集ヒットに関する下記の状況も改善された。開発チームに感謝。
-----------------------------------------
OmegaTには用語集機能があるが、これを有効に活用するにはtokenizerと呼ばれるプラグインを導入する必要がある。それによって、原文が英語の場合に用語集のヒット率が良くなることについては、下記のブログ記事に解説がある。
http://dirtysexyquery.blogspot.jp/2012/10/omegat-tokenizer-plugin-usage.html
では、原文が日本語の場合はどうだろうか。次の例について検討してみる。
原文は:
机の上にペンとペンダントがあり、机の下にはクロネコがいます。
用語集項目は:
机 = desk
ペン = pen
ペンダント = pendant
ネコ = cat
だとする。
1.tokenizerなしの場合
ヒットするのは
ペンダント = pendant
ペン = pen
机 = desk
であり、「ネコ」はヒットしない。「クロネコ」のように他のカタカナ用語との合成語になっているとヒットしないようだ。同様に、例えば原文が「大阪府大阪市」の場合、「大阪府」と「大阪市」がそれぞれ用語集にあってもヒットしない。
2.LuceneCJKTokenizerを使用した場合
OmegaTで使える日本語用tokenizerは、LuceneCJKTokenizerというものらしい。これを使ってヒットするのは
ペンダント = pendant
ペン = pen
ネコ = cat
であり、「机」はヒットしない。一文字の用語集項目はヒットしないアルゴリズムようだ。
3.SnowballEnglishTokenizerを使用した場合
英語用tokenizerであるSnowballEnglishTokenizerを使った場合にヒットするのは、
ペンダント = pendant
ペン = pen
机 = desk
ネコ = cat
であり、期待するすべての項目がヒットする。
このことから、用語集のヒット率を良くするという観点では、原文が日本語の場合でも英語用tokenizerを使うとよさそうにも見える。しかし実際のジョブで試すと、余計な項目までヒットするという問題に遭遇する。上の例だと、用語集に
コネ = connection
という項目があれば、それまでヒットしてしまう。
そこで、OmegaTの枠組みから離れて独自に用語集のマッチングを行う仕組みを試作した。これについては別記事に記そうと思う。
-----------------------------------------
OmegaTには用語集機能があるが、これを有効に活用するにはtokenizerと呼ばれるプラグインを導入する必要がある。それによって、原文が英語の場合に用語集のヒット率が良くなることについては、下記のブログ記事に解説がある。
http://dirtysexyquery.blogspot.jp/2012/10/omegat-tokenizer-plugin-usage.html
では、原文が日本語の場合はどうだろうか。次の例について検討してみる。
原文は:
机の上にペンとペンダントがあり、机の下にはクロネコがいます。
用語集項目は:
机 = desk
ペン = pen
ペンダント = pendant
ネコ = cat
だとする。
1.tokenizerなしの場合
ヒットするのは
ペンダント = pendant
ペン = pen
机 = desk
であり、「ネコ」はヒットしない。「クロネコ」のように他のカタカナ用語との合成語になっているとヒットしないようだ。同様に、例えば原文が「大阪府大阪市」の場合、「大阪府」と「大阪市」がそれぞれ用語集にあってもヒットしない。
2.LuceneCJKTokenizerを使用した場合
OmegaTで使える日本語用tokenizerは、LuceneCJKTokenizerというものらしい。これを使ってヒットするのは
ペンダント = pendant
ペン = pen
ネコ = cat
であり、「机」はヒットしない。一文字の用語集項目はヒットしないアルゴリズムようだ。
3.SnowballEnglishTokenizerを使用した場合
英語用tokenizerであるSnowballEnglishTokenizerを使った場合にヒットするのは、
ペンダント = pendant
ペン = pen
机 = desk
ネコ = cat
であり、期待するすべての項目がヒットする。
このことから、用語集のヒット率を良くするという観点では、原文が日本語の場合でも英語用tokenizerを使うとよさそうにも見える。しかし実際のジョブで試すと、余計な項目までヒットするという問題に遭遇する。上の例だと、用語集に
コネ = connection
という項目があれば、それまでヒットしてしまう。
そこで、OmegaTの枠組みから離れて独自に用語集のマッチングを行う仕組みを試作した。これについては別記事に記そうと思う。
コメントをどうぞ
※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。
※投稿には管理者が設定した質問に答える必要があります。