gpt4 book ai didi

php - 自动从字符串生成摘要

转载 作者:可可西里 更新时间:2023-10-31 23:10:50 26 4
gpt4 key购买 nike

给定字符串输入,我们需要通过将字符串末尾修剪成给定长度来生成非常简单的摘要形式。

这是第一个版本的函数:

// Take an array of strings and generate a summary within a given length
function stringSummaryFromMetadata($inArray,$len=80,$sep='§'){

// Filter out 'false' values
$inputs=array_filter($inArray);

// First try just imploding array
$res=implode($sep,$inputs);

// Check for length
if(mb_strlen($res, 'utf8')>$len){

// Calculate 'z' the fixed width constant
$x=count($inputs);
$z=round(($len-$x)/$x);

// Snip all strings to 'z'
$t1=array();
foreach($inputs as $i) $t1[]=mb_substr($i,0,$z);

// Final answer
$res=implode($sep,$t1);
}

return $res;
}

一个测试:

$test=array(
'Ligula diam risus tempus lorem sit',
'Cursus metus commodo enim odio orci',
'Metus sapien porta sapien fusce sodales',
'king queen'
);
$out=stringSummaryFromMetadata($test);
print $out;

给出:

Ligula diam risus t§Cursus metus commod§Metus sapien porta §king queen

这已经足够好了,但我确信它可以更优化。例如,测试输出小于80个字母,裁剪后字符串末尾有空格,单词被截断等。

在我开始切线并自己动手之前,我想问问社区以前是否有人问过这个问题和/或是否已经存在一个算法。

最佳答案

您可以使用 wordwrap然后计算结果字符串中有多少行。如果超过一个,您的文本就比需要的长,因此您将分隔符附加到第一行的末尾,并丢弃其他行。如果只有一行,则说明您的文本较短,因此未进行任何修剪。

wordwrap 似乎不支持 utf8,但是有一个 comment这显示了一个 utf8_wordwrap 工作函数。

关于php - 自动从字符串生成摘要,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5194170/

26 4 0
文章推荐: css - 有没有办法使用
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com