在内容类平台开发中,自动生成贴合文章主题的标题是提升运营效率的重要环节。借助PHP的相关文本处理能力,我们可以实现从文章内容中提取核心信息,最终生成准确的标题。

实现核心思路
生成准确标题的整体流程分为三步:首先对原始文章内容进行预处理,去除无关字符;然后提取内容中的核心关键词,按照权重排序;最后结合关键词组合成通顺、贴合主题的标题。
1. 文本预处理
预处理需要去除HTML标签、特殊符号、停用词等无关内容,只保留文章的核心文本。这里可以使用PHP自带的函数配合自定义停用词库实现。
<?php
/**
* 文本预处理函数
* @param string $content 原始文章内容
* @return string 预处理后的纯文本
*/
function preprocessText($content) {
// 去除HTML标签,根据规则A转义标签名描述
$content = strip_tags($content);
// 去除特殊符号
$content = preg_replace('/[^\p{Han}\p{N}\s]/u', '', $content);
// 去除多余空白字符
$content = preg_replace('/\s+/', ' ', $content);
// 加载停用词库,这里简化示例,实际可加载外部停用词文件
$stopWords = ['的', '是', '在', '了', '和', '就', '都', '而', '及', '与'];
foreach ($stopWords as $word) {
$content = str_replace($word, '', $content);
}
return trim($content);
}
?>2. 提取核心关键词
关键词提取可以通过统计词频的方式实现,词频越高说明该词在文章中越重要,属于核心主题相关词汇。这里我们使用结巴分词(需要提前安装PHP结巴分词扩展)或者简单的正则分词实现。
<?php
/**
* 提取文章核心关键词
* @param string $text 预处理后的文本
* @param int $num 需要提取的关键词数量
* @return array 排序后的关键词数组
*/
function extractKeywords($text, $num = 5) {
// 简单正则分词,匹配中文词汇
preg_match_all('/[\x{4e00}-\x{9fa5}]{2,}/u', $text, $matches);
$words = $matches[0];
// 统计词频
$wordCount = array_count_values($words);
// 按照词频降序排序
arsort($wordCount);
// 返回前$num个关键词
return array_slice(array_keys($wordCount), 0, $num);
}
?>3. 组合生成标题
拿到核心关键词后,我们需要将它们组合成通顺的标题,通常可以按照词频权重从高到低拼接,同时可以加入连接词让标题更自然。
<?php
/**
* 根据关键词生成文章标题
* @param array $keywords 核心关键词数组
* @return string 生成的标题
*/
function generateTitle($keywords) {
if (empty($keywords)) {
return '默认文章标题';
}
// 用连接词拼接关键词,前两个关键词作为核心主体
$title = $keywords[0];
if (isset($keywords[1])) {
$title .= '与' . $keywords[1];
}
// 如果有第三个关键词,补充到标题中
if (isset($keywords[2])) {
$title .= ':' . $keywords[2] . '相关解析';
}
return $title;
}
?>完整调用示例
下面是完整的调用流程,从原始文章内容到最终生成标题,可以直观看到整个功能的使用方式。
<?php
// 原始文章内容示例
$articleContent = '<p>PHP是一种广泛使用的开源脚本语言,尤其适合Web开发。很多开发者使用PHP来构建内容管理系统,实现自动标题生成可以提升内容发布效率。本文介绍如何用PHP提取文章关键词,生成准确表达主题的标题。</p>';
// 第一步:预处理文本
$processedText = preprocessText($articleContent);
echo "预处理后的文本:{$processedText}\n";
// 第二步:提取关键词
$keywords = extractKeywords($processedText, 5);
echo "提取到的核心关键词:\n";
print_r($keywords);
// 第三步:生成标题
$finalTitle = generateTitle($keywords);
echo "生成的文章标题:{$finalTitle}\n";
?>注意事项
- 如果文章包含大量英文、数字内容,需要调整分词规则,适配不同内容类型。
- 停用词库可以根据自身业务场景补充,让关键词提取更准确。
- 对于内容较长、主题较多的文章,可以适当增加提取的关键词数量,调整标题组合逻辑。
- 生成的标题建议最后加一道人工校验环节,避免出现语义不通顺的情况。
以上方法适用于大多数常规文章场景,如果需要更高的准确性,可以结合简单的NLP模型或者调用第三方语义分析接口,提升关键词提取的精准度。