Вы находитесь на странице: 1из 5

Efficient parsing using recursive transition networks with output

Javier M. Sastre∗† , Mikel L. Forcada†



Institut Gaspard-Monge, Université Paris Est,
F-77454 Marne-la-Vallée Cedex 2, France


Grup Transducens, Departament de Llenguatges i Sistemes Informàtics, Universitat d’Alacant,
E-03071 Alacant, Spain.
Abstract
We describe here two efficient parsing algorithms for natural language texts based on an extension of recursive transition networks (RTN)
called recursive transition networks with string output (RTNSO). RTNSO-based grammars may be semiautomatically built from samples
of a manually built syntactic lexicon. Efficient parsing algorithms are needed to minimize the temporal cost associated to the size of the
resulting networks. We focus our algorithms on the RTNSO formalism due to its simplicity which facilitates the manual construction
and maintenance of RTNSO-based linguistic data as well as their exploitation.

1. Introduction temporal cost of applying a large RTN to a large corpus


This paper describes two efficient parsing algorithms may be too high for certain applications. We expect to re-
for natural language texts which use recursive transition duce it by employing efficient parsing algorithms.
networks (Woods, 1970) (RTNs) generated from a large
and manually built syntactic lexicon such as the one de- 2. Recursive transition networks with string
fined in (Gross, 1975). Both algorithms are easily defined output
based on the formal definition of RTN with string output1 A non-deterministic RTNSO R = (Q, Σ, Γ, δ, QI , F )
(RTNSOs) given in section 2., which corresponds to a spe- is made of a finite set of states Q = {q1 , q2 , . . . , q|Q| }
cial type of pushdown letter transducer (a pushdown au- (which will also be used as the alphabet for the pushdown
tomaton with output), and the formal definition of the set stack), a finite input alphabet Σ = {σ1 , σ2 , . . . , σ|Σ| }, a
of outputs (such as parses or translations) associated to an finite output alphabet Γ = {γ1 , γ2 , . . . , γ|Γ| }, QI ⊆ Q the
input string given in section 3. A first algorithm for the ef- set of initial states, F ⊆ Q the set of acceptance states, and
ficient computation of that set is given in section 4., paying a transition function
special attention to null closure due to its crucial role in the
algorithm. An explanation of how to modify the preceding δ : Q×((Σ∪{ε})×(Γ∪{ε})) → P(Q×(Q∪{λ})) (1)
algorithm in order to obtain a more complex but also more
efficient Earley-like algorithm is given in section 5. Com- where P(·) represents the set of all subsets of a given set
parative results are given in section 6. Concluding remarks and λ ∈ Q∗ is an empty sequence of states. As to the
close the paper. possible types of transitions:
• Transitions of the form δ(q, (σ, γ)) with σ ∈ Σ and
1.1. Parsing with RTNs and lexicon-grammar
γ ∈ Γ read one input symbol and write an output sym-
Lexicon-grammar is a systematic method for the analy- bol; those of the form δ(q, (σ, ε)) read a symbol but
sis and the representation of the elementary sentence struc- do not write anything, those of the form δ(q, (ε, γ))
tures of a natural language (Gross, 1996) which has pro- do not read an input symbol but write an output sym-
duced, over the last 30 years, a large and fine-grain linguis- bol, and those of the form δ(q, (ε, ε)) neither read nor
tic resource2 describing syntactic and semantic properties write symbols.
of French simple sentences (among other languages) for
13375 simple verbs, 10325 predicative nouns (e.g.: pride • Only transitions of the form δ(q, (ε, ε)) can contain
as in to be proud of) and 39297 idiomatic expressions play- elements of Q × Q in their result set; that is, only
ing the role of predicative element (e.g.: to wear the pants). transitions without input and output can push a state
There exists a technique to semiautomatically build a RTN- onto the stack. These transitions represent a call:
based grammar from samples of the lexicon-grammar for in addition to performing a transition to a new state,
automatic parsing (Roche, 1993). Although the RTN for- they push a return state onto the stack which will be
malism is not the most expressive, its simplicity has per- popped later: (qc , qr ) ∈ δ(qs , (ε, ε)) represents a sub-
mitted its practical application to the analysis of special- routine jump to state qc which pushes the return state
ized domain corpora (Nakamura, 2004) with RTN-based qr onto the stack. The rest of the transitions can only
computer tools (INTEX (Silberztein, 1993), Unitex (Pau- return elements of Q × {λ}, that is, they do not push
mier, 2006), Outilex (Blanc et al., 2006)). However, the anything onto the stack.
1
For instance, the result of parsing as a tagged input. • It has to be noted that δ does not define any transitions
2
Partially available through the HOOP interface (Sastre, which pop states from the stack. This is because states
2006) at http://hoop.univ-mlv.fr can be automatically popped from a nonempty stack
everytime the RTNSO reaches an acceptance state in Finally, we define T (σ1 . . . σl ) the language of transla-
F ; the popped state is reached without consuming any tions of input string σ1 . . . σl as the set of output strings of
input or writing any output. The definition of popping the final part of the SPO (having only final states and no
transitions is implicit in the definition of R. pending return-from-call states) reachable from the initial
SPO (having every initial state coupled with an empty out-
• As a general rule, loops consuming no input but put string and an empty return stack) through zero, one or
generating output or making calls are not allowed: more transitions and consuming the whole input string:
infinite length parses of natural-language input se-
quences make no sense and complicate the correspon- T (σ1 . . . σl ) = {z ∈ Γ∗ : (q, z, λ) ∈
dent parsing algorithms which should avoid falling
∆∗ (QI × {ε} × {λ}, σ1 . . . σl ) ∧ q ∈ F }. (8)
into infinite loops.
4. Processing an input string
3. Language of translations of a string
Based on the formal definition given in the previous
In this section we will formally derive the computation section, we propose a breadth-first algorithm decomposed
of the set of output translations associated to an input string into algorithms 1 (translate string), 2 (translate symbol),
following (Garrido-Alenda et al., 2002). and 3 (closure) to process an input string for a given (non-
During the application of a RTNSO, a triplet (q, z, π) ∈ deterministic) RTNSO and to generate the set of corre-
Q × Γ∗ × Q∗ represents the fact that a partial output (PO) z sponding output strings based on the equations above.
has been generated up to the point of reaching state q with The algorithm keeps for each prefix of the input string
a stack π. We call V ∈ P(Q × Γ∗ × Q∗ ) a set of POs a SPO V , whose elements are triplets of the form (q, z, π)
(SPO); we define ∆ as the PO transition function over a where q ∈ Q is a state, z ∈ Γ∗ is an output string and
SPO for an input symbol as π ∈ Q∗ is a last-in-first-out stack holding states in Q (λ
∆ : P(Q × Γ∗ × Q∗ ) × Σ → P(Q × Γ∗ × Q∗ ) (2) will be used to represent the empty stack), as described in
the previous section. In the algorithms, the RTNSO R =
(Q, Σ, Γ, δ, QI , F ) is treated as a global variable.
∆(V, σ) = {(q 0 , zg, π) : (q 0 , λ) ∈ δ(q, (σ, g)) Based on van Noord’s per subset algorithm (van Noord,
∧ (q, z, π) ∈ V }, (3) 2000), algorithm 3 is an efficient algorithm for the compu-
tation of the ε-closure of a given SPO V . To start it copies
where q, q 0 , qc , qr ∈ Q, z ∈ Γ∗ is an output string, π ∈ Q∗ V into E; then it uses V to store the result of the com-
a stack, σ ∈ Σ an input symbol, and g ∈ Γ ∪ {ε} an output putation and E to keep a trace of the partial outputs that
symbol or an empty output. We define the ε-closure Cε (V ) have not been processed yet. V is iteratively incremented
of a SPO V , with the new reachable states from an arbitrary partial out-
put of E by one ε-transition. Each time a partial output
Cε : P(Q × Γ∗ × Q∗ ) → P(Q × Γ∗ × Q∗ ), (4) of E is retrieved ((q, z, π) ← next(E)) to be processed,
it is also removed from E. Each time a new partial output
as the smallest SPO containing V and every PO directly or
is added to V (if (add(V, (q, z, π))), it is also added to E
indirectly derivable from V through ε-transitions, that is,
(insert(E, (q, z, π)) for further processing. The difference
through zero, one or more transitions without consuming
between add() and insert() is that the former performs a
any input symbol. Informally, elements are added to the
duplicity test before adding the PO to V and returns the
ε-closure through three different kinds of ε-moves until no
boolean result of this test, and the latter adds the PO blindly
more elements are added:
to E and returns nothing.
• Output without input: adding (q 0 , zg, π) for each
(q, z, π) in the closure and for each q 0 and g such that Algorithm 1 translate string(σ1 . . . σl ) . T , eq. (8)
(q 0 , λ) ∈ δ(q, (ε, g)); Input: σ1 σ2 . . . σl , an input string of length l
Output: T , the set of translations
• Call or push: adding (qc , z, πqr ) for each (q, z, π) in
1: V ← closure(QI × {ε} × {λ}) . initial SPO V0
the closure and for each qc and qr such that (qc , qr ) ∈
2: i ← 0
δ(q, (ε, ε));
3: while V 6= ∅ ∧ i < l do . Vi+1 = Cε (∆(Vi , σi+1 ))
• Return or pop: adding (qr , z, π) for each (q, z, πqr ) 4: V ← closure(translate symbol(V, σi+1 ))
in the closure such that q ∈ F ; 5: i←i+1
6: end while
An efficient way to compute the ε-closure is described 7: T ← ∅
in section 4. 8: if i = l then
We recursively define 9: for each (q, z, λ) ∈ V : q ∈ F do
10: T ← T ∪ {z}
∆∗ : P(Q × Γ∗ × Q∗ ) × Σ∗ → P(Q × Γ∗ × Q∗ ), (5)
11: end for
the extension of ∆ to strings in Σ∗ , as follows: 12: end if

∆∗ (V, ε) = Cε (V ) (6) As can be seen, the algorithm is quite simple and does
∆∗ (V, zσ) = Cε (∆(∆∗ (V, z), σ)) (7) not require a complex data structure. At each iteration it
q0
Algorithm 2 translate symbol(V, σ) . ∆(V, σ), eq. (3) a : { q1 q2 b : }
Input: V , the SPO σ, the symbol q0 ε :x q5
Output: W , the SPO after processing σ
1: W ← ∅ a : [ q3 q4 b : ]
q0
2: for each (q, z, π) ∈ V do
3: for each (q 0 , g) : (q 0 , λ) ∈ δ(q, (σ, g)) do Figure 1: Example of RTNSO. Labels of the form x : y
4: W ← W ∪ {(q 0 , zg, π)} represent an input : output pair (e.g.: a : { for transi-
5: end for tion (δ(q0 , a, {) = (q1 , λ)). Dashed transitions represent
6: end for a call to the state specified by the label (e.g.: transition
(δ(q1 , ε, ε) = (q2 , q0 )).
Algorithm 3 closure(V ) . Cε (V )
Input: V , the SPO whose ε-closure is to be computed
However, it is up to the parsing algorithm to detect that the
Output: V after computing its ε-closure
same calling transition is made multiple times at an input
1: E ← V . unprocessed PO queue
point so the called subautomaton is processed only once.
2: while E 6= ∅ do
Based on Earley’s context-free grammar parsing algorithm
3: (q, z, π) ← next(E)
(Earley, 1970)3, we show here a modified and more effi-
4: for each (q 0 , g) : (q 0 , λ) ∈ δ(q, (ε, g)) do . ε-
cient version of the algorithm in section 4. which is able to
5: if add(V, (q 0 , zg, π)) then . transitions
process left-recursive RTNSOs, and which factores out the
6: insert(E, (q 0 , zg, π))
computation of infix calls by parallel analyses, as for the
7: end if
RTNSO of Fig. 1.
8: end for
We exchange the use of a return state stack for a more
9: for each (qc , qr ) ∈ δ(q, (ε, ε)) do
complex representation of POs, which mainly involves a
10: if add(V, (qc , z, πqr )) then . push-
modification of the ε-closure algorithm: when a call tran-
11: insert(E, (qc , z, πqr )) . transitions
sition to a state qc is found, a paused PO until the comple-
12: end if
tion of the call is generated as well as a new PO starting the
13: end for
called subanalysis from qc and the current input point, if
14: if π = π 0 qr ∧ q ∈ F ∧ add(V, (qc , z, πqr )) then
not already started. Each time a subanalysis is completed,
15: insert(E, (qr , z, π 0 )) . pop-transition
a resumed PO is generated for every concatenation of the
16: end if
paused POs depending on it and the substring generated by
17: end while
the subanalysis.

5.1. Language of translations through Earley-like


computes the SPO that can be derived from the precedent processing
one by recognizing the next input symbol, so it suffices
POs are represented as 5-tuples (q, z, qc , qh , i) ∈ (Q ×
to store two SPOs at a time. It firstly fills in the next SPO
Γ∗ × (Q ∪ λ) × Q × N), where q is the current state, qh
with the POs directly reachable through one transition con-
the state that initiated this subanalysis, i the input position
suming the next input symbol, then it completes the SPO
where this subanalysis began (i representing the point be-
with the following reachable POs through one or more ε-
tween σi and σi+1 , so 0 is the point before the first input
transitions, call and return transitions included. Two im-
symbol), z the output generated from state qh and input
portant limitations of the algorithm are: (a) the impossibil-
position i up to state q and the current input position, and
ity of parsing with RTNs representing left-recursive gram-
qc the start state of the subanalysis which this PO depends
mars since the computation of the ε-closure would try to
on (λ if no subanalysis completion is required, that is, for
generate a PO with an infinite stack of return states, and
POs which are not paused but active).
(b) the fact that for a SPO Vi having two POs with differ-
We extend the PO transition function ∆ of eq. (3),
ent stacks and/or outputs from where a call to a same state
which corresponds to Earley’s “scanner”, as follows:
qc is performed, the computation of every PO derived from
the call to qc is performed twice although it could be fac-
∆ : P(Q × Γ∗ × (Q ∪ {λ}) × Q × N) × Σ →
tored (for instance,
P for the RTNSO of Fig. 1 call to state q0
is computed 2n+1 times for a string an bn when it could P(Q × Γ∗ × (Q ∪ {λ}) × Q × N) (9)
be computed n + 1 times by factoring out common calls).
In the next section we show how to modify this algorithm ∆(V, σ) = {(q 0 , zg, λ, qh , i) : (q 0 , λ) ∈ δ(q, (σ, g))∧
to avoid both limitations. (q, z, λ, qh , i) ∈ V } (10)
5. Earley-like RTNSO processing Note that the function does not apply on POs depending on
Finite-state automata can give a compact representation a subanalysis: they stay paused until the completion of the
of a set of sequences by factoring out common prefixes and subanalysis.
suffixes. RTNs can also factor infixes by defining only a
subautomaton for each repeated set of infixes and by using 3
(Woods, 1970) mentions an adaptation of Earley’s algorithm
transitions calling the initial state of the corresponding sub- for RTNs in (Woods, 1969). However we have not been able to
automaton each time any infix in the set is to be recognized. obtain the latter paper.
Let i, j, k ∈ N such that i ≤ j ≤ k, we redefine the ε- 6. Empirical tests
moves of the ε-closure in section 3. for 5-tuples as follows: Both algorithms have been programmed using C++ and
STL and execution times measured for the RTNSO of
• Output without input: analogously to the pre- Fig. 1 in a Linux Debian platform with a 2.0 GHz Pentium
ceding version, we add (q 0 , zg, λ, qh , j) for each IV Centrino processor and a 2 GB RAM (see Fig. 2(a)). As
(q, z, λ, qh , j) in the closure of Vk and for each q 0 and expected, our first algorithm has an exponential cost even
g such that (q 0 , λ) ∈ δ(q, (ε, g)); for an acceptor version, that is, without output generation.
Although Earley’s algorithm cost is n3 , our Earley-based
• Call or push: analogously to Earley’s “predictor”,
algorithm has also an exponential cost. A pure Earley algo-
we add (qr , z, qc , qh , j) and (qc , ε, λ, qc , k) for each
rithm (without output generation) would have a linear cost
(q, z, λ, qh , j) in the closure of Vk and for each qc and
for our example grammar (see Fig. 2(b)). An exponential
qr such that (qc , qr ) ∈ δ(q, (ε, ε)); (qr , z, qc , qh , j)
number of steps are saved due to the factoring of an ex-
is the new paused PO depending on the subanalysis
ponential number of state calls; however, when we resume
started by the new PO (qc , ε, λ, qc , k);
a set of paused POs with every completion of their com-
mon subanalysis, we are computing a cartesian product of
• Return or pop: analogously to Earley’s “completer”,
the concatenations of every output of every PO with every
for each (q, z, λ, qc , j) such that q ∈ F (the com-
output of every subanalysis completion. Earley’s base al-
pleted POs) and for each (q 0 , z 0 , qc , qh , i) ∈ Vj (the
gorithm is only a recognizer; it can be easily modified in
paused POs depending on the completed one) we add
order to compute the set of parses, but if this set grows ex-
(q 0 , z 0 z, λ, qh , i) to the closure of Vk (we resume them
ponentially w.r.t. the input length the cost cannot be kept
with the concatenation of the paused PO and the com-
to polynomial time.
pleted PO);
We have implemented modified versions of both algo-
The extension of ∆ to strings in Σ∗ (eqs. 6 & 7) re- rithms which use pointers or handles to the nodes of a trie
mains unchanged except for the use of the newly defined in order to represent sequences. This allows PO compar-
∆ and ε-closure. isons to avoid expensive string comparisons. During the
Finally, the language of translations T (σ1 . . . σl ) stays traversal of a consuming transition, the transition output
the same except for the adaptation to the new SPO repre- is efficiently appended to the string since its handle points
sentation and the use of the newly defined functions: to the last sequence symbol. Our first algorithm experi-
ences an exponential speed up with the use of tries, but
our Earley-based algorithm shows an even worse tempo-
T (σ1 . . . σl ) = {z ∈ Γ∗ : (q 0 , z, λ, qh , 0) ∈ ral cost. This is because the completion of a subanalysis
∆∗ ({(q, ε, λ, q, 0) : q ∈ QI }, σ1 . . . σl ) ∧ q 0 ∈ involves the concatenation of two sequences, an operation
F ∧ qh ∈ QI }, (11) where a trie structure is not so helpful.

that is, the outputs of the POs completing (q 0 ∈ F ) an 7. Conclusion


initial state (qh ∈ QI ) and not depending on a subanalysis, We have first given here an efficient and simple parsing
which are indirectly derived from an initial PO (external algorithm for natural language texts with RTNSOs with
calls to the initial states of the RTNSO). two limitations: left-recursive RTNSOs cannot be pro-
The adaptation of algorithms 1 (translate string) and 2 cessed and infix calls are not factored. Based on Ear-
(translate symbol) is trivial and will not be given here. Al- ley’s parsing algorithm for context-free grammars, we have
gorithm 4 replaces algorithm 3 and is an almost straighfor- shown how to modify the precedent algorithm in order to
ward implementation of the ε-closure for Earley-like pro- suppress both limitations. Finally, we have given some
cessing. As stated in (Earley, 1970), ε-transitions may lead comparative results which show that output generation,
to analyses which may partially reject correct parses. No- rather than being a simple issue, complicates algorithms
tice that if a subanalysis starting at an SPO Vi is completed up to obtaining exponential time costs in spite of the poly-
without input consumption (ε-completion), the paused POs nomial time of the acceptor-only algorithms.
to be resumed will belong to the same SPO Vi . If a paused We are currently studying the use of an RTN-like struc-
PO depending on the same subanalysis is generated in the ture to efficiently build and store the resulting set of trans-
same SPO Vi after the ε-completion of the subanalysis, lations, to avoid an exponential complexity.
this paused PO will not be resumed by the precedent ε- Acknowledgements: This work has been partially sup-
completion and thus every derived parse will not be re- ported by the Spanish Government (grant number
turned. Algorithm 4 creates an initially empty set T of TIN2006–15071–C03–01), by the Universitat d’Alacant
ε-translations which it fills with the pairs (qh , z) extracted (grant number INV05-40), by the MENRT and by the
from every ε-completed subanalysis (q, z, λ, qh , j). Each CNRS. We thank Pr. E. Laporte for his useful comments.
time a paused PO (qr , z, qc , qh , j) is generated, it firstly
verifies if call to qc was already performed and if it led 8. References
to a ε-completion (there exists at least a ε-translation for Blanc, Olivier, Matthieu Constant, and Éric Laporte, 2006.
state qc ). If so, the paused PO is immediately resumed for Outilex, plate-forme logicielle de traitement de textes
each ε-translation in T ; if not, call to state qc is normally écrits. In Proceedings of TALN’06. Leuven, Belgium:
performed. UCL Presses universitaires de Louvain.
Algorithm 4 closure(V, k) . Cε (Vk ) algorithm 1 alg. 1 + trie alg. 1 no output
Earley + trie Earley
Input: V , the SPO whose ε-closure is to be computed; k, 1000
the current input position
Output: V after computing its ε-closure
100
1: T ← ∅ . ε-completion set
2: E ← V . unprocessed PO queue
10
3: while E 6= ∅ do time
4: (q, z, λ, qh , j) ← next(E) (sec)
5: for each (q 0 , g) : (q 0 , λ) ∈ δ(q, (ε, g)) do . ε- 1
6: if add(V, (q 0 , zg, λ, qh , j)) then . TRANS.
7: insert(E, (q 0 , zg, λ, qh , j)) 0.1
8: end if
9: end for 0.01
10: for each (qc , qr ) ∈ δ(q, (ε, ε)) do . PREDICT. 11 12 13 14 15 16 17 18 19
11: if add(V, (qr , z, qc , qh , j)) then . paused input length (n for input a n b n)
12: if {(g : (qc , g) ∈ T } 6= ∅ then . ε-com- (a)
13: for each {g : (qc , g) ∈ T } do . plet. Earley acceptor (without output generation)
14: if add(V, (qr , zg, λ, qh , j)) then 4
15: insert(E, (qr , zg, λ, qh , j))
16: end if 3
17: end for
18: else if add(V, (qc , ε, λ, qc , k)) then time
(sec) 2
19: insert(E, (qc , ε, λ, qc , k)) . sub-
20: end if . analysis
1
21: end if
22: end for
0
23: if q ∈ F then . COMPLETER
0 00 00 00 00 00
24: for each (q 0 , z 0 , qh , qh0 , i) ∈ Vj do . paused 0,0 0,0 0,0 0,0 0,0
10 20 30 40 50
25: if i = k then . register ε-completion input length (n for input a n b n)
26: T = T ∪ {(qh , z)}
(b)
27: end if
28: if add(V, (q 0 , z 0 z, λ, qh0 , i)) then . resu-
29: insert(E, (q 0 , z 0 z, λ, qh0 , i)) . med Figure 2: Comparative graphics of execution times (in sec-
30: end if onds) w.r.t. input length (n) of the different algorithms for
31: end for the RTNSO of Fig. 1 and input an bn . Notice the loga-
32: end if rithmic scale of the vertical axis of graphic 2(a): all of its
33: end while functions are exponential.

Roche, Emmanuel, 1993. Analyse syntaxique transfor-


Earley, Jay, 1970. An efficient context-free parsing algo- mationnelle du français par transducteurs et lexique-
rithm. Commun. ACM, 13(2):94–102. grammaire. Ph.D. thesis, Université Paris 7, Paris.
Garrido-Alenda, Alicia, Mikel L. Forcada, and Rafael C. Sastre, Javier M., 2006. HOOP: a Hyper-Object Ori-
Carrasco, 2002. Incremental construction and mainte- ented Platform for the management of linguistic
nance of morphological analysers based on augmented databases. Presentation in Lexis and Grammar Confer-
letter transducers. In Proceedings of TMI 2002 (Theo- ence, Palermo, Italy, September 6-9. Abstract available
retical and Methodological Issues in Machine Transla- at http://www-igm.univ-mlv.fr/˜sastre/
tion, Keihanna/Kyoto, Japan, March 2002). publications/sastre06b.zip.
Gross, Maurice, 1975. Méthodes en Syntaxe. Paris: Her- Silberztein, Max D., 1993. Dictionnaires électroniques
mann. et analyse automatique de textes. Le système INTEX.
Gross, Maurice, 1996. Lexicon Grammar. Cambridge: Paris: Masson.
Pergamon Press, pages 244–258. van Noord, Gertjan, 2000. Treatment of epsilon moves in
Nakamura, Takuya, 2004. Analyse automatique d’un dis- subset construction. Comput. Linguist., 26(1):61–76.
cours spécialisé au moyen de grammaires locales. In Woods, William A., 1969. Augmented transition networks
Fairon C. et Dister A. Purnelle G. (ed.), JADT 2004, for natural language analysis. Rep. CS-1, Comput. Lab.,
International Conference on the Statistical Analysis of Harvard U., Cambridge, Mass.
Textual Data. Louvain-la-Neuve: UCL Presses univer- Woods, William A., 1970. Transition network gram-
sitaires de Louvain. mars for natural language analysis. Commun. ACM,
Paumier, Sébastien, 2006. Unitex 1.2 User Manual. 13(10):591–606.
Université de Marne-la-Vallée. http://www-igm.
univ-mlv.fr/˜unitex/UnitexManual.pdf.

Вам также может понравиться