180 likes | 424 Views
LING/C SC/PSYC 438/538. Lecture 3 Sandiway Fong. Today’s Topics. Homework 1 review reminder : submit plain text or PDF please (no .doc/. docx ) Perl. Homework 1 Discussion. Flying saucer: idiom?. a nything disk-shaped will qualify. UFO. saucer. Homework 1 Discussion.
E N D
LING/C SC/PSYC 438/538 Lecture 3 Sandiway Fong
Today’s Topics • Homework 1 review • reminder: submit plain text or PDF please (no .doc/.docx) • Perl
Homework 1 Discussion • Flying saucer: idiom? anything disk-shaped will qualify UFO saucer
Homework 1 Discussion • Structural ambiguity: • the men saw the boy with a telescope • [NP the boy] • [VP saw [NP the boy]] • [PPwith a telescope]] http://www.merriam-webster.com
Homework 1 Discussion • Structural ambiguity: • the men saw the boy with a telescope • [NP the boy] • [VP saw [NP the boy]] • Phrase structure: adjunction, PP adjoins to … • [NP [NP the boy] [PP with a telescope]] • [VP [VP saw [NP the boy]] [PP with a telescope]] • [PPwith a telescope]]
Homework 1 Discussion • Structural ambiguity: • the men saw the boy with a telescope • Stanford Parser output: • there’s no adjunction for VPs …
Homework 1 Discussion • Structural ambiguity: • the men saw the boy with a telescope • Stanford Parser typed dependency output:
Homework 1 Discussion • Referential ambiguity: • John dislikes nearly everyone he meets pronoun coreferential with… not John but with someone else not mentioned in this sentence
Open Text Summarizer • Web interface • http://www.splitbrain.org/services/ots
Perl Day • Learn Perl • Books… see next slide • Online resources • http://learn.perl.org/ • we begin with ... • http://perldoc.perl.org/perlintro.html philosophy: Natural Language Principles in Perl If a language is designed so that you can ``learn as you go'', then the expectation is that everyone is learning, and that's okay. http://www.wall.org/~larry/natural.html
Perl Day UA has free access to O'Reilly's Safari library: • http://proquest.safaribooksonline.com.ezproxy2.library.arizona.edu/search?q=perl
Useful notes • Notes from last time: • whitespace and semicolons are not always necessary, e.g. • print"Hello class!\n”;;;; • variable names must not begin with a number (use a letter), so • $538students is out • $students538 is ok • weakness: unhelpful error messages, e.g. Bareword found where operator expected at example.prl line 3, near "$538students" (Missing operator before students?)
Perl arrays and hashes most programming languages will offer you all of these basic data types • Scalars: • strings, numbers (integers, floating point numbers), references • Arrays: • Store multiple scalars together • Idea: list of scalars • Access by index: 0,1,2,… • Hash (aka Associative Array): • Like an array except access not through a numeric index • Use user-specified keys $variable @variable %variable different namespaces: $apple @apple %apple are different data structures and can co-exist simultaneously
Perl Week • Notes on arrays and hashes • arrays are indexed from 0,1,2,3… • hashes are like arrays with user-defined indexing (aka associative array or hash table) • initialization (use round brackets and commas) • @a = (“zero”, “one”, “two”, “three”, “four”); • %h = (“zero”, 0, “one”, 1, “two”, 2, “three”, 3, “four”, 4); (key/value pairs) • access to individual elements (square brackets vs. curly braces) • $a[1] “one” • $h{zero} 0
Perl Week • Notes on arrays and hashes • output • print @a zeroonetwothreefour • print “@a” zero one two three four • print %h three3one1zero0two2four4 (note: different order) • print “%h” %h (literal, no interpolation) What happens here? • %pos = ("apple", "n", "speak", "v", "happy", "a", "walk", "n", "walk", "v"); • print $pos{"walk"}, "\n"; controlled by variable $” default: a space • (hash keys are unique)
Perl Week • Conditionals • if ( @a < 10 ) { print “Small array\n” } else {print “Big array\n” } • Note: @a here is a scalar = size of array • unless (@a > 10) { print “@a\n” } • Note: if size of array a is ≤ 10, it prints the contents of array a • Looping • %fruits = ("apple", "green", "orange", "orange", "lemon", "yellow"); • foreach $fruit (keys %fruits) { print $fruit, " => ", $fruits{$fruit}, "\n” } gives output: • lemon => yellow • apple => green • orange => orange • Note: apparently • keys %fruits = (“lemon” “apple” “orange”) is an array