gpt4 book ai didi

parsing - Ant : lookahead and lookbehind examples

转载 作者:行者123 更新时间:2023-12-02 04:33:46 24 4
gpt4 key购买 nike

我很难搞清楚如何识别某些文本,前提是它之前和之后都有特定的东西。任务是识别 AND、OR 和 NOT,但如果它们是单词的一部分则不是:

他们应该在这里被识别:

x AND y
(x)AND(y)
NOT x
NOT(x)

但不是这里:

xANDy
abcNOTdef

如果 AND 被空格或括号包围,则 AND 会被识别。如果它位于输入的开头,前面有一个空格,后面跟着一个空格或括号,则不会被识别。

问题是,如果我在 AND 或 NOT 的定义中包含括号,它们就会被消耗,我需要它们是单独的标记。

我可以使用某种先行/后行语法吗?

编辑:

根据评论,这里有一些上下文。问题与此问题有关:Antlr: how to match everything between the other recognized tokens?我的工作解决方案只是识别 AND、OR 等并跳过其他所有内容。然后,在第二次遍历文本时,我手动抓取未被覆盖的字符,并在其上运行一个完全不同的分词器。原因是我需要一个针对此内容的自定义的、特定于人类语言的分词器,这意味着我无法提前描述什么是 ID。每种人类语言都是不同的。我想分阶段组合单个查询语言分词器,然后将人类语言分词器应用到剩下的部分。

最佳答案

ANTLR 不是完成此任务的正确工具。普通解析器是为特定语言设计的,即由在解析器创建时已知的元素组成的一组句子。有一些方法可以使它更灵活,例如通过在谓词中使用运行时函数来识别语法中未定义的词,但这有其他(负面)影响。

你应该考虑的是NLP用于处理自然语言的不同方法。它不仅仅是跳过两个已知标记之间的内容。

关于parsing - Ant : lookahead and lookbehind examples,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45947588/

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