2

StanfordcoreNLPを使用して文を単語に分割しようとしています。アポストロフィを含む単語に問題があります。

たとえば、「私は24歳です。

このように分割します:[I] ['m] [24] [years] [old]

Stanford coreNLPを使用してこのように分割することは可能ですか?:[私は][24][年][古い]

tokenize.whitespaceを使用してみましたが、次のような他の句読点では分割されません:'?' と '、'

4

3 に答える 3

4

アポストロフィで分割されたトークンを再連結するだけの場合はどうでしょうか。

Javaでの実装は次のとおりです。

public static List<String> tokenize(String s) {
    PTBTokenizer<CoreLabel> ptbt = new PTBTokenizer<CoreLabel>(
            new StringReader(s), new CoreLabelTokenFactory(), "");
    List<String> sentence = new ArrayList<String>();
    StringBuilder sb = new StringBuilder();
    for (CoreLabel label; ptbt.hasNext();) {
        label = ptbt.next();
        String word = label.word();
        if (word.startsWith("'")) {
            sb.append(word);
        } else {
            if (sb.length() > 0)
                sentence.add(sb.toString());
            sb = new StringBuilder();
            sb.append(word);
        }
    }
    if (sb.length() > 0)
        sentence.add(sb.toString());
    return sentence;
}

public static void main(String[] args) {
    System.out.println(tokenize("I'm 24 years old."));  // [I'm, 24, years, old, .]
}
于 2012-12-28T02:51:03.050 に答える
4

現在、いいえ。後続のStanfordCoreNLP処理ツールはすべて、収縮を2つのトークンに分割するPenn Treebankトークン化を使用します(「I'm」を2つの「単語」にすることで「Iam」の誘導型と見なします[I] ['m]) 。別の種類のトークン化が必要なようです。

トークン化のオプションはいくつかありますが、これを変更するオプションはありません。後続のツール(POSタガーやパーサーなど)は、収縮が分割されないとうまく機能しません。このようなオプションをトークナイザーに追加して、REDAUXおよびSREDAUXの末尾のコンテキストの処理を変更(削除)することができます。

@dhgが示唆するように、後処理を介して収縮に参加することもできますが、引用符に参加しないように、「if」でもう少し慎重に参加する必要があります。

于 2012-12-28T14:07:05.470 に答える
2

所有格と縮約があります。あなたの例は縮約です。アポストロフィを探すだけでは、2つの違いはわかりません。「これはピートの答えです。あなたはそれを知っていたと確信しています。」これらの2つの文には、それぞれの場合が1つずつあります。

品詞タグで違いがわかります。ツリー外科医の構文を使用すると、それらを組み立てたり、変更したりすることができます。構文は次のとおりです:http://nlp.stanford.edu/nlp/javadoc/javanlp/edu/stanford/nlp/trees/tregex/tsurgeon/package-summary.html。私は接続詞でそれらを分割するのが好きなので、木の外科医がNPグループを引き離すのに本当に役立つことを発見しました。

あるいは、'mは"am"に語幹を付けますか?それらを探して、そのステムタグを探し、単にその値に戻すことをお勧めします。ステミングは、機械学習と分析の他の多くの側面で非常に役立ちます。

于 2012-12-28T18:17:19.120 に答える