gpt4 book ai didi

php - 使用正则表达式和 PHP 将段落拆分为句子

转载 作者:行者123 更新时间:2023-12-03 01:07:13 24 4
gpt4 key购买 nike

我是一个正则表达式菜鸟,试图将段落分成句子。在我的语言中,我们在句子中间使用相当多的缩写(例如:bl.a.),所以我得出的结论是,我需要做的是寻找标点符号,后面跟着一个空格,然后是一个以大写字母开头的单词,例如:

[sentence1]...anymore. However...[sentence2]

这样的段落:

Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang. Det er ikke en bureaukratisk lovtekst blandt så mange andre.

应以此输出结束:

[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v. i forbindelse med afskedigelser af større omfang.
[1] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.

而不是这个:

[0] => Der er en lang og bevæget forhistorie bag lov om varsling m.v. 
[1] => i forbindelse med afskedigelser af større omfang.
[2] => Det er ikke en bureaukratisk lovtekst blandt så mange andre.

我找到了一个解决方案,可以使用积极的后向功能来完成第一部分:

$regexp = (?<=[.!?] | [.!?][\'"]);

然后

$sentences = preg_split($regexp, $paragraph, -1, PREG_SPLIT_NO_EMPTY);

这是一个很好的起点,但由于缩写太多, split 了太多次。

我尝试过这样做:

(?<=[.!?]\s[A-Z] | [.!?][\'"])

针对其中任何一个出现的情况

. or ! or ?

后跟一个空格和一个大写字母,但这不起作用。

有谁知道是否有办法完成我想做的事情?

最佳答案

用于分割句子的 Unicode RegExp:(?<=[.?!;])\s+(?=\p{Lu})

此处解释了演示:http://regex101.com/r/iR7cC8

关于php - 使用正则表达式和 PHP 将段落拆分为句子,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15853097/

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