当前位置: 首页 > 知识库问答 >
问题:

不标记某些单词/模式的标准分析器

舒阳州
2023-03-14

所以,如果假设有一条这样的线:

> Mar 14 20:22:41 subdomain.mydomain.colo postfix/smtpd[16862]: NOQUEUE:
> reject: RCPT from unknown[1.2.3.4]: 450 4.7.1 Client host rejected:
> cannot find your reverse hostname, [5.6.7.8]; from=<erp@misms.net.in>
> to=<a@domain1.com> proto=ESMTP helo=<a.domain.net> also
> from=<>

使用标准标记器几乎没有问题。

    null

PS:我在ES邮件列表中看过这篇文章,但它不能与电子邮件地址或主机名一起工作,因为我不能有一个所有电子邮件地址/主机名的详尽列表。所以,我希望你能理解我的要求。

共有1个答案

陆星文
2023-03-14

Lucene4.x中的StandardAnalyzer有一些重大变化。与旧的逻辑不同,它现在实现了UAX#29。

旧样式的StandardAnalyzer已被重命名为ClassicAnalyzer,它使用ClassicTokenizer,它可以完成您想要的大部分工作(它被显式设计为将电子邮件收件人和主机名作为单个令牌处理)。

但是,我认为它不会帮助您将from=<>解析为令牌。为此,我看到了几个选择:

    null

考虑到您想要处理的特殊情况的明显简单性,我可能会使用第一个选项,因为它应该相当容易,而第二个选项可能更麻烦,而不是值得的。

 类似资料:
  • 我们正在用搜索词字符串构建bool查询来搜索Lucene索引。我希望使用标准分析器分析这些字符串,我们使用的分析器用于索引。例如,应该分解为,,,因为Lucene文档声明连字符会导致数字保持在一起,但单词会被标记化。最好的方法是什么? 目前,我正在通过QueryParser运行我的搜索项字符串。 这样做的问题是插入了引号。例如,变为,,不会返回任何内容,因为Lucene会将标记为和. 我绝对不想通

  • 有没有一种方法可以在文本中标记一些单词,只是为了进一步的编程处理,而不是为了任何visuell之类的东西?假设我有以下文本: Lorem ipsum dolor sit amet,consetetur sadipscing elitr,sed diam nonumy eirmod tempor invidunt ut laboure et dolore magna aliquyam erat,se

  • 在某些语言(例如越南语)中,一些词汇由多个单词组成。因此,一些包含多个单词的标记可以被标记,而不仅仅是使用空格。 我有以下意见: 预期产出: 训练数据我_连接需要在一个令牌中粘在一起的单词: 这是我用来训练的命令行 带参数 但是,输出不能在一个标记中连接多个单词,但它被空格拆分。 我运行以获取输出的命令 我应该如何处理我们的配置参数中的训练数据,以训练每个标记都有多个单词的标记器?

  • 几周前,我问了一个关于我的ANTLR语法的问题(我的简单ANTLR语法不像预期的那样工作)。自从问了这个问题后,我做了更多的挖掘和调试,并找出了大部分的问题。不过,我只剩下一个问题。 我生成的解析器代码不会在处理的文本的某个特定部分中提取无效标记。lexer可以正确地将内容分解为令牌,但在某些情况下,解析器不会删除无效的令牌。特别是,当无效令牌位于短语“a和”b“的末尾时,解析器会忽略它--就像令

  • 插值问题当我通过角度插值指定一些html标记(如按钮)或自定义标记时,它不会显示 在组件中。html文件

  • 我是NLP新手,我遇到了OpenNLP。根据我的理解,意味着将文本分割成单词和句子。单词通常用空格隔开,但并非所有空格都相等。例如,洛杉矶在一个人的思想中不考虑空白。但每当我运行OpenNLP标记器时,它都会为洛杉矶创建两个不同的标记:Los 以下是输出: 我在线测试了其他一些标记化器,它们产生相同的输出。如果不是标记化,识别这两个词属于一起的过程是什么?