Changeset 4062
- Timestamp:
- 01/05/08 22:34:33 (5 years ago)
- Location:
- lang/perl/Mezasi/trunk/lib/Mezasi
- Files:
-
- 2 modified
-
Dictionary.pm (modified) (4 diffs)
-
Freq.pm (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
lang/perl/Mezasi/trunk/lib/Mezasi/Dictionary.pm
r4029 r4062 116 116 $result .= "\n"; 117 117 118 %{$self->{occur}} = map { ( $_ => $self->{occur}->{$_} ) } grep { not ( scalar( @{$self->{occur}->{$_}} ) == 0) } keys %{$self->{occur}};118 %{$self->{occur}} = map { ( $_ => $self->{occur}->{$_} ) } grep { $self->{occur}->{$_} && ( not ( scalar( @{$self->{occur}->{$_}} ) == 0 ) ) } keys %{$self->{occur}}; 119 119 120 120 while( my ( $key , $value ) = each %{$self->{occur}} ) { 121 $self->{oocur}->{$key} = [ map { $value->[$_] } (-100..-1) ] if( scalar( @{$value} ) > 100 );121 $self->{oocur}->{$key} = [ map { $value->[$_] } (-100..-1) ] if( $value && scalar( @{$value} ) > 100 ); 122 122 } 123 123 … … 224 224 225 225 my @new_terms = Mezasi::Freq->extract_terms( $lines, 30 ); 226 226 227 227 for my $term ( @new_terms ) { 228 228 $self->add_term($term); … … 239 239 240 240 for my $term (@words) { 241 if( not $self->{occur}->{$term} || $num > $self->{occur}->{$term}->{-1}) {241 if( not $self->{occur}->{$term} || $num > ( $self->{occur}->{$term}->[-1] || 0 ) ) { 242 242 push @{$self->{occur}->{$term}} , $num; 243 243 } … … 311 311 my ($self, $word ) = @_; 312 312 313 if( not $self->{rel}->{$word} || ($self->{rel}->{$word}->{sum}||0) == 0) {313 if( ( not $self->{rel}->{$word} ) || ( not $self->{rel}->{$word}->{sum} ) || ( $self->{rel}->{$word}->{sum} || 0 ) == 0 ) { 314 314 return 0; 315 315 } -
lang/perl/Mezasi/trunk/lib/Mezasi/Freq.pm
r4037 r4062 3 3 use warnings; 4 4 use utf8; 5 use Data::Dumper; 5 6 6 7 sub extract_terms { … … 14 15 15 16 return bless { 16 buf => $buf || [],17 buf => ( $buf && ref $buf eq 'ARRAY' ) ? join("\0", @$buf ) : q{ }, 17 18 }, $class; 18 19 } … … 22 23 23 24 my @terms = @{$self->extract_terms_sub($limit)}; 25 24 26 # before: [["hello world", 1]] 25 27 # after: [["dlrow olleh", 1]] … … 42 44 push @terms2, $terms[-1] if @terms > 0 ; 43 45 44 return map { join '',reverse @{[split //, $_->[0]]} } @terms2;46 return map { join '',reverse @{[split //, $_->[0]]} } @terms2 ; 45 47 46 48 } … … 50 52 $num ||= 1; 51 53 my $h = $self->freq($str); 54 52 55 my $flag = ( scalar( keys %$h ) <= 4 ) ? 1 : 0 ; 53 56 … … 74 77 75 78 if( scalar( @{[split(//,$str || '')]} ) == 0 ) { 76 for my $buf (@{$self->{buf}}) { 77 if( $buf =~ /([!-~])[!-~]*|([ァ-ヴ])[ァ-ヴー]*|([^ー\0])/i ) { 78 $freq->{ $1 || $2 || $3 } += 1; 79 } 79 while( $self->{buf} =~ /([!-~])[!-~]*|([ァ-ヴ])[ァ-ヴー]*|([^ー\0])/gi ) { 80 $freq->{ $1 || $2 || $3 } += 1; 80 81 } 81 82 } 82 83 else { 83 for my $buf (@{$self->{buf}}) { 84 { 85 if( $buf =~ /($str)[^\0]?/io ) { 86 $freq->{$1} += 1; 87 } 88 } 84 while( $self->{buf} =~ /($str)[^\n]?/gio ) { 85 $freq->{$1} += 1; 89 86 } 90 87 }
![(please configure the [header_logo] section in trac.ini)](/share/chrome/site/your_project_logo.png)