Advertisement
Guest User

Untitled

a guest
Apr 7th, 2010
182
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lisp 1.66 KB | None | 0 0
  1. (TOP
  2.   (S
  3.     (NP
  4.       (PRP I))
  5.     (VP
  6.       (VB mind)
  7.       (NP
  8.         (PRP$ their)
  9.         (NN smoking)
  10.         (NNS cigars))
  11.       (PP
  12.         (IN in)
  13.         (NP (PRP$ my)
  14.         (NN car))))
  15.     (. .)))
  16.  
  17.  
  18. Transform -->
  19.  
  20. (:tag TOP :chunk
  21.   (:tag S :chunk
  22.     [(:tag NP :chunk (:tag PRP :chunk I))
  23.      (:tag VP :chunk [(:tag VB :chunk mind)
  24.                       (:tag NP :chunk [(:tag PRP$ :chunk their)
  25.                                        (:tag NN :chunk smoking)
  26.                                        (:tag NNS :chunk cigars)])
  27.                       (:tag PP :chunk [(:tag IN :chunk in)
  28.                                        (:tag NP :chunk (:tag PRP$ :chunk my))
  29.                                        (:tag NN :chunk car)])])
  30.      (:tag . :chunk .)]))
  31.  
  32. (def a '(TOP
  33.      (S
  34.       (NP
  35.        (PRP I))
  36.       (VP
  37.        (VB mind)
  38.        (NP
  39.         (PRP$ their)
  40.         (NN smoking)
  41.         (NNS cigars))
  42.        (PP
  43.         (IN in)
  44.         (NP (PRP$ my)
  45.         (NN car))))
  46.       (. .))))
  47.  
  48. (defn tr [to-parse]
  49.   (cond (symbol? to-parse) to-parse
  50.     (seq to-parse) (let [[tag & body] to-parse]
  51.              `(:tag ~tag :chunk ~(if (> (count body) 1)
  52.                            (map tr body)
  53.                            (tr (first body)))))))
  54.  
  55. (tr a)
  56. (:tag
  57.  TOP
  58.  :chunk
  59.  (:tag
  60.   S
  61.   :chunk
  62.   ((:tag NP :chunk (:tag PRP :chunk I))
  63.    (:tag
  64.     VP
  65.     :chunk
  66.     ((:tag VB :chunk mind)
  67.      (:tag
  68.       NP
  69.       :chunk
  70.       ((:tag PRP$ :chunk their)
  71.        (:tag NN :chunk smoking)
  72.        (:tag NNS :chunk cigars)))
  73.      (:tag
  74.       PP
  75.       :chunk
  76.       ((:tag IN :chunk in)
  77.        (:tag
  78.         NP
  79.         :chunk
  80.         ((:tag PRP$ :chunk my) (:tag NN :chunk car)))))))
  81.    (:tag . :chunk .))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement