Your SlideShare is downloading. ×
  • Like
Kuznetcov
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Now you can save presentations on your phone or tablet

Available for both IPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Kuznetcov

  • 618 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
618
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
5
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Построение  поиска объявлений  об одинаковых товарах  с помощью  opensource-технологий Александр Кузнецов  Grid Dynamics, Саратов
  • 2. Поиск объявлений  об одном и том же товаре
      • NEW Haier 10.2" Portable LCD Digital TV with A/V Remote
      • Haier HLT10 Portable 10.2" Digital LCD TV NIB
      • NEW Haier HLT10 10'' LCD Television Portable
      • Sharp AQUOS LC-20SH4U 20'' LCD Television w/ wall mount
      • Sony Bravia KDL-V32XBR1 LCD 32" QU Mount
    •  
  • 3. Этапы обработки
  • 4. Выделение брэнда
      • NEW Haier 10.2" Portable LCD Digital TV with A/V Remote
      • Sharp AQUOS LC-20SH4U 20'' LCD Television w/ wall mount
      • Sony Bravia KDL-V32XBR1 LCD 32" QU Mount
    •  
    •  
  • 5. Размер экрана
      • NEW Haier 10.2" Portable LCD Digital TV with A/V Remote
      • Haier HLT10 Portable 10.2" Digital LCD TV NIB
      • Haier LCD 7in Portable Tv new in the box w/ remote
    •  
  • 6. Объект объявления
      • Sony Bravia KDL-V32XBR1 LCD 32" QU Mount
      • Haier HLT10 Portable 10.2" Digital LCD TV NIB
      • Sharp AQUOS LC-20SH4U 20'' LCD Television w/ wall mount
    •  
    • Словарь синонимов.
    • Удалить лишние слова, оставить суть.
    •  
      • Mount
      • TV 
      • TV with mount
    •  
    •  
    •  
  • 7. Hiden Markov Model  для выделения объекта
  • 8. Обучение Hiden Markov Model
    • Дан набор последовательностей. 
    • Определяются вероятности в модели.
  • 9. Библиотека для HMM
    • jahmm Java реализация алгоритмов, относящихся к Hidden Markov Model (HMM). 
    •  
    • Алгоритмы: 
    • Viterbi, Forward-Backward, Baum-Welch 
    • http://code.google.com/p/jahmm/
    •  
    •  
    •  
  • 10. Нахождение объекта объявления
      • Проверить, попадает ли наше объявление в уже размеченные образцы. Такие объявления составляют около 80-90 процентов.
      • Если нет, использовать HMM.
    •  
  • 11. Поиск Lucene
    • Используется Lucene. Почему?
      • Free and open source
      • Написана на Java и перенесена на другие языки
      • Зрелый проект
  • 12. Кто использует Lucene?
  • 13. Lucene
    • Doug Cutting - создатель Lucene, Hadoop.
    •  
      • Март 2000 - первый публичный релиз на  SourceForge.
      • Сентябрь 2001 - проект присоединяется к Apache Software Foundation. 
      • Февраль 2005 - становится top-level Apache project.
      • Июнь 2010 - выпущена последняя стабильная версия 3.0.2.
    •  
  • 14. Логическая структура Lucene
  • 15. Добавление документа в Lucene
  • 16. Lucene Analyzer
  • 17. Обратный индекс
  • 18. Запросы title:extreme –subject:sports title:"junit action"~5 java*   java~
  • 19. Boolean and Term Query
  • 20. Ранжирование Модель векторного пространства для ранжирования. Документ и запрос - векторы.      
  • 21. Не все так просто
    • Boost может быть для:
        • Document
        • Field
        • Query
        • Term в запросе
    • Вложенные запросы
  • 22. Реальная формула
  • 23. Поиск объявлений
  • 24. Формирование запроса
  • 25. Почему не подходит Lucene score
    • Проблема с отсечением результатов - нужно понять, какие совпадения оставить, а какие убрать.
    •  
    • Запрос состоит из нескольких BooleanQuery. Поэтому  значение ранга в значительной степени зависит от их количества. Нужно подбирать формулу для каждой комбинации параметров.
    •  
  • 26. Отбор правильных совпадений
    • Можно написать множество условных выражений, но есть способ лучше - машинное обучение. 
    •  
    • if(p1.size() == p2.size()){
    •    if(dist(p1.brands() ,p2.brands()) < 0.7){
    •         return false;
    •    }
    • }
    • Для этого нужно сделать обучающую выборку. 
    • Около 1000 объявлений будет достаточно для наших целей.
  • 27. Weka
    • Weka (Waikato Environment for Knowledge Analysis) — это cвободное программное обеспечение для анализа данных, которое было написано на Java в университете Уайкато (Новая Зеландия) и распространяется по лицензии GNU GPL.
  • 28. Weka
      • 1993 - Университет Уайкато начал разработку первой версии Weka на Tcl/Tk и C.
      • 1997 - Принято решение переписать весь код с нуля на языке Java.
      • 2005 - Weka получила награду Data Mining and Knowledge Discovery Service Award от SIGKDD.
      • 2006 - Pentaho Corporation приобрела эксклюзивную лицензию на использование Weka в своих продуктах для анализа данных.
      • Июль 2010 - последняя стабильная версия 3.7.2.
  • 29. Weka Instances
    • Данные - картежи ( a , b , c , d , e)
    •  
    • Типы данных:
      • Натуральные числа;
      • Действительные числа;
      • Строки;
      • Значения из некоторого конечного множества, например, класс объекта;
      • Дата;
      • Композитный тип.
    •    
  • 30. Входной формат данных arff
    • @RELATION iris @ATTRIBUTE sepallength    REAL @ATTRIBUTE sepalwidth     REAL @ATTRIBUTE petallength    REAL @ATTRIBUTE petalwidth      REAL @ATTRIBUTE class     {Iris-setosa,Iris-versicolor,Iris-virginica} @DATA 5.1,3.5,1.4,0.2,Iris-setosa
    • 4.9,2.5,4.5,1.7,Iris-virginica
    • 5.4,3.0,4.5,1.5,Iris-versicolor
  • 31. Weka filters
    • Решают задачи по: 
    •  
      • дискретизации данных,
      • изменению атрибутов,
      • разбиению исходной выборки на обучающую и тестовую
    •  
    • и многое другое
  • 32. Weka Classifiers
    • Набор алгоритмов для классификации:
      • J48  алгоритм C4.5 Desion Tree
      • RandomForest
      • NaiveBayes
      • SMO
    • Набор для кластеризации: 
      • Expectation Maximization
      • K-Means
    • Алгоритм Apriori
    •  
    • и много других.
  • 33. Представление кандидатов в совпадающие объявления как векторов
    • Одно свойство - одно измерение.
    • Число сопоставляется по следующей формуле:
    •  
  • 34. SVM
  • 35. SVM SMO
    • Точность алгоритма составляет около 75-90 процентов, в зависимости от категории. 
    •  
    • Пример для компьютеров:
          • -1.3665 * brand -0.9833 * voltage -1.3506 * setQuantaty -0.9969 * inchSize -2.4578 * numberinfo -2.9749 * all +3.5519
  • 36. Desion trees J48
  • 37. Dession tree
    • Точность алгоритма составляет около 79-95 процентов, в зависимости от категории. 
    •  
    • Пример для телевизоров:
    •  
    • brand <= 0: not a match (133.0/2.0) brand > 0 |     numberinfo <= 0 |     |     goodType <= 0.333333 |     |     |     type <= 0.3: not a match (48.0/1.0) |     |     |     type > 0.3
    • ..............
  • 38. Выводы
      • Используя open-source библиотеки можно быстро построить систему поиска объявлений;
      • На категории не нужно много ассесерских данных
      • Если процент ошибок велик, то есть не выделенный  фактор