A teraz czas na nowy skrypcik przetwarzający słownik. Tym razem o niebo prostszy, bo rekord do zbadania o wiele banalniejszy. Postanowiłem poszukać słów, które mają najwięcej spółgłosek w stosunku do wszystkich liter (ignoruję słowa z samymi spółgłoskami, żeby nie zachwycić się takimi cudami jak w, z, hmm, pst).
#!/usr/bin/perl
use utf8;
use diagnostics -trace;
use strict;
use warnings FATAL => 'all';
use feature qw(say);
sub get_ratio($) {
my ($word) = @_;
my $consonants = grep { $_ !~ m/[aeiouyąęó]/ } map { substr($word, $_, 1) } 0 .. length($word) - 1;
return $consonants / length($word);
}
binmode(STDOUT, ":utf8");
open (FILE, "<:encoding(UTF-8)", "slowa-pl.txt");
my $record = 0;
while (my $line = <FILE>) {
$line =~ s/\r?\n//;
my $result = get_ratio($line);
say "$result: $line" and $record = $result if $result >= $record && $result < 1;
}
Wyniki nie mniej ciekawe niż poprzednio, bo mamy w naszym języku niebanalne słowa, dla których współczynnik spółgłoski/litery wynosi 8/9:chrząszcz, chrzęszcz, przechrzt, schińszcz, schlaszcz, schluszcz, schłoszcz, szklarstwRekordzista samogłoskowy jest jeden: oiomie.
Tradycyjnie to samo zrobiłem dla innych języków.
- Spółgłoskowce niemieckie: Borschtsch, Schmartsch, Schwintsch, Zschetzsch, plantschst, schnarchst, schrumpfst
- Spółgłoskowce angielskie: strengths, tsktsking
- Samogłoskowce są nudne, nic bardziej ekscytujące niż audio czy queue się nie znalazło.
Co w następnej edycji Zabaw ze słownikiem? O tym czytelnicy dowiedzą się już niebawem!
tsktsking? WTF?
OdpowiedzUsuńDobre pytanie :P Chętnie się dowiem, co to, bo na razie wiem tylko, że ktoś nagrał kiedyś taką płytę i że słowo jest w słowniku scrabble'owym :)
UsuńA propo takich wyszukiwań - może znasz, a może nie, ale reklamuję: http://nkjp.pl/poliqarp/. Składnia zapytań jest rozbudowana (patrz pomoc), a operujesz na tekście żywym, a nie słownikowym. Może Cię to zainspiruje do innych poszukiwań :)
OdpowiedzUsuńA dziękuję :) Kojarzę, ale do tej pory się tym nie bawiłem. Podejrzewam, że jak już się zabawię, to będzie tu coś na ten temat!
Usuń