Sha256: c9a56c1b70a3f55a7a1c235ec04146bb43ccfa0d1569750ad60188c2839f8c12

Contents?: true

Size: 1 KB

Versions: 4

Compression:

Stored size: 1 KB

Contents

#!/usr/bin/ruby

BEGIN {
	require 'pathname'
	
	basedir = Pathname.new( __FILE__ ).dirname.parent.expand_path
	libdir = basedir + "lib"
	$LOAD_PATH.unshift( libdir ) unless $LOAD_PATH.include?( libdir )
}

require 'linguistics'
require 'readline'

Linguistics.use( :en, :installProxy => true )

def generalized_word( word )
	$deferr.puts "    Traversing hypernyms for #{word}"
	syn = word.synset or return word
	nyms = syn.traverse( :hypernyms )
	return word if nyms.empty?

	general_subj = nyms[ nyms.length / 4 ]
	$deferr.puts "      %d synsets returned. Picking %d (%s)" % [
		nyms.length,
		nyms.length / 4,
		general_subj.words.first,
	]
	return general_subj.words.first
end

while input = Readline.readline( "Sentence to generalize: " )
	sent = input.sentence

	subj = sent.subject
	obj = sent.object
	verb = sent.verb
	
	input.sub!( /\b#{subj}\b/, generalized_word(subj) ) if subj
	input.sub!( /\b#{obj}\b/, generalized_word(obj) ) if obj
	input.sub!( /\b#{verb}\b/, generalized_word(verb) ) if verb

	puts input
end



Version data entries

4 entries across 4 versions & 3 rubygems

Version Path
eviltrout-linguistics-1.0.6.1 examples/generalize_sentence.rb
linguistics-1.0.9 ./examples/generalize_sentence.rb
markos_linguistics-1.0.8.3 ./examples/generalize_sentence.rb
linguistics-1.0.8 ./examples/generalize_sentence.rb