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

如何使用Perl拆分含特殊符号的词典文本为多句以增强可搜索性?

用Perl拆分词典语句的实现方案

完全可以实现。这类需求本质是提取文本中的多组可选替换项,再生成所有可能的笛卡尔积组合。针对你给出的格式,具体实现思路和代码如下:

核心思路

原语句包含两组可选内容:

  1. 第一组:an absolute / a deadly(被「和[]包裹的可选对)
  2. 第二组:laziness / greasy food(同样是「和[]包裹的可选对)
    我们需要先通过正则提取这两组的所有选项,再将两组选项做笛卡尔积组合,拼接成完整语句。

Perl 实现代码

use strict;
use warnings;

my $input = 'I have 「an absolute [a deadly] abhorrence of 「laziness [greasy food].';

# 提取第一组可选内容(an absolute / a deadly)
if ($input =~ /「([^\[]+)\[([^\]]+)\]/) {
    my @opts1 = ($1, $2);
    # 清理选项中的前后空格
    s/^\s+|\s+$//g for @opts1;
    
    # 提取第二组可选内容(laziness / greasy food)
    if ($input =~ /of 「([^\[]+)\[([^\]]+)\]/) {
        my @opts2 = ($1, $2);
        s/^\s+|\s+$//g for @opts2;
        
        # 生成所有组合
        foreach my $opt1 (@opts1) {
            foreach my $opt2 (@opts2) {
                my $sentence = "I have $opt1 abhorrence of $opt2.";
                print "$sentence\n";
            }
        }
    }
}

运行这段代码后,会输出你需要的4条语句:

I have an absolute abhorrence of laziness.
I have an absolute abhorrence of greasy food.
I have a deadly abhorrence of laziness.
I have a deadly abhorrence of greasy food.

对应中文翻译

  • 原输入语句:我对懒惰(油腻食物)抱有极度的(强烈的)憎恶。
  • 拆分后的目标语句:
    • 我对懒惰抱有极度的憎恶。
    • 我对油腻食物抱有极度的憎恶。
    • 我对懒惰抱有强烈的憎恶。
    • 我对油腻食物抱有强烈的憎恶。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.01 07:02:34