1

我正在构建一个 Tokenizer,它将获取文本并在空格处拆分并添加句子和段落标记(如果您有兴趣,这里有一个与此相关的问题)但除了运行它之外,我还希望能够同时运行 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 回答