gpt4 book ai didi

java - 使用 Lucene 过滤带有数字的单词并检索 2-gram 和 1-gram

转载 作者:行者123 更新时间:2023-11-30 07:34:34 25 4
gpt4 key购买 nike

我正在尝试使用 Lucene (5.5.0) 进行一些字符串标记化(无索引)。我需要:

  1. 完全删除包含数字的单词,例如像 log4j 这样的单词应该从字符串中删除
  2. 我想将字符串拆分为单字术语和 2 克术语,例如:“tie a Yellowribbon”应标记为以下术语:“tie”、“yellow”、“ribbon” ”、“黄丝带”。请注意,“tie Yellow”不是一个术语,因为它中间有一个停用词

这些可以用 Lucene 来做吗?如果是这样怎么办?

到目前为止我做了什么:

  • 关于删除包含数字的单词,我遇到了 WordDelimetedFilter,这不好,因为在文档中它显示它将单词 SD500 拆分为“SD”和“500”,而我想完全删除它。我还发现了一个 NumericPayloadTokenFilter ,它看起来很有前途(从名字上看),但我在理解如何使用它时遇到了一些问题
  • 关于 2Grams 和 1Grams,我找到了几个如何做到这一点的示例 here , here并在 NGramTokenizer documentation然而他们似乎都在处理字符而不是我需要的单词

提前致谢

最佳答案

关于要求 1:我不知道任何开箱即用的东西可以做到这一点。 NumericPayloadTokenFilter 绝对不是您所需要的。您可能需要创建自己的 token 过滤器才能执行此操作。

关于要求 2:NGram,用 Lucene 的话说,通常是基于字符的。你想要的是ShingleFilter ,它结合了 token 。它将在停用词处创建带​​状疱疹,例如:tie __ Yellow,其中 _ 是通用填充标记。

关于java - 使用 Lucene 过滤带有数字的单词并检索 2-gram 和 1-gram,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35582022/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com