iknowのアイテムリストをomegaTの用語集に変換するscalaプログラム
omegaTいう、翻訳メモリアプリケーションっちうのがあります。NetBeansの翻訳プロジェクトなどで使われてるそうなのですが、今までめんどくさがって使ってなかったのですが使ってみました。
HTMLの翻訳などをタグをあまり意識せずに翻訳できる。文節単位で翻訳前と翻訳後を両方表示しながら翻訳して結果は翻訳したものだけが得られる。とかいうところがよいように思いました。
ただ、単語の意味を引く機能がなくて、文節単位で単語の意味を全部表示みたいになっているのであんまりたくさんいろいろ書いてある用語集だと見にくくなってしまいます。
そのへん、iknowで分からない単語をぶっくまくんを使ってリストに登録しておいて、以下のscalaのプログラムで読み込み、omegaTの用語データに変換して登録しておくといいんじゃないかと思って作ってみたのが以下のプログラムです。
めちゃくちゃ、用途が限られてますけど結構いいような、わるいようなwww
っていう代物です。
xml操作はscalaだとすごく短くかけていいなぁってかんじなのでした。
import scala.xml.parsing.ConstructingParser import scala.io.Source object Iknow2OmegaT { def p(s:String) { val utfs = s.getBytes("UTF-8") System.out.write(utfs,0,utfs.length) } def main(args : Array[String]) { val url = "http://api.iknow.co.jp/lists/7732/items.xml" val data = Source.fromURL(url,"utf-8") val elem = ConstructingParser.fromSource(data,true).document().docElem val items = (elem\ "items"\"item"); for(i <- items) { p((i\"cue"\"text").text+"\t") p((i\"responses"\"response"\"text").text+"\n") } } }