Upload
happydev
View
141
Download
0
Embed Size (px)
Citation preview
SENTIMENT ANALYSIS
размер 7/10
удобство 9/10
камера 4/10
маркет 2/10
Телефон большеват, но удобно лежит в руке, камера удовлетворительная, пока приложений мало
AVIASALES PROCESSING
• из Мурманска в Краснодар 29 декабря
• из Москвы на Пхукет завтра
• Сыктывкар Омск 11.05 вдвоем
CASE INSENSITIVE[«в», «Краснодар», «из», «Мурманска», «29», «Декабря»]
[«в», «краснодар», «из», «мурманска», «29», «декабря»]
STEMMING[«в», «краснодар», «из», «мурманска», «29», «декабря»]
[«в», «краснодар», «из», «мурманск», «29», «декабр»]
RECOGNIZE[«в», «краснодар», «из», «мурманска», «29», «декабря»]
[[«в», :to], [«краснодар», :city], [«из», :from], [«мурманск», :city], [«29», :digit], [«декабр», :month]]
GRAMMAR
destination ::= to city
origin ::= from city
date ::= digit month
request ::= destination origin date
TOKENIZE(defn tokenize [sentence] (->> sentence (split-tokens) (map lower-case) (map stem) (map recognize) (filter identity) vec))
PORTER STEMMER1. Выделить часть rv (после первой гласной)
2. Удалить окончания причастия сов. вида (далее - прилагательное, глагол, существительное)
3. Если на конце «и» - удалить
4. Если заканчивается на «ост/ость» - удалить
5. Если есть «ейш/ейше» удалить
PORTER STEMMER
(defn stem [word] (if (empty? (rv word)) word (-> word step-1 step-2 step-3 step-4a step-4b step-4c)))
GRAMMAR(defgrammar G ( ((:to :city) ::= (:destination (fn [to city] {:destination (get-iata city)}))) ((:from :city) ::= (:origin (fn [from city] {:origin (get-iata city)}))) ((:number :month) ::= (:date (fn [number month] {:date (str (day-to-dd number) (month-to-number month))})))
((:city :city :dates) ::= (:request (fn [origin destination dates] (merge {:origin (get-iata origin)} {:destination (get-iata destination)} dates)))) ) )
ABOUT
АНТОН ПЛЕШИВЦЕВtwitter.com/allaud github.com/allaud
https://www.facebook.com/ant.pl.3
aviasales.ru