Improving Upon Earley s Parsing Algorithm In Prolog
|
|
|
- Arthur Little
- 9 years ago
- Views:
Transcription
1 Improving Upon Earley s Parsing Algorithm In Prolog Matt Voss Artificial Intelligence Center University of Georgia Athens, GA May 7, 2004 Abstract This paper presents a modification of the Earley (1970) parsing algorithm in Prolog. The Earley algorithm presented here is based on an implementation in Covington (1994a). The modifications are meant to improve on that algorithm in several key ways. The parser features a predictor that works like a left-corner parser with links, thus decreasing the number of chart entries. It implements subsumption checking, and organizes chart entries to take advantage of first argument indexing for quick retrieval. 1 Overview The Earley parsing algorithm is well known for its great efficiency in producing all possible parses of a sentence in relatively little time, without backtracking, and while handling left recursive rules correctly. It is also known for being considerably slower than most other parsing algorithms 1. This paper outlines an attempt to overcome many of the pitfalls associated with implementations of Earley parsers. It uses the Earley parser in Covington (1994a) as a starting point. In particular the Earley top-down predictor is exchanged for a predictor that works like a left-corner predictor with links, 1 See Covington (1994a) for one comparison of run times for a variety of algorithms. 1
2 following Leiss (1990). Chart entries store the positions of constituents in the input string, rather than lists containing the constituents themselves, and the arguments of chart entries are arranged to take advantage of first argument indexing. This means a small trade-off between easy-to-read code and efficiency of processing. The paper assumes a general understanding of chart parsing, and other standard parsing algorithms. A brief overview of the Earley algorithm is presented, followed by an implementations that makes the above modifications to the original. 2 Earley s Algorithm An Earley parser is an active chart parser 2. It eliminates backtracking completely by making a chart entry for everything that it has parsed: completed constituente (inactive constituents), as well as constituents being parsed (active constituents). It has several other attractive features: 1. It has an upper time bound proportional to n 3, and a lower time bound near n. This is close to optimal. 2. It does not specify a grammar, or a form for the grammar. It works on any. 3. It does not loop on left recursive rules, a problem that arises for parsers using Definite Clause Grammars. 4. Since it puts information about active as well as inactive constituents in the chart, it pursues all possible parses concurrently. At the end of the parse, all the alternatives are also stored in the chart. Earley chart entries keep track of four pieces of information: 1. The current goal. 2. Its starting position. 3. A list of constituents left to parse to complete the goal. 2 For an introduction to chart parsing in Prolog the reader is referred to Covington (1994a) and Gazdar and Mellish (1989) 2
3 4. The endpoint of the current goal. Earley represented this information as a set of production rules of the form: S NP VP 0 0 S NP VP 0 2 The dot represents the current position of the parser in the input stream. The first rule means the parser is at the beginning of the S constituent. The second rule above means the parser has found an NP and is now looking for a VP. The numbers repres As an active chart parser Earley s algorithm needs to do three things: 1. Add active entries, more current goals, to the chart. It will do this by looking for rules that expand current goals, and making chart entries based on these rules. 2. Update current goals after looking at the next word in the input stream. This means adding chart entries that reflect the state of the parser after accepting a word. 3. Use any completed constituents to complete goals requiring those constituents. For example, if you have completed an NP and a VP, then complete an S. These three parts are called the predictor, the scanner, and the completer. They will be the three main components of the parser. Earley s original proposal was a top-down predictor. This predictor is known to over-predict because it does not look ahead at the next word in the input stream. It will assert chart entries for all of the rules that have the current goal as their main goal, no matter what their subgoals are. Changing this feature is the primary focus of the implementation here. However there are some other considerations to be made before changing this feature. 3 Chart Entries We need a representation for chart entries in Prolog. Sacrificing some readability, we can take advantage of Prolog s first argument indexing to represent chart entries as follows: 3
4 chart(0,0,[np,vp],s). chart(1,0,[vp],s). These entries express the same information as the chart entries in Earley notation above, but they do it in reverse order. The first argument is the current position in the input stream, the second argument is the start point of the current constituent, the third argument is a list of subgoals yet to be processed, and the fourth argument is the current goal. The idea is that there many fewer constituents that end at a given position in the list than constituents that begin there, so we should index by the argument with more distinct values to make looking these chart entries up more efficient. We can look at an alternative to see the benefit of this approach. Chart entries could be presented as follows: chart(s,0,[np,vp],0). Comparing the run times for parsing the sentence that dogs chase cats surprises me 500 times with each representation shows how striking the improvement can be. The alternative averaged around 80 seconds runtime, while the chosen representation averaged around 10. The test was conducted on a Pentium MHz machine. The numbers are not so important as the large difference between them. Simpler sentences will produce less of a difference in runtime. This is by no means an extensive test but it at the very least presents some evidence in favor of the chosen representation. Gazdar and Mellish (1989)proposes chart entries also include a fifth argument representing a list of all the constituents that have been parsed. this way, when the parse is finished, the user can display the parse tree. This approach,however does not give the option of leaving out that step. The parse tree can be retrieved by adding arguments to the nodes in the rules. Hence the fifth argument is left off of the chart in favor of a more flexible parser. 3.1 Grammars The grammar is the only part of the program that the user supplies. A sample grammar is included along with the source code for the parser. If you want to make a custom grammar, then include the clause :- ensure_loaded( earley.pl ). 4
5 at the top of your file. Consult your grammar file to use the parser. Words and rules follow the representation used by Covington (1994a). Words are represented by a two place predicate as follows: word(d,the). word(n,cat). word(v,jumped). The first argument is always the part of speech of the word. The second argument is the word itself. Rules are represented similarly: rule(s,[np,vp]). rule(np,[d,n,]). rule(vp,[v,np]). The first argument is the constituent; the second argument is a list of the constituents that comprise it. Representing rules and words in this manner allows for maximum flexibility in the grammar. It is very easy to add arguments to the constituents or words for use with WordNet (Princeton 2003), GULP (Covington 1994b), or to produce tree structures from the grammar. 3.2 Using WordNet to Supply Words Using WordNet is simply a matter of adding another clause word/2 clause to the grammar. It should be as follows: word(cat,word) :- s(_,_,word,cat,_,_). The user should make sure to take note of the category markers in Word- Net and construct rules accordingly. The user should also be aware that none of the closed-class words are in WordNet. These the user will have to include. 3.3 Adding Arguments in GULP Notation Adding arguments in GULP notation is fairly straight forward. The parser treats any rule, with or without arguments on the goals, in the same way. To use GULP just add arguments to the appropriate goals. For example: 5
6 rule(np(number:n..case:c),[n(number:n..case:c)]). word(n(number:sg..case:nom),she). 3.4 Using ProNTo Morph ProNTo Morph (Schlacter 2003) is a morphological analyzer for English and is availible at the ProNTo website: A large lexicon is easy to create using ProNTo Morph in conjunction with WordNet and GULP. The idea is to run each word through ProNTo Morph, strip off the endings, look up the root in WordNet and use the suffix to take care of agreement issues. An example of a grammar that uses these three tools to check for subject/verb agreement can be found in the file grmr.glp. The following is an example to help make the key idea clear. word(n(number:pl),word) :- morph_atoms(word,[[w,-es]]), s(_,_,w,n,_,_) ; fail. word(n(number:pl),word) :- morph_atoms(word,[[w,-s]]), s(_,_,w,n,_,_) ; fail. word(n(number:pl),word) :- morph_atoms(word,[[w,-pl]]), s(_,_,w,n,_,_) ; fail. We find a plural noun in the following way. ProNTo Morph distinguishes three possible endings for a plural noun: -es, -s,and -pl. For each case we have one word/2 clause. I will explain the first one. morph_atoms/2 is non-deterministic. It returns each possible morphological analysis only upon 6
7 backtracking. So if the first one does not match what we are looking for we need to fail and check other posibiities. In the first clause, we break off endings until we get an -es ending, then look the root up in WordNet to make sure we have a valid word. A sample grammar that illustrates the use of ProNTo Morph in conjunction with GULP and WordNet is included with the parser in a file called grmr.glp. In addition an updated version of GULP is required and also availible with the parser in a file called gulp3swi.pl. To use this version of GULP simply consult gulp3swi.pl into SWI-Prolog, then consult the appropriate.glp file. 4 The Parser The parser is driven by a single predicate that takes care of preparing the input for parsing and then actually parsing it. 4.1 parse(+constituent,+list) This predicate oversees the entire parsing operation. It does a few things to set up the parse, then passes control to process/2, which does the parsing. parse(c,s1) :- clear_chart, convert(s1,0,end), get_links, store(chart(0,0,start,[c])), process(0,end), chart(end,0,c,[]). clear_chart/1 gets rid of all chart entries. convert/3 turns the input list into clauses that reflect the word, the position before the word, and the position after the word. For example, c(0,1,the) says the first word in the sentence is the. get_links asserts links for each goal type in the rule set. For example: l(d,s). l(np,s). l(d,n). 7
8 These predicates say there is a link between the first argument and the second. The parse is finished when process/2 has reached the index of the last word in the sentence, and there is a chart entry whose main goal is our initial goal, and which has no more subgoals to try. Example queries:?- parse(s,[the,dog,chases,the,cat]). Yes?- parse(np,[the,dog]). Yes 4.2 store(+chartentry) We need to do a little more than just add chart entries whenever we find a candidate. In particular we check to make sure there s not already a chart entry that contains the information we are trying to add. We also do a subsumption check on both the current goal and the list of subgoals. The subsumption check is important when we have arguments on the nodes. If the goal or its subgoals have an argument that is an uninstantiated variable we want to make sure the variable remains that way before it goes into the chart. If the variable would unify with one of the arguments of a node in a chart entry, the subsumption check prevents that new entry from going into the chart. If it was allowed to go in, that variable would be instantiated, possibly to something undesirable store(chart(a,b,c,d)) :- \+ ( chart(a,b,c1,d1), subsumes_chk(c1,c), subsumes_chk(d1,d) ), asserta(chart(a,b,c,d)). As packaged, the parser includes a subsumption checker from Covington (1994a); however, some Prolog implementations have a predefined version by the same name. If this is the case with your particular Prolog, just comment out the line :- ensure_loaded( subsumes.pl ). in the file earley.pl. This is a slight inconvenience but ensures you will be running the most efficient version of the predicate. 8
9 4.3 process(+startposition,-endposition) This predicate oversees the parsing process. It calls the three parts of the parser: the predictor, the scanner, and the completer until the end of the sentence is reached. process(end,end) :-!. process(position,end) :- predictor(position), scanner(position,newposition), completer(newposition), process(newposition,end). 4.4 predictor(+position) The predictor works like a left corner parser with links. We have already seen how the links are defined. Now we see how they are put to use. The first step is to peek at the next word in the input stream, then make predictions based on that word. The idea is to look up each goal at the current position that has the category of the first word as one of its subgoals and use these two pieces of information to make new chart entries that link to the main goal. There are several tasks to be completed. This predicate simply orchestrates the predicting process. It calls predicates that do the predicting. predictor(position) :- chart(position,_,_,[goal _]), c(position,_,w), predict(w,goal,position), fail. predictor(_) predict(+w,+goal,+position) Make predictions based on the current word. If the current goal is the category of the current word, then there are no more predictions to make. 9
10 predict(w,cat,_) :- word(cat,w),!. Otherwise use the category of the current word to restrict predictions. Predictions need to be made that link the current word to the current main goal. predict_all/3 is called to make these predictions. predict(w,goal1,position) :- word(cat,w), predict_all(goal1,cat,position), predict(w,goal1,position), fail. predict(_,_,_) predict all(+goal,+category,+position) This predicate finally makes all the predictions for the given input category. It is a type of left corner parser with links inspired by one proposed by Leiss (1990). It stops making predictions when the current goal is the same as the category of constituent it is looking for. Otherwise it finds rules whose first subgoal is the current category, checks to make sure there is a link between the goal it found and the current main goal, then enters the appropriate chart entry into the knowledge base. predict_all(goal,goal,_). predict_all(goal1,cat,position) :- rule(goal,[cat T]), l(goal,goal1), store(chart(position,position,goal,[cat T])), predict_all(goal1,goal,position). The predicate also makes sure it did not miss a null constituent when it looked at the first word. It checks the second subgoal of each rule for a constituent of the current category. If it finds one, it checks if the first subgoal can be a null constituent. If it can it makes sure there is a link between the main goal and the proposed goal, then enters the appropriate information in the chart. At this point it also needs to call the completer since it knows it completed a null constituent. 10
11 predict_all(goal1,cat,position) :- rule(goal,[d,cat T]), rule(d,[]), l(goal,goal1), store(chart(position,position,goal,[d,cat T])), predict_all(goal1,goal,position), store(chart(d,position,[],position)), complete(d,position,position). 4.5 scanner(+end,-end2) The scanner actually eats the next word in the input stream. To do this it looks up each word that begins at the current point in the input stream. If the word is of the same type as the first current subgoal, then the parser asserts a new chart entry with updated information. The new chart entry reflects the state of the parser after it has consumed the word it was looking at. scanner(end,end2) :- chart(end,start,c,[g Goals]), c(end,end2,word), word(g,word), store(chart(end2,start,c,goals)), fail. The scanner returns the input position after accepting the word it was looking at. scanner(end,end2) :- End2 is End completer(+position) The completer looks for chart entries that have no subgoals left to process. For each one it finds, it tries to use that chart entry to complete higher goals. completer(position) :- chart(position,pc,c,[]), complete(c,pc,position), 11
12 fail. completer(_) complete(+constituent,+start,+end) This predicate actually completes subgoals. The completer has just found a completed constituent. So now it can find chart entries that have subgoals with one subgoal left to complete. Advance one step in the input string and update the goal list to reflect another subgoal processed. Assert this change as a chart entry. complete(c,pc,position) :- chart(pc,pc0,c0,[c Goals]), store(chart(position,pc0,c0,goals)), Goals == [], complete(c0,pc0,position), fail. complete(_,_,_). 5 Utilities It is fairly easy to access parse trees if the rules of the grammar have arguments on their nodes. Here are two predicates that retrieve all of the completed constituents from the parse. 5.1 get constituents(+constituent,+sentence) This predicate is called just like parse/2. It parses a sentence then prints out all of the completed constituents from the parse.?- get_constituents(s(x),[the,dog,chases,the,cat]). s(np(d(the), n(dog)), vp(v(chases), np(d(the), n(cat)))) vp(v(chases), np(d(the), n(cat))) np(d(the), n(cat)) np(d(the), n(dog)) 12
13 X = s(np(d(the), n(dog)), vp(v(chases), np(d(the), n(cat)))) 5.2 get constituents list(+con,+sen,-list) This predicate is the same as above except that instead of printing the constituents, it returns them in a list.?- get_constituents_list(s(x),[the,cat,chases,the,dog],list). X = s(np(d(the), n(cat)), vp(v(chases), np(d(the), n(dog)))) List = [s(np(d(the), n(cat)), vp(v(chases), np(d(the), n(dog)))), vp(v(chases), np(d(the), n(dog))), np(d(the), n(dog)), np(d(the), n(cat))] ; No 6 Limitations This algorithm was meant to improve upon another, and hence overcome many of its limitations. There are however a few improvements that could be made to this version. It was a design decision not to store part of the chart in a list. Having some chart entries in the list might complicate the code somewhat, but may allow for better parsing in some cases. This parser does not implement restriction. 3 This is not seen as a big limitation, since restriction is used to solve a very particular problem with Earley parsers. Fixing the problem would mean a less efficient parser. A trade-off had to be made. References Covington, Michael(1994a) Natural language processing for Prolog programmers. Englewood Cliffs, N.J.: Prentice Hall. 3 See Covington (1994a, ) for an explanation of this concept. 13
14 Covington, Michael (1994b) GULP 3.1: An Extension of Prolog for Unification-Based Grammar. Research Report AI , Artificial Intelligence Center, The University of Georgia. Earley, Jay (1970) An efficient context-free parsing algorithm. Communications of the ACM, 13: Gazdar, Gerald and Chris Mellish (1989) Natural language processing in Prolog: an introduction to computational linguistics. Wokingham: Addison-Wesley. Leiss, Hans (1990) On Kilbury s modification of Earley s Algorithm. ACM Transactions on Programming Languages and Systems, 12: Princeton (2003) WordNet wn/. Schlacter, Jason (2003) ProNTo Morph: Morphological Analysis Tool. University of Georgia. 14
Basic Parsing Algorithms Chart Parsing
Basic Parsing Algorithms Chart Parsing Seminar Recent Advances in Parsing Technology WS 2011/2012 Anna Schmidt Talk Outline Chart Parsing Basics Chart Parsing Algorithms Earley Algorithm CKY Algorithm
A Chart Parsing implementation in Answer Set Programming
A Chart Parsing implementation in Answer Set Programming Ismael Sandoval Cervantes Ingenieria en Sistemas Computacionales ITESM, Campus Guadalajara [email protected] Rogelio Dávila Pérez Departamento de
Formal Languages and Automata Theory - Regular Expressions and Finite Automata -
Formal Languages and Automata Theory - Regular Expressions and Finite Automata - Samarjit Chakraborty Computer Engineering and Networks Laboratory Swiss Federal Institute of Technology (ETH) Zürich March
Regular Expressions and Automata using Haskell
Regular Expressions and Automata using Haskell Simon Thompson Computing Laboratory University of Kent at Canterbury January 2000 Contents 1 Introduction 2 2 Regular Expressions 2 3 Matching regular expressions
Unit 1 Number Sense. In this unit, students will study repeating decimals, percents, fractions, decimals, and proportions.
Unit 1 Number Sense In this unit, students will study repeating decimals, percents, fractions, decimals, and proportions. BLM Three Types of Percent Problems (p L-34) is a summary BLM for the material
Paraphrasing controlled English texts
Paraphrasing controlled English texts Kaarel Kaljurand Institute of Computational Linguistics, University of Zurich [email protected] Abstract. We discuss paraphrasing controlled English texts, by defining
Natural Language Database Interface for the Community Based Monitoring System *
Natural Language Database Interface for the Community Based Monitoring System * Krissanne Kaye Garcia, Ma. Angelica Lumain, Jose Antonio Wong, Jhovee Gerard Yap, Charibeth Cheng De La Salle University
Kenken For Teachers. Tom Davis [email protected] http://www.geometer.org/mathcircles June 27, 2010. Abstract
Kenken For Teachers Tom Davis [email protected] http://www.geometer.org/mathcircles June 7, 00 Abstract Kenken is a puzzle whose solution requires a combination of logic and simple arithmetic skills.
2 SYSTEM DESCRIPTION TECHNIQUES
2 SYSTEM DESCRIPTION TECHNIQUES 2.1 INTRODUCTION Graphical representation of any process is always better and more meaningful than its representation in words. Moreover, it is very difficult to arrange
KWIC Implemented with Pipe Filter Architectural Style
KWIC Implemented with Pipe Filter Architectural Style KWIC Implemented with Pipe Filter Architectural Style... 2 1 Pipe Filter Systems in General... 2 2 Architecture... 3 2.1 Pipes in KWIC system... 3
The Development of Multimedia-Multilingual Document Storage, Retrieval and Delivery System for E-Organization (STREDEO PROJECT)
The Development of Multimedia-Multilingual Storage, Retrieval and Delivery for E-Organization (STREDEO PROJECT) Asanee Kawtrakul, Kajornsak Julavittayanukool, Mukda Suktarachan, Patcharee Varasrai, Nathavit
Pushdown automata. Informatics 2A: Lecture 9. Alex Simpson. 3 October, 2014. School of Informatics University of Edinburgh [email protected].
Pushdown automata Informatics 2A: Lecture 9 Alex Simpson School of Informatics University of Edinburgh [email protected] 3 October, 2014 1 / 17 Recap of lecture 8 Context-free languages are defined by context-free
Learning Translation Rules from Bilingual English Filipino Corpus
Proceedings of PACLIC 19, the 19 th Asia-Pacific Conference on Language, Information and Computation. Learning Translation s from Bilingual English Filipino Corpus Michelle Wendy Tan, Raymond Joseph Ang,
Language Modeling. Chapter 1. 1.1 Introduction
Chapter 1 Language Modeling (Course notes for NLP by Michael Collins, Columbia University) 1.1 Introduction In this chapter we will consider the the problem of constructing a language model from a set
Compiler I: Syntax Analysis Human Thought
Course map Compiler I: Syntax Analysis Human Thought Abstract design Chapters 9, 12 H.L. Language & Operating Sys. Compiler Chapters 10-11 Virtual Machine Software hierarchy Translator Chapters 7-8 Assembly
Parsing Technology and its role in Legacy Modernization. A Metaware White Paper
Parsing Technology and its role in Legacy Modernization A Metaware White Paper 1 INTRODUCTION In the two last decades there has been an explosion of interest in software tools that can automate key tasks
Turing Machines: An Introduction
CIT 596 Theory of Computation 1 We have seen several abstract models of computing devices: Deterministic Finite Automata, Nondeterministic Finite Automata, Nondeterministic Finite Automata with ɛ-transitions,
How the Computer Translates. Svetlana Sokolova President and CEO of PROMT, PhD.
Svetlana Sokolova President and CEO of PROMT, PhD. How the Computer Translates Machine translation is a special field of computer application where almost everyone believes that he/she is a specialist.
31 Case Studies: Java Natural Language Tools Available on the Web
31 Case Studies: Java Natural Language Tools Available on the Web Chapter Objectives Chapter Contents This chapter provides a number of sources for open source and free atural language understanding software
Note: A WebFOCUS Developer Studio license is required for each developer.
WebFOCUS FAQ s Q. What is WebFOCUS? A. WebFOCUS was developed by Information Builders Incorporated and is a comprehensive and fully integrated enterprise business intelligence system. The WebFOCUShttp://www.informationbuilders.com/products/webfocus/architecture.html
Genetic programming with regular expressions
Genetic programming with regular expressions Børge Svingen Chief Technology Officer, Open AdExchange [email protected] 2009-03-23 Pattern discovery Pattern discovery: Recognizing patterns that characterize
SECTION 5: Finalizing Your Workbook
SECTION 5: Finalizing Your Workbook In this section you will learn how to: Protect a workbook Protect a sheet Protect Excel files Unlock cells Use the document inspector Use the compatibility checker Mark
Writing effective pamphlets: a basic guide
Southern Cross University epublications@scu School of Education 1996 Writing effective pamphlets: a basic guide Sallie Newell Southern Cross University Publication details Newell, S 1996, Writing effective
Inside the PostgreSQL Query Optimizer
Inside the PostgreSQL Query Optimizer Neil Conway [email protected] Fujitsu Australia Software Technology PostgreSQL Query Optimizer Internals p. 1 Outline Introduction to query optimization Outline of
Check, Revise, and Edit Chart
Check Revise & Edit PBP-15-C 2002 Nancy Fetzer Purpose: Revising and editing is a difficult part of the writing process. Student editing is a valuable technique, but only if students understand how to
GOAL-BASED INTELLIGENT AGENTS
International Journal of Information Technology, Vol. 9 No. 1 GOAL-BASED INTELLIGENT AGENTS Zhiqi Shen, Robert Gay and Xuehong Tao ICIS, School of EEE, Nanyang Technological University, Singapore 639798
A Knowledge-based System for Translating FOL Formulas into NL Sentences
A Knowledge-based System for Translating FOL Formulas into NL Sentences Aikaterini Mpagouli, Ioannis Hatzilygeroudis University of Patras, School of Engineering Department of Computer Engineering & Informatics,
Exponential Notation and the Order of Operations
1.7 Exponential Notation and the Order of Operations 1.7 OBJECTIVES 1. Use exponent notation 2. Evaluate expressions containing powers of whole numbers 3. Know the order of operations 4. Evaluate expressions
Extending Data Processing Capabilities of Relational Database Management Systems.
Extending Data Processing Capabilities of Relational Database Management Systems. Igor Wojnicki University of Missouri St. Louis Department of Mathematics and Computer Science 8001 Natural Bridge Road
Chapter 13: Query Processing. Basic Steps in Query Processing
Chapter 13: Query Processing! Overview! Measures of Query Cost! Selection Operation! Sorting! Join Operation! Other Operations! Evaluation of Expressions 13.1 Basic Steps in Query Processing 1. Parsing
Outline of today s lecture
Outline of today s lecture Generative grammar Simple context free grammars Probabilistic CFGs Formalism power requirements Parsing Modelling syntactic structure of phrases and sentences. Why is it useful?
Year 7. Grammar booklet 3 and tasks Sentences, phrases and clauses
Year 7 Grammar booklet 3 and tasks Sentences, phrases and clauses Types of Sentence There are 4 main types of sentences. A question asks something and needs a question mark. What s the matter? A statement
Comparative Analysis on the Armenian and Korean Languages
Comparative Analysis on the Armenian and Korean Languages Syuzanna Mejlumyan Yerevan State Linguistic University Abstract It has been five years since the Korean language has been taught at Yerevan State
Session 7 Fractions and Decimals
Key Terms in This Session Session 7 Fractions and Decimals Previously Introduced prime number rational numbers New in This Session period repeating decimal terminating decimal Introduction In this session,
NP-Completeness and Cook s Theorem
NP-Completeness and Cook s Theorem Lecture notes for COM3412 Logic and Computation 15th January 2002 1 NP decision problems The decision problem D L for a formal language L Σ is the computational task:
Constraints in Phrase Structure Grammar
Constraints in Phrase Structure Grammar Phrase Structure Grammar no movement, no transformations, context-free rules X/Y = X is a category which dominates a missing category Y Let G be the set of basic
English for Academic Skills Independence [EASI]
English for Academic Skills Independence [EASI] Session 5 Grammar Quiz Quick question from Session 4 If a simple sentence has one independent clause, how do you define a compound sentence? Grammar: two
Chapter 11 Number Theory
Chapter 11 Number Theory Number theory is one of the oldest branches of mathematics. For many years people who studied number theory delighted in its pure nature because there were few practical applications
Best Practices. Create a Better VoC Report. Three Data Visualization Techniques to Get Your Reports Noticed
Best Practices Create a Better VoC Report Three Data Visualization Techniques to Get Your Reports Noticed Create a Better VoC Report Three Data Visualization Techniques to Get Your Report Noticed V oice
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc.
Semantic Object Language Whitepaper Jason Wells Semantic Research Inc. Abstract While UML is the accepted visual language for object-oriented system modeling, it lacks a common semantic foundation with
Lecture Notes on Linear Search
Lecture Notes on Linear Search 15-122: Principles of Imperative Computation Frank Pfenning Lecture 5 January 29, 2013 1 Introduction One of the fundamental and recurring problems in computer science is
S. Muthusundari. Research Scholar, Dept of CSE, Sathyabama University Chennai, India e-mail: [email protected]. Dr. R. M.
A Sorting based Algorithm for the Construction of Balanced Search Tree Automatically for smaller elements and with minimum of one Rotation for Greater Elements from BST S. Muthusundari Research Scholar,
6-1. Process Modeling
6-1 Process Modeling Key Definitions Process model A formal way of representing how a business system operates Illustrates the activities that are performed and how data moves among them Data flow diagramming
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team
CS104: Data Structures and Object-Oriented Design (Fall 2013) October 24, 2013: Priority Queues Scribes: CS 104 Teaching Team Lecture Summary In this lecture, we learned about the ADT Priority Queue. A
Course Manual Automata & Complexity 2015
Course Manual Automata & Complexity 2015 Course code: Course homepage: Coordinator: Teachers lectures: Teacher exercise classes: Credits: X_401049 http://www.cs.vu.nl/~tcs/ac prof. dr. W.J. Fokkink home:
A simple solution to the hardest logic puzzle ever
a simple solution to the hardest logic puzzle ever 105 11 Potts, C. 2005. The Logic of Conventional Implicatures. Oxford: Oxford University Press. Searle, J. R. and D. Vanderveken. 1985. Foundations of
KSE Comp. support for the writing process 2 1
KSE Comp. support for the writing process 2 1 Flower & Hayes cognitive model of writing A reaction against stage models of the writing process E.g.: Prewriting - Writing - Rewriting They model the growth
Scanning and parsing. Topics. Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm
Scanning and Parsing Announcements Pick a partner by Monday Makeup lecture will be on Monday August 29th at 3pm Today Outline of planned topics for course Overall structure of a compiler Lexical analysis
Bottom-Up Parsing. An Introductory Example
Bottom-Up Parsing Bottom-up parsing is more general than top-down parsing Just as efficient Builds on ideas in top-down parsing Bottom-up is the preferred method in practice Reading: Section 4.5 An Introductory
3 Abstract Data Types and Search
3 Abstract Data Types and Search Chapter Objectives Chapter Contents Prolog s graph search representations were described and built: Lists A recursive tree-walk algorithm The cut predicate,!, for Prolog
COMPUTER SCIENCE TRIPOS
CST.98.5.1 COMPUTER SCIENCE TRIPOS Part IB Wednesday 3 June 1998 1.30 to 4.30 Paper 5 Answer five questions. No more than two questions from any one section are to be answered. Submit the answers in five
Reporting Research Findings
4 27 Very often, you will have to write reports, which are documents containing factual and objective information that you have collected through research. Analytical research reports, which are written
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy
Regular Expressions with Nested Levels of Back Referencing Form a Hierarchy Kim S. Larsen Odense University Abstract For many years, regular expressions with back referencing have been used in a variety
Get Ready for IELTS Writing. About Get Ready for IELTS Writing. Part 1: Language development. Part 2: Skills development. Part 3: Exam practice
About Collins Get Ready for IELTS series has been designed to help learners at a pre-intermediate level (equivalent to band 3 or 4) to acquire the skills they need to achieve a higher score. It is easy
GMAT SYLLABI. Types of Assignments - 1 -
GMAT SYLLABI The syllabi on the following pages list the math and verbal assignments for each class. Your homework assignments depend on your current math and verbal scores. Be sure to read How to Use
DIAGRAMMING SENTENCES
Diagramming sentences provides a way of picturing the structure of a sentence. By placing the various parts of a sentence in relation to the basic subject-verb relationship, we can see how the parts fit
Enhance Production in 6 Steps Using Preventive Maintenance
Enhance Production in 6 Steps Using Preventive Maintenance 1 Enhance Production in 6 Steps Using Preventive Maintenance Preventive Maintenance (PM) is 30% less expensive than reactive approaches Using
Programming Languages
Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately
NUMBER SYSTEMS APPENDIX D. You will learn about the following in this appendix:
APPENDIX D NUMBER SYSTEMS You will learn about the following in this appendix: The four important number systems in computing binary, octal, decimal, and hexadecimal. A number system converter program
Building a Question Classifier for a TREC-Style Question Answering System
Building a Question Classifier for a TREC-Style Question Answering System Richard May & Ari Steinberg Topic: Question Classification We define Question Classification (QC) here to be the task that, given
Endowing a virtual assistant with intelligence: a multi-paradigm approach
Endowing a virtual assistant with intelligence: a multi-paradigm approach Josefa Z. Hernández, Ana García Serrano Department of Artificial Intelligence Technical University of Madrid (UPM), Spain {phernan,agarcia}@dia.fi.upm.es
CALICO Journal, Volume 9 Number 1 9
PARSING, ERROR DIAGNOSTICS AND INSTRUCTION IN A FRENCH TUTOR GILLES LABRIE AND L.P.S. SINGH Abstract: This paper describes the strategy used in Miniprof, a program designed to provide "intelligent' instruction
How to test and debug an ASP.NET application
Chapter 4 How to test and debug an ASP.NET application 113 4 How to test and debug an ASP.NET application If you ve done much programming, you know that testing and debugging are often the most difficult
Understanding Clauses and How to Connect Them to Avoid Fragments, Comma Splices, and Fused Sentences A Grammar Help Handout by Abbie Potter Henry
Independent Clauses An independent clause (IC) contains at least one subject and one verb and can stand by itself as a simple sentence. Here are examples of independent clauses. Because these sentences
Comparing Methods to Identify Defect Reports in a Change Management Database
Comparing Methods to Identify Defect Reports in a Change Management Database Elaine J. Weyuker, Thomas J. Ostrand AT&T Labs - Research 180 Park Avenue Florham Park, NJ 07932 (weyuker,ostrand)@research.att.com
F.IF.7b: Graph Root, Piecewise, Step, & Absolute Value Functions
F.IF.7b: Graph Root, Piecewise, Step, & Absolute Value Functions F.IF.7b: Graph Root, Piecewise, Step, & Absolute Value Functions Analyze functions using different representations. 7. Graph functions expressed
Developing an Academic Essay
2 9 In Chapter 1: Writing an academic essay, you were introduced to the concepts of essay prompt, thesis statement and outline. In this chapter, using these concepts and looking at examples, you will obtain
Semantic Errors in SQL Queries: A Quite Complete List
Semantic Errors in SQL Queries: A Quite Complete List Christian Goldberg, Stefan Brass Martin-Luther-Universität Halle-Wittenberg {goldberg,brass}@informatik.uni-halle.de Abstract We investigate classes
f(x) = g(x), if x A h(x), if x B.
1. Piecewise Functions By Bryan Carrillo, University of California, Riverside We can create more complicated functions by considering Piece-wise functions. Definition: Piecewise-function. A piecewise-function
WRITING PROOFS. Christopher Heil Georgia Institute of Technology
WRITING PROOFS Christopher Heil Georgia Institute of Technology A theorem is just a statement of fact A proof of the theorem is a logical explanation of why the theorem is true Many theorems have this
Lecture 9. Phrases: Subject/Predicate. English 3318: Studies in English Grammar. Dr. Svetlana Nuernberg
Lecture 9 English 3318: Studies in English Grammar Phrases: Subject/Predicate Dr. Svetlana Nuernberg Objectives Identify and diagram the most important constituents of sentences Noun phrases Verb phrases
Outline. Written Communication Conveying Scientific Information Effectively. Objective of (Scientific) Writing
Written Communication Conveying Scientific Information Effectively Marie Davidian [email protected] http://www.stat.ncsu.edu/ davidian. Outline Objectives of (scientific) writing Important issues
USABILITY OF A FILIPINO LANGUAGE TOOLS WEBSITE
USABILITY OF A FILIPINO LANGUAGE TOOLS WEBSITE Ria A. Sagum, MCS Department of Computer Science, College of Computer and Information Sciences Polytechnic University of the Philippines, Manila, Philippines
ORAKEL: A Portable Natural Language Interface to Knowledge Bases
ORAKEL: A Portable Natural Language Interface to Knowledge Bases Philipp Cimiano, Peter Haase, Jörg Heizmann, Matthias Mantel March 1, 2007 Chapter 1 Introduction As the amount of information available
Sentence Structure/Sentence Types HANDOUT
Sentence Structure/Sentence Types HANDOUT This handout is designed to give you a very brief (and, of necessity, incomplete) overview of the different types of sentence structure and how the elements of
Sample Fraction Addition and Subtraction Concepts Activities 1 3
Sample Fraction Addition and Subtraction Concepts Activities 1 3 College- and Career-Ready Standard Addressed: Build fractions from unit fractions by applying and extending previous understandings of operations
3. Mathematical Induction
3. MATHEMATICAL INDUCTION 83 3. Mathematical Induction 3.1. First Principle of Mathematical Induction. Let P (n) be a predicate with domain of discourse (over) the natural numbers N = {0, 1,,...}. If (1)
GRADE 4 English Language Arts Proofreading: Lesson 5
GRADE 4 English Language Arts Proofreading: Lesson 5 Read aloud to the students the material that is printed in boldface type inside the boxes. Information in regular type inside the boxes and all information
Toad for Oracle 8.6 SQL Tuning
Quick User Guide for Toad for Oracle 8.6 SQL Tuning SQL Tuning Version 6.1.1 SQL Tuning definitively solves SQL bottlenecks through a unique methodology that scans code, without executing programs, to
Database Programming with PL/SQL: Learning Objectives
Database Programming with PL/SQL: Learning Objectives This course covers PL/SQL, a procedural language extension to SQL. Through an innovative project-based approach, students learn procedural logic constructs
Automatic Text Analysis Using Drupal
Automatic Text Analysis Using Drupal By Herman Chai Computer Engineering California Polytechnic State University, San Luis Obispo Advised by Dr. Foaad Khosmood June 14, 2013 Abstract Natural language processing
03 - Lexical Analysis
03 - Lexical Analysis First, let s see a simplified overview of the compilation process: source code file (sequence of char) Step 2: parsing (syntax analysis) arse Tree Step 1: scanning (lexical analysis)
Semester Review. CSC 301, Fall 2015
Semester Review CSC 301, Fall 2015 Programming Language Classes There are many different programming language classes, but four classes or paradigms stand out:! Imperative Languages! assignment and iteration!
MATH10040 Chapter 2: Prime and relatively prime numbers
MATH10040 Chapter 2: Prime and relatively prime numbers Recall the basic definition: 1. Prime numbers Definition 1.1. Recall that a positive integer is said to be prime if it has precisely two positive
A simple algorithm with no simple verication
A simple algorithm with no simple verication Laszlo Csirmaz Central European University Abstract The correctness of a simple sorting algorithm is resented, which algorithm is \evidently wrong" at the rst
Syntax: Phrases. 1. The phrase
Syntax: Phrases Sentences can be divided into phrases. A phrase is a group of words forming a unit and united around a head, the most important part of the phrase. The head can be a noun NP, a verb VP,
ML for the Working Programmer
ML for the Working Programmer 2nd edition Lawrence C. Paulson University of Cambridge CAMBRIDGE UNIVERSITY PRESS CONTENTS Preface to the Second Edition Preface xiii xv 1 Standard ML 1 Functional Programming
Application of Natural Language Interface to a Machine Translation Problem
Application of Natural Language Interface to a Machine Translation Problem Heidi M. Johnson Yukiko Sekine John S. White Martin Marietta Corporation Gil C. Kim Korean Advanced Institute of Science and Technology
Ling 201 Syntax 1. Jirka Hana April 10, 2006
Overview of topics What is Syntax? Word Classes What to remember and understand: Ling 201 Syntax 1 Jirka Hana April 10, 2006 Syntax, difference between syntax and semantics, open/closed class words, all
Syntactic Theory. Background and Transformational Grammar. Dr. Dan Flickinger & PD Dr. Valia Kordoni
Syntactic Theory Background and Transformational Grammar Dr. Dan Flickinger & PD Dr. Valia Kordoni Department of Computational Linguistics Saarland University October 28, 2011 Early work on grammar There
