Sei sulla pagina 1di 4

Questions' Answers Q1: What are the differences between cache memory and register?

Cache memory is random access memory (RAM) that a computer microprocessor can access more quickly than it can access regular RAM. As the microprocessor processes data, it looks first in the cache memory and if it finds the data there (from a previous reading of data), it does not have to do the more time-consuming reading of data from larger memory. The register is a small set of data holding places that are part of a computer processor. A register may hold a computer instruction, a storage address, or any kind of data.

Q2: Mention Different usage of Finite Automata for Computer Science.


Finite Automata have two traditional applications in computer science which are modeling of finite state systems and description of finite set of regular words. In the last few years several new applications for FA have been emerged. These applications include the usage of FA for optimization of logic programs, specification and verification of protocols, rather than their usage for Dictionary Lookups. In these applications, however, are not used in the same roles mentioned above. They are used as descriptors but for sets of more complex objects, namely, infinite words and trees. Usage of FA for optimization of logic programs. A problem of special interest is of determining equivalence of a given recursive datalog program to a given non recursive program. This problem is the main focus of this usage. A nonrecursive program can be rewritten as a union of conjunctive queries. Thus, containment of a nonrecursive program in a recursive program can be reduced to the containment of conjunctive query in a recursive program, which is shown to be decidable in EXPTIME-complete. What was left is the containment of recursive programs in unions of conjunctive queries which is shown to be decidable. It follows that the equivalence of recursive programs to nonrecursive programs is decidable.

Applications of finite-state automata in natural language

processing.
Finite-state automata are efficient computational devices for generating regular languages. An equivalent view would be to regard them as recognizing devices: given some automaton A and a word w, applying the automaton to the word yields an answer to the question: Is w a member of the language accepted by the automaton? This reversed view of automata motivates their use for a simple yet necessary application of natural language processing: dictionary lookup. Example: Dictionaries as finite-state automata Many NLP applications require the use of lexicons or dictionaries, sometimes storing hundreds of thousands of entries. Finite-state automata provide an efficient means for storing dictionaries, accessing them and modifying their contents. To understand the basic organization of a dictionary as a finite-state machine, assume that an alphabet is fixed (we will use = {a, b, , z}in the discussion) and consider how a single word, say go, can be

represented. As we have seen above, a naive representation would be to construct an automaton with a single path whose arcs are labeled by the letters of the word go: go: To represent more than one word, we can simply add paths to our lexicon, one path for each additional word. Thus, after adding the words gone and going, we might have:

go, gone, going:

This automaton can then be determined and minimized:

go, gone, going :

With such a representation, a lexical lookup operation amounts to checking whether a word w is a member in the language generated by the automaton, which can be done by walking the automaton along the path indicated by w. This is an extremely efficient operation: it takes exactly one step for each letter of w. We say that the time required for this operation is linear in the length of w. The organization of the lexicon as outlined above is extremely simplistic. The lexicon in this view is simply a list of words. For real application one is usually interested in associating certain information with every word in the lexicon. For simplicity, assume that we do not have to list a full dictionary entry with each word; rather, we only need to store some morpho-phonological information, such as the part-of-speech of the word, or its tense (in the case of verbs) or number (in the case of nouns). One way to achieve this goal is by extending the alphabet : in addition to ordinary letters, can include also special symbols, such as part-of-speech tags, morpho-phonological information, etc. An analysis of a (natural language) word w will in this case amount to recognition by the automaton of an extended word, w, followed by some special tags Example: Adding morphological information to the lexicon Suppose we want to add to the lexicon information about part-of-speech, and we use two tags: -N for nouns, -V for verbs. Additionally, we encode the number of nouns as -sg or -pl, and the tense of verbs as -inf, -prp or -psp (for infinitive, present participle and past participle, respectively). It is very important to note that the additional symbols are multicharacter symbols: there is nothing in common to the alphabet symbol -sg and the sequence of two alphabet letters (s,g) In other words, the extended alphabet is:

With the extended alphabet, we might construct the following automaton:

The language generated by the above automaton is no longer a set of words in English. Rather, it is a set of analyzed strings, namely

Applications of Weighted finite-state transducers in Speech recognition:


Much of current large-vocabulary speech recognition is based on models such as HMMs, tree lexicons, or n-gram language models that can be represented by weighted finite-state transducers. Even when richer models are used, for instance context-free grammars for spoken-dialog applications, they are often restricted, for efficiency reasons, to regular subsets, either by design or by approximation. A finite-state transducer is a finite automaton whose state transitions are labeled with both input and output symbols. Therefore, a path through the transducer encodes a mapping from an input symbol sequence to an output symbol sequence. A weighted transducer puts weights on transitions in addition to the input and output symbols. Weights may encode probabilities, durations, penalties, or any other quantity that accumulates along paths to compute the overall weight of mapping an input sequence to an output sequence. Weighted transducers are thus a natural choice to represent the probabilistic finite-state models prevalent in speech processing. Figure 1 gives some simple, familiar examples of Weighted Finite-State Acceptors (WFSAs) as used in speech recognition. The automaton in Figure (a) is a toy finite-state language model. The legal word sequences are specified by the words along each complete path, and their probabilities by the product of the corresponding transition probabilities. The transducer in Figure (b) gives the possible pronunciations of one of the word data used in the language model. Each legal pronunciation is the sequence of phones along a complete path, and its probability is given by the product of the corresponding transition probabilities. Finally, the transducer in Figure (c)

Weighted finite-state transducers (WFSTs) generalize WFSAs by replacing the single transition label by a pair (i,o) of an input label (i) and an output label (o). While a weighted acceptor associates symbol sequences and weights, a WFST associates pairs of symbol sequences and weights, that is, it represents a weighted binary relation between symbol sequences. Consider the pronunciation lexicon in the figure

Suppose we form the union of this transducer with the pronunciation transducers for the remaining words in the grammar G of Figure (a) and then take its Kleene closure by connecting a -transition from each final state to the initial state. The resulting pronunciation lexicon L would pair any sequence of words from that vocabulary to their corresponding pronunciations. Thus, the following figure gives a description of such scheme that can be used extensively in text-to-speech applications.

With the same methodology, we can represent HMMs for phones mapping them to sequence of words of the given language, which is the main mechanism is speech recognition applications.

Potrebbero piacerti anche