Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Центр помощи > [Lisp] Списки. Помогите в программе


Автор: Darya10 22.5.2010, 20:27
Здравствуйте, помогите пожалуйста в написании программы...
Программа заключается в следующем: Нужно определить негативное или позитивное сообщение... То есть, у нас есть 3 списка: первый-список негативных слов, второй-список позитивных слов, и третий это сообщение, о котором нужно сказать позитивное оно или нет... То есть нужно посчитать количество отрицательных и положительных слов в сообщении, потом их количество сравнить и сделать вывод о характере сообщения.

по умному смысл вот в чем : Примитивный классификатор основан на подсчете положительных и отрицательных коннотаций слов. Если разность больше (или меньше) некоторого порога, сообщение классифицируется как положительное (или негативное), в противном случае – как нейтральное. 

Код

(defun test (positive-dict negative-dict message)
        (loop for word in message
              when (member word positive-dict) count it into pos
              when (member word negative-dict) count it into neg
              finally (return
                        `(message is
                                  ,(cond ((> pos neg) 'positive)
                                         ((< pos neg) 'negative)
                                         (t 'neutral))))))

(test '(good) '(bad) '(lisp is good))
; => (MESSAGE IS POSITIVE)

(test '(good) '(bad) '(lisp is bad))
; => (MESSAGE IS NEGATIVE)

(test '(good) '(bad) '(lisp is good or bad))
; => (MESSAGE IS NEUTRAL)



но возникает вопрос!? а если встречаются комбинации слов "not bad"(хорошо) "not good"(плохо), то как тогда быть????

подскажите пожалуйста

Если есть возможность помогите пожалуйста, очень прошу!!!! Заранее благодарна всем кто откликнется!!!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)