top / index / prev / next / target / source

2018-12-21 diary: [Java][OmegaT] OmegaT をヘッドレス起動して検索機能のみを利用する

いがぴょんの日記 日記形式でつづる いがぴょんコラム ウェブページです。

[Java][OmegaT] OmegaT をヘッドレス起動して検索機能のみを利用する

OmegaT をヘッドレス起動して検索機能のみを利用する方法を簡易にメモします。 これは最低レベルのサンプル記述になっていて、現実的にはシングルトンにするとか 環境周りをもう少し手厚く設定するなどの手当てが必要です。

import java.nio.file.Files;
import org.omegat.core.data.ProjectProperties;
import org.omegat.core.data.RealProject;
import org.omegat.core.matching.FuzzyMatcher;
import org.omegat.core.matching.ISimilarityCalculator;
import org.omegat.core.matching.LevenshteinDistance;
import org.omegat.core.statistics.FindMatches;
import org.omegat.util.OConsts;
import org.omegat.util.Preferences;
import org.omegat.util.Token;

public class SimpleOmegatSample {
    public static final void main(String[] args) throws Exception {
        // 環境セットアップ
        Preferences.init();
        ProjectProperties projProps = new ProjectProperties(Files.createTempDirectory("omegat").toFile());
        RealProject proj = new RealProject(projProps);

        // 検索器の準備
        ISimilarityCalculator distanceCalc = new LevenshteinDistance();
        FindMatches matcher = new FindMatches(proj, OConsts.MAX_NEAR_STRINGS, true, false);

        // 検索対象
        String sourceText = "柿食えば鐘がなるなり法隆寺";
        Token[] tokenizedSourceText = matcher.tokenizeAll(sourceText);

        // マッチ計算させたい文字列
        Token[] tokenizedMatchingText = matcher.tokenizeStem("柿を食べるほど鐘がなるなり法隆寺");

        // マッチ計算
        int similarity = FuzzyMatcher.calcSimilarity(distanceCalc, tokenizedSourceText, tokenizedMatchingText);
        System.err.println("類似さ:" + similarity + ": " + sourceText);
    }
}

pom.xml の追記内容は以下のような感じです。

  <repositories>
    <repository>
      <id>omegat</id>
      <name>omegat repo</name>
      <url>https://dl.bintray.com/omegat-org/maven/</url>
    </repository>

    <repository>
      <id>jcenter</id>
      <name>jcenter repo</name>
      <url>http://jcenter.bintray.com/</url>
    </repository>
  </repositories>

  <dependency>
    <groupId>org.omegat</groupId>
    <artifactId>omegat</artifactId>
    <version>4.1.3-02</version>
  </dependency>

  <dependency>
    <groupId>org.madlonkay.supertmxmerge</groupId>
    <artifactId>supertmxmerge</artifactId>
    <version>2.0.1</version>
  </dependency>

  <dependency>
    <groupId>org.dict.zip</groupId>
    <artifactId>dictzip-lib</artifactId>
    <version>0.8.2</version>
  </dependency>

関連する日記

さらに冬の深まり

寒いです。

Last modified: $Date: 2018-12-21 $

登場キーワード


この日記について