-
-(defun find-ustr-normalized-multiword (str &key (srl *current-srl*))
- "Return sorted list of ustr's that match a multiword string"
- (let* ((words (delimited-string-to-list str #\space))
- (ustrs '())
- (nwords '()))
- (dolist (word words)
- (let ((nws (lvg:process-terms word)))
- (dolist (nword nws)
- (push nword nwords))))
- (dolist (word nwords)
- (setq ustrs (append ustrs (find-ustr-word word :srl srl))))
- (sort-score-ustr-str str (delete-duplicates ustrs :test #'eql :key #'ustr-cui))))
-
-(defun a (str)
- (find-normalized-matches-for-str str #'find-ustr-normalized-word #'ustr-sui))
-
-(defun find-normalized-matches-for-str (str lookup-func key-func)
- "Return list of objects that normalize match for words in string,
-eliminate duplicates."
- (let ((objs '())
- (nwords '()))
- (dolist (word (delimited-string-to-list str #\space))
- (dolist (nword (lvg:process-terms word))
- (unless (member nword nwords :test #'string-equal)
- (push nword nwords))))
- (dolist (nw nwords)
- (setq objs (append objs (funcall lookup-func nw))))
- (delete-duplicates objs :key key-func :test #'eql)))