5866807fcb3d1e454748f5907d5a58bd6e1d3a09
[chise/concord-kanbun.git] / concord-kanbun-dump.el
1 (defun concord-kanbun-corpus-insert-morpheme (morpheme)
2   (let ((entry (concord-object-get morpheme '->entry@morpheme))
3         (word-class (concord-object-get morpheme '->word-class))
4         (canonical-form (concord-object-get
5                          morpheme '->entry@morpheme/canonical))
6         (ja-form (concord-object-get morpheme 'ja-form))
7         (ja-kana (concord-object-get morpheme 'ja-kana))
8         (ja-conj-type (concord-object-get morpheme 'ja-conjugation-type)))
9     (when entry
10       (setq entry (concord-object-get (car entry) '=name)))
11     (when word-class
12       (setq word-class
13             (split-string
14              (concord-object-get (car word-class) '=name)
15              ",")))
16     (setq canonical-form
17           (if canonical-form
18               (concord-object-get (car canonical-form) '=name)
19             entry))
20     (insert
21      (format "%s\t%s,%s,%s,%s,%s,*,%s,%s,%s,%s\n"
22              (or entry "*")
23              (or (car word-class) "*")
24              (or (nth 1 word-class) "*")
25              (or (nth 2 word-class) "*")
26              (or (nth 3 word-class) "*")
27              (or (nth 4 word-class) "*")
28              (or canonical-form "*")
29              ja-form ja-kana ja-conj-type))))
30
31 (defun concord-kanbun-dump-file (source dest-dir)
32   (with-temp-buffer
33     (let ((coding-system-for-write 'utf-8-jp-er)
34           (i 1)
35           s-obj morphemes)
36       (while (setq s-obj (concord-decode-object
37                           '=id (intern (format "%s/%s" source i))
38                           'sentence@zh-classical))
39         (when (setq morphemes (concord-object-get s-obj '->morphemes))
40           (dolist (morpheme morphemes)
41             (concord-kanbun-corpus-insert-morpheme morpheme))
42           (insert "EOS\n"))
43         (setq i (1+ i)))
44       (write-region (point-min)(point-max)
45                     (expand-file-name source dest-dir)))))