Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (TOP
- (S
- (NP
- (PRP I))
- (VP
- (VB mind)
- (NP
- (PRP$ their)
- (NN smoking)
- (NNS cigars))
- (PP
- (IN in)
- (NP (PRP$ my)
- (NN car))))
- (. .)))
- Transform -->
- (:tag TOP :chunk
- (:tag S :chunk
- [(:tag NP :chunk (:tag PRP :chunk I))
- (:tag VP :chunk [(:tag VB :chunk mind)
- (:tag NP :chunk [(:tag PRP$ :chunk their)
- (:tag NN :chunk smoking)
- (:tag NNS :chunk cigars)])
- (:tag PP :chunk [(:tag IN :chunk in)
- (:tag NP :chunk (:tag PRP$ :chunk my))
- (:tag NN :chunk car)])])
- (:tag . :chunk .)]))
- (def a '(TOP
- (S
- (NP
- (PRP I))
- (VP
- (VB mind)
- (NP
- (PRP$ their)
- (NN smoking)
- (NNS cigars))
- (PP
- (IN in)
- (NP (PRP$ my)
- (NN car))))
- (. .))))
- (defn tr [to-parse]
- (cond (symbol? to-parse) to-parse
- (seq to-parse) (let [[tag & body] to-parse]
- `(:tag ~tag :chunk ~(if (> (count body) 1)
- (map tr body)
- (tr (first body)))))))
- (tr a)
- (:tag
- TOP
- :chunk
- (:tag
- S
- :chunk
- ((:tag NP :chunk (:tag PRP :chunk I))
- (:tag
- VP
- :chunk
- ((:tag VB :chunk mind)
- (:tag
- NP
- :chunk
- ((:tag PRP$ :chunk their)
- (:tag NN :chunk smoking)
- (:tag NNS :chunk cigars)))
- (:tag
- PP
- :chunk
- ((:tag IN :chunk in)
- (:tag
- NP
- :chunk
- ((:tag PRP$ :chunk my) (:tag NN :chunk car)))))))
- (:tag . :chunk .))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement