gpt4 book ai didi

java - 将引号替换为句子

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

我试图通过删除非拉丁字符 + [!?., ] 来降低在线文本的一些复杂性。大多数字符都可以毫无问题地删除,但对于其中一些字符,我需要特定的规则:

一对( and ),一对"(引号)或者一对*应该如果其中包含两个以上的单词,则将其中的任何文本转换为句子。通过转换为句子,我只想在末尾添加一个句号。例如:

but *after* I came up with it, I searched and...

but after I came up with it, I searched and...

这里我只是想删除 *,而不是:

 *buys airplane ticket* IM COMING FOR YOU

 buys airplane ticket. IM COMING FOR YOU

因此,在第一个示例中,作者只是强调了该句子中的一个词,在第二个示例中,作者描述了一个 Action ,该 Action 本身也可能是一个句子。这与引号的作用类似,其中一个词通常是某种强调或讽刺,而多个是引号。

有没有办法在正则表达式(Java)中做到这一点?

编辑:所以我的一般方法需要 2 种模式,每种情况都包括括号、引号和 *。第一步是通过在 \*((\w+ )+\w+)\* 上运行 replace 到 $1. 来处理多词,然后替换所有 * 什么都没有。这可行,但我需要 6 个正则表达式调用。有没有更好的办法?

最佳答案

标准 Java 库没有关于完整英语短语是什么样子的内置概念(将空格与字母或标点符号区分开来能帮到你多少)。此外,

  • 没有正则表达式可以正确解析英文。正则表达式不能很好地嵌套。
  • 您可能会幸运地使用语法检查器,例如内置于普通文字处理软件中的那些。但是,它们的错误率仍然很高。
  • 虽然可能存在实现稳健解析的 NLP Java 库,但它们仍然无法理解上下文,并且经常失败。

所以不,你不能用 Java 或任何其他编程语言来做到这一点(除非你有大量的资源、NLP 经验和训练语料库来构建)——除非你显着放宽检测“是否一个字符序列可以是一个独立的英文句子"

关于java - 将引号替换为句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35722289/

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