|
/Users/cpanrun/depot/main/contrib-patched/perl/CPAN/src/Lingua-EN-Segmenter/blib/html/site/lib/Lingua/EN/Segmenter.html |
See synopsis.</pre> <p> </p> <hr /> <h1><a name=``extending''>EXTENDING</a></h1> <p><a href=``../../../../site/lib/Lingua/EN/Segmenter/TextTiling.html''>the Lingua::EN::Segmenter::TextTiling manpage</a> inherits from this module. If you want to segment text using a method other than text tiling, create a different module under Lingua::EN::Segmenter::* and inherit from this module.</p> <p> </p> <hr /> <h1><a name=``authors''>AUTHOR/a</h1> <pre>
David James <splice@cpan.org> <pre>
L<Lingua::EN::Segmenter::TextTiling>, L<Lingua::EN::Segmenter::Baseline>, L<Lingua::EN::Segmenter::Evaluator>, L<<a href=``http://www.cs.toronto.edu/~james>''>http://www.cs.toronto.edu/~james></pre> <p> </p> <hr /> <h1><a name=``license''>LICENS&LICENS;/a></h1> <pre> Copyright (c) 2002 David James All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
=cut</pre>
<p>$VERSION = 0.10;
@EXPORT_OK = qw(
set_tokens_per_tile
set_paragraph_regexp
set_non_word_regexp
set_locale
set_stop_words
segment
segments
);</p>
<p>use strict;
use base 'Class::Exporter';
use Lingua::EN::Splitter;
use Carp qw(croak);</p>
<p># Create a new instance of this object
sub new {
my $class = shift;
bless {
MIN_SEGMENT_SIZE=>2,
splitter=>Lingua::EN::Splitter->new,
@_
}, $class
}</p>
<p>sub segment {
croak "Use Lingua::EN::Segmenter::TextTiling instead.";
}</p>
<p>sub segments {
my ($self, $num_segments, $input) = @_;</p>
<pre>
<span class="keyword">my</span> <span class="variable">$segment_breaks</span> <span class="operator">=</span> <span class="variable">$self</span><span class="operator">-></span><span class="variable">segment</span><span class="operator">(</span><span class="variable">$num_segments</span><span class="operator">,</span><span class="variable">$input</span><span class="operator">);</span>
<span class="keyword">my</span> <span class="variable">@segment_breaks</span> <span class="operator">=</span> <span class="keyword">sort</span> <span class="operator">{</span> <span class="variable">$a</span> <span class="operator"><=></span> <span class="variable">$b</span> <span class="operator">}</span> <span class="keyword">keys</span> <span class="variable">%</span><span class="operator">{</span><span class="variable">$segment_breaks</span><span class="operator">}</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">@paragraphs</span> <span class="operator">=</span> <span class="variable">@</span><span class="operator">{</span><span class="variable">$self</span><span class="operator">-></span><span class="operator">{</span><span class="string">splitter</span><span class="operator">}</span><span class="operator">-></span><span class="variable">paragraphs</span><span class="operator">(</span><span class="variable">$input</span><span class="operator">)</span><span class="operator">}</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">@segments</span><span class="operator">;</span>
<span class="keyword">my</span> <span class="variable">$last_segment</span> <span class="operator">=</span> <span class="operator">-</span><span class="number">1</span><span class="operator">;</span>
<span class="keyword">foreach</span> <span class="operator">(</span><span class="variable">@segment_breaks</span><span class="operator">,</span><span class="variable">$#paragraphs</span><span class="operator">)</span> <span class="operator">{</span>
<span class="keyword">next</span> <span class="keyword">if</span> <span class="variable">$last_segment</span> <span class="operator">==</span> <span class="variable">$_</span><span class="operator">;</span>
<span class="keyword">push</span> <span class="variable">@segments</span><span class="operator">,</span> <span class="keyword">join</span> <span class="string">"\n\n"</span><span class="operator">,</span> <span class="variable">@paragraphs</span><span class="operator">[</span><span class="variable">$last_segment</span><span class="operator">+</span><span class="number">1</span><span class="operator">..</span><span class="variable">$_</span><span class="operator">]</span><span class="operator">;</span>
<span class="variable">$last_segment</span> <span class="operator">=</span> <span class="variable">$_</span><span class="operator">;</span>
<span class="operator">}</span>
<span class="keyword">return</span> <span class="variable">@segments</span><span class="operator">;</span>
<span class="operator">}</span>
</pre>
<p>#########################################################
# Mutator methods
#########################################################</p>
<p>sub set_min_segment_size {
my $self = shift;
$self->{MIN_SEGMENT_SIZE} = shift;
}</p>
<p>sub set_tokens_per_tile {
my $self = shift;
$self->{splitter}-><code>set_tokens_per_tile(@_)</code>;
}</p>
<p>sub set_paragraph_regexp {
my $self = shift;
$self->{splitter}-><code>set_paragraph_regexp(@_)</code>;
}</p>
<p>sub set_non_word_regexp {
my $self = shift;
$self->{splitter}-><code>set_non_word_regexp(@_)</code>;
}</p>
<p>sub set_locale {
my $self = shift;
$self->{splitter}-><code>set_locale(@_)</code>;
}</p>
<p>1;</p>
</body>
</html>
|
/Users/cpanrun/depot/main/contrib-patched/perl/CPAN/src/Lingua-EN-Segmenter/blib/html/site/lib/Lingua/EN/Segmenter.html |