def test_title_of_wizard_image_on_page2(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/2.html")
     self.assertEqual(
         ideal.get_substitution(markup, 5).title,
         "Картинки по запросу карандаш")
 def test_media_links_on_page2(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/2.html")
     media_links = ideal.get_substitution(markup, 5).media_links
     self.assertEqual(
         media_links[0],
         "http://www.lesyadraw.ru/raznye/predmety/kak-narisovat-karandash-na-bumage-poetapno.html"
     )
     self.assertEqual(media_links[1],
                      "http://i-fakt.ru/interesnye-fakty-o-karandashe/")
     self.assertEqual(
         media_links[2],
         "https://wordassociations.net/ru/%D0%B0%D1%81%D1%81%D0%BE%D1%86%D0%B8%D0%B0%D1%86%D0%B8%D0%B8-%D0%BA-%D1%81%D0%BB%D0%BE%D0%B2%D1%83/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88"
     )
     self.assertEqual(media_links[3],
                      "http://getpen.ru/staedtler-noris-pencil-2b/i/915")
     self.assertEqual(
         media_links[4],
         "https://www.etudesite.ru/catalog/lastiki_karandashi_quot_perfection_quot/"
     )
     self.assertEqual(
         media_links[5],
         "https://www.popmech.ru/history/12293-kto-i-kogda-izobrel-karandash/"
     )
예제 #3
0
def get_max_distance(algorithm, golden_set):
    path = "../golden/" + golden_set + "/"
    N = 50
    part = 0.5
    ideal_parser = IdealParser(path)

    learn_nums = range(int(N * part))
    test_nums = range(int(N * part), N)

    markup_list = list()
    for i in learn_nums:
        markup_list.append(
            ideal_parser.extract_markup(str(i) + "_markup.json"))

    algorithm.directory = path
    algorithm.learn(markup_list)
    mx_dist = 0
    mx_ind = 0
    for i in test_nums:
        with open(path + str(i) + ".html", "r") as file:
            string = file.read()
        parser_result = algorithm.parse(string)
        ideal_result = ideal_parser.parse(string)
        dist = metric.distance(parser_result, ideal_result)
        if dist > mx_dist:
            mx_dist, mx_ind = dist, i

    return mx_dist, mx_ind
 def test_page_url_of_wizard_image_on_page1(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/1.html")
     self.assertEqual(
         ideal.get_substitution(markup, 3).page_url,
         "https://www.google.ru/search?q=%D1%8F%D0%B4&newwindow=1&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwj62dOj8tvWAhWmFJoKHVGvDzoQsAQIQw"
     )
 def test_page_url_of_wizard_image_on_page1(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/1.html")
     self.assertEqual(
         ideal.get_substitution(markup, 7).page_url,
         "https://yandex.ru/images/search?text=%D1%8F%D0%B4&stype=image&lr=2&noreask=1&parent-reqid=1507840705773924-1204282718026678870245913-vla1-2156&source=wiz"
     )
예제 #6
0
 def get_markup_list(self, path, part=0.5):
     N = 50
     markup_list = list()
     ideal_parser = IdealParser(path)
     for i in range(int(N * part)):
         markup_list.append(
             ideal_parser.extract_markup(str(i) + "_markup.json"))
     return markup_list
 def test_page_url_of_wizard_image_on_page2(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/2.html")
     self.assertEqual(
         ideal.get_substitution(markup, 5).page_url,
         "https://www.google.ru/search?q=%D0%BA%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88&newwindow=1&tbm=isch&tbo=u&source=univ&sa=X&ved=0ahUKEwic0a6D9tvWAhWJDpoKHUJRDREQsAQIUg"
     )
 def test_media_links_on_page1(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/1.html")
     media_links = ideal.get_substitution(markup, 3).media_links
     self.assertEqual(media_links[0], "http://www.i-sonnik.ru/yad/")
     self.assertEqual(media_links[1],
                      "http://lfly.ru/sonnik-yad-k-chemu-snitsya-yad.html")
     self.assertEqual(media_links[2], "http://ohrana.ru/articles/37425/")
     self.assertEqual(media_links[3],
                      "http://himsnab-spb.ru/article/pi/toxin/")
     self.assertEqual(media_links[4],
                      "http://bezsna.net/tolkovanie_snov/4832-yad.html")
 def test_fields_of_last_result_search_on_page1(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/1.html")
     search_result = ideal.get_substitution(markup, 9)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url, "https://vk.com/jaxta")
     self.assertEqual(search_result.title, "ЯД | ВКонтакте")
     self.assertEqual(
         search_result.snippet,
         "6 дней назад - Отбираем туда 3% самых популярных и обсуждаемых по Вашему мнению постов с ЯД, FORMATICA и ShockBlast и выкладываем ночью,\xa0..."
     )
     self.assertEqual(search_result.view_url, "https://vk.com/jaxta")
 def test_media_links_on_page1(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/1.html")
     media_links = ideal.get_substitution(markup, 7).media_links
     self.assertEqual(
         media_links[0],
         "im0-tub-ru.yandex.net/i?id=353e0e40d1d5ddf2f7a6be4fc3834d53&n=22")
     self.assertEqual(
         media_links[1],
         "im0-tub-ru.yandex.net/i?id=a64b49cb5028dde1632048248050d956&n=22")
     self.assertEqual(
         media_links[2],
         "im0-tub-ru.yandex.net/i?id=52a9ed57daafb3f8bcf99d2784695e78&n=22")
 def test_fields_of_first_result_search_on_page1(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/1.html")
     search_result = ideal.get_substitution(markup, 0)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url, "https://money.yandex.ru/")
     self.assertEqual(search_result.title,
                      "Яндекс.Деньги — сервис онлайн-платежей")
     self.assertEqual(
         search_result.snippet,
         "Оплата товаров и услуг через интернет, перевод денег на счета или банковские карты. Возможность оформить виртуальную или пластиковую банковскую карту."
     )
     self.assertEqual(search_result.view_url, "https://money.yandex.ru/")
 def test_fields_of_first_result_search_on_page2(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/2.html")
     search_result = ideal.get_substitution(markup, 0)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url,
                      "http://karandash-production.ru/")
     self.assertEqual(search_result.title, "Карандаш")
     self.assertEqual(
         search_result.snippet,
         "02.12.2016. Новая песня Карандаш и Lenin - Жечь! 31.10.2016. Бекстейдж клипа \"Отражение\". 05.02.2016. Итоги 2015г.- Карандаш для RHYME Magazine."
     )
     self.assertEqual(search_result.view_url, "karandash-production.ru/")
 def test_fields_of_last_result_search_on_page1(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/1.html")
     search_result = ideal.get_substitution(markup, 10)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url,
                      "http://www.habit.ru/18/252.html")
     self.assertEqual(search_result.title, "Таблица ядов · Химия")
     self.assertEqual(
         search_result.snippet,
         "Таблица ядов. Какие мысли возникают у Вас при слове «яд»?\xa0... Итак, давайте познакомимся с ядами поближе."
     )
     self.assertEqual(search_result.view_url,
                      "http://www.habit.ru/18/252.html")
 def test_fields_of_result_search_with_video_on_page2(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/2.html")
     search_result = ideal.get_substitution(markup, 9)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url,
                      "https://www.youtube.com/watch?v=AUUBSKXLKtU")
     self.assertEqual(search_result.title, "Карандаш - Двор - YouTube")
     self.assertEqual(
         search_result.snippet,
         "Большой концерт КАРАНДАША 19 марта! Билеты тут! http://www.concert.ru/Details.aspx?ActionID=61100 Остальные города СЛЕДИ ЗА\xa0..."
     )
     self.assertEqual(search_result.view_url,
                      "https://www.youtube.com/watch?v=AUUBSKXLKtU")
 def test_fields_of_first_result_search_on_page1(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/1.html")
     search_result = ideal.get_substitution(markup, 0)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(search_result.page_url,
                      "https://ru.wikipedia.org/wiki/%D0%AF%D0%B4")
     self.assertEqual(search_result.title, "Яд — Википедия")
     self.assertEqual(
         search_result.snippet,
         "Яд, отрава — вещество, приводящее в определенных дозах, даже небольших относительно массы тела, к нарушению жизнедеятельности организма:\xa0..."
     )
     self.assertEqual(search_result.view_url,
                      "https://ru.wikipedia.org/wiki/Яд")
 def test_fields_of_first_result_search_on_page2(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/2.html")
     search_result = ideal.get_substitution(markup, 0)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(
         search_result.page_url,
         "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88"
     )
     self.assertEqual(search_result.title, "Карандаш — Википедия")
     self.assertEqual(
         search_result.snippet,
         "Каранда́ш — инструмент в виде стержня, изготавливаемого из пишущего материала (угля, графита, сухих красок и тому подобного), применяемый для письма..."
     )
     self.assertEqual(
         search_result.view_url,
         "https://ru.wikipedia.org/wiki/%D0%9A%D0%B0%D1%80%D0%B0%D0%BD%D0%B4%D0%B0%D1%88"
     )
 def test_fields_of_last_result_search_on_page2(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/2.html")
     search_result = ideal.get_substitution(markup, 9)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(
         search_result.page_url,
         "https://www.mekka-spb.ru/catalog/karandashi-chernografitnyje/")
     self.assertEqual(
         search_result.title,
         "Карандаши чернографитные - купить в интернет-магазине...")
     self.assertEqual(
         search_result.snippet,
         "Купить карандаши чернографитные предлагаем на сайте Канцелярская мекка.\xa0... 7Карандаши чернографитные в наборах."
     )
     self.assertEqual(
         search_result.view_url,
         "https://www.mekka-spb.ru/catalog/karandashi-chernografitnyje/")
 def test_fields_of_result_search_with_video_on_page1(self):
     parser = GoogleParser()
     ideal = IdealParser("test/google/2/")
     markup = parser.extract_markup("test/google/2/1.html")
     search_result = ideal.get_substitution(markup, 7)
     self.assertEqual(search_result.type, "SEARCH_RESULT")
     self.assertEqual(search_result.alignment, "LEFT")
     self.assertEqual(
         search_result.page_url,
         "https://russia.tv/video/show/brand_id/62142/episode_id/1546175/video_id/1677534/"
     )
     self.assertEqual(
         search_result.title,
         "Андрей Малахов. Прямой эфир / Яд для банкира: отравить жизнь ...")
     self.assertEqual(
         search_result.snippet,
         "Ее обвиняют в том, что она подсыпала яд - таллий - в картофельное пюре, которое приготовила для любимого мужа. Кто истинный\xa0..."
     )
     self.assertEqual(
         search_result.view_url,
         "https://russia.tv/video/show/brand_id/62142/...id/.../1677534/")
예제 #19
0
    def cv(self, algorithm, path, part=0.5):
        N = 50
        ideal_parser = IdealParser(path)

        learn_nums = range(int(N * part))
        test_nums = range(int(N * part), N)

        markup_list = list()
        for i in learn_nums:
            markup_list.append(ideal_parser.extract_markup(str(i) + "_markup.json"))

        algorithm.directory = path
        algorithm.learn(markup_list)
        dist = list()
        for i in test_nums:
            with open(path + str(i) + ".html", "r") as file:
                string = file.read()
            parser_result = algorithm.parse(string)
            ideal_result = ideal_parser.parse(string)
            dist.append(self.metric.distance(parser_result, ideal_result))

        return self.aggregator.aggregate(dist)
예제 #20
0
 def get_expected(self, golden_set, page):
     ideal_parser = IdealParser("./golden/" + golden_set)
     with open("./golden/" + golden_set + "/" + page, "r") as file:
         parser_result = ideal_parser.parse(file.read())
     return parser_result
 def test_title_of_wizard_image_on_page1(self):
     parser = YandexParser()
     ideal = IdealParser("test/yandex/")
     markup = parser.extract_markup("test/yandex/1.html")
     self.assertEqual(
         ideal.get_substitution(markup, 7).title, "яд — смотрите картинки")