You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

咨询:PHP实现UTF-8俄语文本词频统计并返回JSON的方案

PHP处理UTF-8俄语文本的单词统计方案

原生PHP实现(无需第三方库)

PHP自带的mbstring扩展(默认已启用)就能完美处理UTF-8编码的俄语西里尔文,完全不需要额外第三方库。核心是用多字节字符串函数替代原生ASCII专属函数,具体步骤如下:

  1. 读取UTF-8文件:直接用file_get_contents读取,确保文件本身是UTF-8编码。
  2. 文本预处理:去除所有非西里尔文的标点、符号(包括省略号),统一转小写避免大小写导致的重复统计。
  3. 分割单词:按空白字符分割文本为单词数组。
  4. 统计词频:用array_count_values快速统计每个单词的出现次数。
  5. 输出JSON:用json_encode输出结果,开启JSON_UNESCAPED_UNICODE参数保留西里尔文原样。

代码示例

<?php
// 读取目标俄语文件
$content = file_get_contents('russian_text.txt');
if (!$content) {
    die("文件读取失败");
}

// 预处理文本:转小写、清理非西里尔字符、合并连续空格
$cleanContent = mb_strtolower($content, 'UTF-8');
$cleanContent = preg_replace('/[^\p{Cyrillic}\d\s]/u', ' ', $cleanContent);
$cleanContent = preg_replace('/\s+/u', ' ', trim($cleanContent));

// 分割为单词数组
$words = preg_split('/\s/u', $cleanContent, -1, PREG_SPLIT_NO_EMPTY);

// 统计词频并输出JSON
$wordCounts = array_count_values($words);
header('Content-Type: application/json; charset=utf-8');
echo json_encode($wordCounts, JSON_UNESCAPED_UNICODE);
?>

第三方库推荐

如果需要更复杂的文本处理(比如词干提取、停用词过滤),可以考虑以下成熟库:

  • Symfony String Component:提供专业的Unicode字符串处理工具,支持多语言文本的大小写转换、分割、清理等操作,完全兼容UTF-8。通过Composer安装:composer require symfony/string
  • PHP Intl扩展:虽为PHP内置扩展,但提供了国际化文本处理的高级功能,比如基于Unicode标准的字符分类、正则匹配,能更精准处理多语言文本细节。

Symfony String示例片段

<?php
require 'vendor/autoload.php';

use Symfony\Component\String\UnicodeString;

$content = file_get_contents('russian_text.txt');
$unicodeStr = new UnicodeString($content);

// 转小写、清理标点、分割单词
$words = $unicodeStr->lower()->replaceMatches('/[^\p{Cyrillic}\d\s]/u', ' ')
    ->trim()->split('/\s+/');

// 手动统计词频
$wordCounts = [];
foreach ($words as $word) {
    $wordStr = (string)$word;
    $wordCounts[$wordStr] = isset($wordCounts[$wordStr]) ? $wordCounts[$wordStr] + 1 : 1;
}

echo json_encode($wordCounts, JSON_UNESCAPED_UNICODE);
?>

内容的提问来源于stack exchange,提问作者Mothilal Nehru

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 21:10:45