Ich habe morphologischen Parse-Baum in der folgenden Weise, wo Präfix, Stiel und Suffix sind Etiketten und andere Teil ist die Änderung Ich muss die Reihenfolge auf eine Weise, dass Präfix, Stiel und Suffix am Anfang. Zum Beispiel muss (S (un:prefix) (sold:stem))
in (S (prefix:un) (stem:sold))
konvertiert werden. Ähnlich (S (S (in:prefix) (decipher:stem)) (able:suffix))
bis (S (S (prefix:in) (stem:decipher)) (suffix:able))
. Es ist auch wichtig, die Struktur auch zu behalten.Umordnen von Text innerhalb der Klammern
Mein Perl-Code auch:
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", $str, $word;
}
Es ist nicht die beabsichtigte Aufgabe. Was ist das Problem dort?
'$ str = ~ s/\ (([^ \ (\)] *) \: ([^ \ (\)] *) \)/\ ($ 2 \: $ 1 \)/g; ' – ssr1012
' perl -pi -e 's/\ (([^ (] *): ([^)] *) \)/\ ($ 2: $ 1 \)/g 'input.txt' wo input.txt ist deine Datei mit diesen Zeilen – yonyon100