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

Perl如何统计相邻词对出现频次并将结果输出到文件

Perl相邻词对统计与文件输出实现方案

你原有的相邻词对匹配正则逻辑可以正常工作,只需要补充哈希计数、文件写入两个模块就能满足需求,完整可直接运行的代码如下:

use strict;
use warnings;

# 待处理文本,若需要处理整个文本文件,可替换为文件读取逻辑,将所有待处理内容存入该变量即可
my $content = "The quick brown fox jumps over the lazy dog. The quick brown fox runs fast. The quick brown fox eats meat.";
# 初始化存储词对计数的哈希
my %wordpair_count;

# 遍历匹配所有相邻词对,同步完成计数
while ($content =~ /(\w+)\s(?=(\w+\b))/g) {
    my $current_pair = "$1 $2";
    $wordpair_count{$current_pair} += 1;
}

# 打开输出文件,文件名为wordpair_count.txt,和脚本存放在同一目录
open(my $out_handle, '>', 'wordpair_count.txt') or die "打开输出文件失败: $!";
# 遍历统计结果,同时输出到控制台和写入文件
for my $pair (keys %wordpair_count) {
    my $result_line = "$pair: $wordpair_count{$pair}\n";
    print $result_line;
    print $out_handle $result_line;
}
# 关闭文件句柄
close($out_handle);

关键说明

  • 脚本开头加入use strict;和use warnings;是Perl开发的通用好习惯,能自动帮你排查变量未定义、拼写错误等常见低级问题,适合初学者使用。
  • 如果你需要处理外部文本文件而非固定字符串,只需要加几行读取文件的代码,把所有文本内容拼接到$content变量中即可,匹配和计数逻辑不需要修改。
  • 代码中open操作后附带的die是错误处理逻辑:如果因为权限不足、路径错误等原因无法创建/写入输出文件,会直接在控制台打印明确错误信息,不会出现静默运行、没有输出的问题。
  • 运行脚本后,同目录下生成的wordpair_count.txt内容和控制台打印内容完全一致,格式为你预期的「词对: 出现次数」,比如上述示例代码运行后,The quick对应的统计值就是3,和你给出的期望输出示例匹配。

内容的提问来源于stack exchange,提问作者7akeoverforce

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 17:36:28