Sha256: 0a155ff626325998a6bd5d8bdfca79c60223c12990db6c35bec16c3e5783bff3
Contents?: true
Size: 958 Bytes
Versions: 33
Compression:
Stored size: 958 Bytes
Contents
# Author:: Lucas Carlson (mailto:lucas@rufy.com) # Copyright:: Copyright (c) 2005 Lucas Carlson # License:: LGPL class String def summary( count=10, separator=" [...] " ) perform_lsi split_sentences, count, separator end def paragraph_summary( count=1, separator=" [...] " ) perform_lsi split_paragraphs, count, separator end def split_sentences split /(\.|\!|\?)/ # TODO: make this less primitive end def split_paragraphs split /(\n\n|\r\r|\r\n\r\n)/ # TODO: make this less primitive end private def perform_lsi(chunks, count, separator) lsi = Classifier::LSI.new :auto_rebuild => false chunks.each { |chunk| lsi << chunk unless chunk.strip.empty? || chunk.strip.split.size == 1 } lsi.build_index summaries = lsi.highest_relative_content count return summaries.reject { |chunk| !summaries.include? chunk }.map { |x| x.strip }.join(separator) end end
Version data entries
33 entries across 33 versions & 12 rubygems