我有一个perl
代码段来从输入文本生成解析树,但它产生错误格式化的解析树。我需要根据数量生成(
)
和S
括号
后缀和前缀和词干。
代码和GT;
use strict;
use warnings qw/ all FATAL /;
use List::Util 'reduce';
# our ($a, $b);
while ( <> ) {
chomp;
my ($word, $ss) = split ' ', $_, 2;
my @ss = split /\s/, $ss;
my $str = reduce { sprintf 'S (%s) (%s)', $a, $b } @ss;
printf "%s (%s)\n", $word, $str;
}
输入
(অংশগ্রহণও) (অংশ:stem গ্রহণ:suffix ও:suffix )
(অংশজুড়েই) (অংশ:stem জুড়ে:suffix ই:suffix )
(অংশত্ব) (অংশ:stem ত্ব:suffix )
(অংশসহ) (অংশ:stem সহ:suffix )
(অংশীদারত্বে) (অংশ:stem ী:suffix দার:suffix ত্ব:suffix ে:suffix )
(অকল্পনীয়) (অ:prefix কল্প:suffix নীয়:suffix )
(অকাণ্ড) (অ:prefix কাণ্ড:suffix )
(অক্টোবর) (অক্টোবর)
(অক্টোবরে) (অক্টোবর:stem ে:suffix )
(অখাদ্যে) (অ:prefix খাদ্য:suffix ে:suffix )
(অগণিত) (অ:prefix গণিত:suffix )
(অগ্নিগোলা) (অগ্নি:stem গোলা:suffix )
(অগ্নিনির্বাপণের) (অগ্নি:stem নির্বাপণ:suffix ের:suffix )
(অগ্নিপরীক্ষা) (অগ্নি:stem পরীক্ষা:suffix )
(অগ্নিসংযোগসহ) (অগ্নি:stem সংযোগ:suffix সহ:suffix )
预期输出&gt;
অগ্নিসংযোগসহ (S(S(অগ্নি:stem) (সংযোগ:suffix)) (সহ:suffix ))
它会产生错误的输出。在生成的输出中,您可以看到许多错误,例如:()
(অংশ) ((অংশ))
(অংশগ্রহণও) (S (S (S ((অংশ:stem) (গ্রহণ:suffix)) (ও:suffix)) ()))
(অংশজুড়েই) (S (S (S ((অংশ:stem) (জুড়ে:suffix)) (ই:suffix)) ()))
(অংশত্ব) (S (S ((অংশ:stem) (ত্ব:suffix)) ()))
(অংশসহ) (S (S ((অংশ:stem) (সহ:suffix)) ()))
(অংশীদারত্বে) (S (S (S (S (S ((অংশ:stem) (ী:suffix)) (দার:suffix)) (ত্ব:suffix)) (ে:suffix)) ()))
(অকল্পনীয়) (S (S (S ((অ:prefix) (কল্প:suffix)) (নীয়:suffix)) ()))
(অকাণ্ড) (S (S ((অ:prefix) (কাণ্ড:suffix)) ()))
(অক্টোবর) ((অক্টোবর))
(অক্টোবরে) (S (S ((অক্টোবর:stem) (ে:suffix)) ()))
(অখাদ্যে) (S (S (S ((অ:prefix) (খাদ্য:suffix)) (ে:suffix)) ()))
(অগণিত) (S (S ((অ:prefix) (গণিত:suffix)) ()))
如何以预期格式生成结果?
答案 0 :(得分:1)
我认为你错误地分割了原始行。我知道一点孟加拉语,但我不知道你正在处理的文件的语法
我认为这就像从源数据中提取所有括号分隔的子串一样简单,就像这样
use strict;
use warnings 'all';
use List::Util 'reduce';
while ( <> ) {
my ($word, $ss) = / \( ( [^()]* ) \) /gx;
my @ss = split ' ', $ss;
my $str = reduce { sprintf 'S (%s) (%s)', $a, $b } @ss;
printf "%s (%s)\n", $word, $str;
}
অংশগ্রহণও (S (S (অংশ:stem) (গ্রহণ:suffix)) (ও:suffix))
অংশজুড়েই (S (S (অংশ:stem) (জুড়ে:suffix)) (ই:suffix))
অংশত্ব (S (অংশ:stem) (ত্ব:suffix))
অংশসহ (S (অংশ:stem) (সহ:suffix))
অংশীদারত্বে (S (S (S (S (অংশ:stem) (ী:suffix)) (দার:suffix)) (ত্ব:suffix)) (ে:suffix))
অকল্পনীয় (S (S (অ:prefix) (কল্প:suffix)) (নীয়:suffix))
অকাণ্ড (S (অ:prefix) (কাণ্ড:suffix))
অক্টোবর (অক্টোবর)
অক্টোবরে (S (অক্টোবর:stem) (ে:suffix))
অখাদ্যে (S (S (অ:prefix) (খাদ্য:suffix)) (ে:suffix))
অগণিত (S (অ:prefix) (গণিত:suffix))
অগ্নিগোলা (S (অগ্নি:stem) (গোলা:suffix))
অগ্নিনির্বাপণের (S (S (অগ্নি:stem) (নির্বাপণ:suffix)) (ের:suffix))
অগ্নিপরীক্ষা (S (অগ্নি:stem) (পরীক্ষা:suffix))
অগ্নিসংযোগসহ (S (S (অগ্নি:stem) (সংযোগ:suffix)) (সহ:suffix))