User:Jimregan/Misc

From Apertium
< User:Jimregan
Revision as of 18:33, 10 October 2007 by Jimregan (talk | contribs) (Some perl, a list of words that correspond to implemented paradigms...)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

stem-splitter.pl

#!/usr/bin/perl

use warnings;
use strict;

use String::Diff qw/diff_fully/;

while(<>)
{
	s/,\W+$//;
	my $endings = $_;
	my @a = split/, /;
	my $stem = find_stem(@a);
	$endings =~ s/$stem//g;
	print $stem; 
	if ($endings =~ /owie/) {print ":n.m1:";}
	else {print ":n.??:";}
	print join(',', sort split/, /, $endings), "\n";
}

sub find_stem()
{
	my @in = @_;
	my ($r, $l, $cur, $last);
	my $i=0;

	while ($i<($#in))
	{
		($r, $l) = diff_fully($in[$i], $in[$i+1]);
	
		$cur = $r->[0]->[1];
		$last = $cur if (!$last);
		if ($cur ne $last) {
			($r, $l) = diff_fully($last, $cur);
			$last = $r->[0]->[1];
		} 
	$i++;
	}
	return $last;
}
hotel, hoteli, hotelowi, hotelem, hotelu, hotelach, hotelami, hotelom, hotelów, hotele, 
pies, psa, psie, psem, psu, psy, psach, psami, psom, psów, 
stół, stole, stołowi, stołem, stołu, stoły, stołach, stołami, stołom, stołów, 
gołąb, gołębie, gołębiach, gołębi, gołębiami, gołębiom, gołębia, gołębiem, gołębiowi, gołębiu, 
kot, kota, kocie, kotowi, kotem, kotach, kotami, kotom, kotów, koty, 
dzień, dnia, dniowi, dniem, dniu, dniach, dniami, dni, dniom, dnie, 
tydzień, tygodni, tygodnia, tygodniach, tygodniami, tygodnie, tygodniem, tygodniom, tygodniowi, tygodniu, 
miesiąc, miesiąca, miesiącowi, miesiącem, miesiącu, miesiącach, miesiącami, miesiącom, miesięcy, miesiące, 
student, studenta, studencie, studentowi, studentem, studenci, studentach, studentami, studentom, studenty, studentów, 
brat, braci, braty, bracia, braciach, bracie, braciom, braćmi, brata, bratem, bratu,