1

テキストを取得して空白で分割し、文と段落のトークンを追加するトークナイザーを構築しています(興味がある場合は、これに関連する質問があります)が、これを実行することに加えて、次のこともできるようにしたいと思いますStandardTokenizer (および StandardFilter) も実行して、単語のよりスマートなトークン化を取得します。ここに一種の catch22 があります。

  • 最初に StandardTokenizer (および場合によっては StandardFilter) を実行すると、よりスマートなトークン化が得られますが、文/段落の検出の基礎となる句読点/空白/大文字がありません。
  • 最初に Tokenizer を使用すると、文と段落に必要なトークンを含めることができますが、StandardTokenizer のスマート トークン化の恩恵を受けることはできず、StandardTokenizer が既に実行されている必要がある StandardFilter の恩恵を受けることはできません。 .

これを回避するには、どのパターンを使用する必要がありますか? 最も実際的には、StandardTokenizer の TokenStream を文と段落のマーカーで拡張したいだけです。より一般的には、文/段落トークナイザーを他のトークナイザーと一緒に使用したいかもしれません。

4

1 に答える 1

1

StandardTokenizer の文法を実際に変更し、カスタム要件に合わせて Tokenizer を生成できます。これは、JFlex/Java CC を使用した新しい TokenStream API 用のカスタム トークナイザーの生成で行ったことです。

于 2012-05-16T12:13:41.443 に答える