0

私は Java を使用した剽窃検出に関するプロジェクトを書いています。この場合、最初のステップとして、次のタスクを実行する必要があります。

入力ファイル (txt、.pdf、.doc)

ファイルの内容をテキストに変換する

ストップ ワードを削除して n-gram にトークン化する

テキストに対するテキスト類似性アルゴリズムの処理

盗作検出兆候の報告

私は自分でコーディングしてこれらの手順を実行しましたが、今では多くのパフォーマンスが不足していると感じているので、自分の仕事に利用可能な API を使い始めまし。利用可能なドキュメントまたはヘルプはありますか? 再利用できませんでした。それはまさに私が欲しいものです、デモを見てください

4

1 に答える 1

2

Web サイトで確認できるもの以外に、私が見つけたドキュメントはありません。コードを確認することから始めることをお勧めします(SVN または git を使用して確認してください)。ソースが完全ではないため、バイナリ配布が必要になることに注意してください。

簡単なチュートリアルは、ほとんどの場合に有効です。おそらくソースコードですでに見つけているでしょう:

double s = rc.calcRelatednessOfWords("jump", "stand");

特定の synset を比較したい場合は、Concept最初に作成する必要があります。「ジャンプ」の最も一般的な意味の例:

String word = "jump";
List<Synset> synsets = WordNetUtil.wordToSynsets(word, POS.v);
Synset mysynset = synsets.get(0);       
Concept co = new Concept(mysynset.getSynset(), POS.v, mysynset.getName(), mysynset.getSrc());

ライブラリは、実際にはオンライン デモのようには機能しません。synset の典型的な表記法を使用するには、独自のユーティリティ メソッドを使用します。したがって、特定の synset を比較すると、次のようになります。

Concept stand = new Concept(getSynset("stand#v#1"), POS.v);
Concept jump = new Concept(getSynset("jump#v#1"), POS.v);
double score = compare(comparer, co, stand);
// done!    

// utility
private static double compare(RelatednessCalculator comparer, Concept one,
        Concept other) throws Exception {
    Relatedness res = comparer.calcRelatednessOfSynset(one, other);
    if(StringUtils.isNotBlank(res.getError()))
    {
        throw new Exception ("WordNET similiarity for " + one + " and " + other + " failed with this error: "+ res.getError() + "\n" + res.getTrace());
    }
    return res.getScore();
}

/**
 * 
 * @param wordnetword a string of the format lemma#pos#num. E.g. jump#v#1 or house#n#2
 * @return a synset identifier for WS4J
 */
private static Concept getSynset(String wordnetword) {
    String[] parts = StringUtils.split(wordnetword, "#");
    String lemma = parts[0];
    POS mypos = POS.valueOf(parts[1]);
    int index = Integer.parseInt(parts[2]) - 1;
    List<Synset> synsets = WordNetUtil.wordToSynsets(lemma, mypos);
    Synset synset = synsets.get(index);
    String synstring = synset.getSynset();
    return new Concept(synstring, mypos, lemma, synset.getSrc());
}
于 2014-02-18T16:01:13.813 に答える