It is based on the hidden Markov model and requires few resources to accurately tag words.
Quick assessment (2023-08-06)
- Lines 239–243 of io-builtin.lisp: Tricky because code-char can return nil (e.g. for Unicode surrogates).
- Lines 74–91 of vector-resource.lisp: Uses static arrays in ACL. Could probably use static-vectors here.
- Lines 427–462 of cl-extensions.lisp: Shadows file-length to make it work with string-stream.
- Lines 254–316 of cl-extensions.lisp: This "disembodied call-next-method" looks tough for portability.
- Lines 85–98 of lexicon-protocol.lisp: Wants to call the effective method directly, but it's not very portable.
- © 1991–1993 Xerox Corporation and provided "only for non-commercial research or educational purposes."
For file-length, this might be portable enough:
(defmethod file-length ((stream string-stream))
(let ((position (file-position stream)))
(file-position stream :end)
(prog1 (file-position stream)
(file-position stream position))))
Somewhat related to file-position on non-files.
Topics: Natural Language Processing, Text