Рубрики
Без рубрики

[Стартовый комплект № 2] Появление инструмента для скрещивания в общем назначении с функцией анализа текста (автоматическое тегин / визуализация)

Легкая настраиваемая концепция скребка общего назначения веб-скребки с текстом … Tagged с помощью Python, Scrapy, Gensim, Scrapeing.

Концепция

Инструмент по скрепингу общего назначения с функцией анализа текста.

Следующие функции помогают пользователям начать разработку.

  • Простые настройки
  • Настраиваемость
  • Функция анализа текста (тега/визуализация)

Нажмите здесь для исходного кода https://github.com/makotunes/easy-customizable-scraper

Пример приложения

  • Коллекция статей кураторских медиа и автоматическое теги
  • Рекомендационный двигатель

Этот алгоритм используется для функций моих лично разработанных продуктов. https://mockers.io/scanner

Элементная технология

  • Интернет
  • Автоматическое обнаружение языка
  • Морфологический анализ
  • Алгоритм тегации функций (оригинал)
  • Технология визуализации 2D карты (оригинал)

Зависимости

  • Докер

Установка

Это занимает около 1-2 часов.

docker build -t scanner .

или

./build.sh

Бежать

docker run --rm -it -v "$PWD":/usr/src/app \
--name scanner --force scanner  \
-e 'ENTRY_URL=http://recipe.hacarus.com/' \
-e 'ALLOW_RULE=/recipe/' \
-e \
-e 'DOCUMENT_XPATH=//td/text()|//p/text()' \
-e 'PAGE_LIMIT=2000' \
-e 'EXCLUDE_REG=\d(年|月|日|時|分|秒|g|\u4eba|\u672c|cm|ml|g|\u5206\u679a\u5ea6)|hacarusinc|allrightsreserved' \
scanner:latest /usr/src/app/entrypoint.sh

или

./run.sh

Параметры

Установите переменную среды контейнера Docker.

Если у вас есть хотя бы entry_url, он автоматически сканирует страницу и вытащит текст. Если варианты не указаны, он оптимизирован для кураторских средств и может быть полностью автоматизирована, например, извлечение текста статей.

(Требуется) Лучший URL -адрес сайта для начала сканирования. Все страницы автоматически сканируются. Intry_url
Разрешить правило фильтра целевых URL. Allow_Rule
Отрицание правила фильтра целевого приоритета переоценки. Deny_rule
Укажите изображение, которое вы хотите получить на странице с XPath. Image_xpath
Xpath верхнего узла на странице, где должен быть извлечен текст. Document_xpath
Сканированное ограничение количества страниц. -1 означает неограниченный номер. Page_limit
Регулярное выражение правила слова не извлечено морфологическим анализом. Exclude_reg

Результат

РЕЗУЛЬТАТ/RES.JSON

Структура проекта

src/scraper.py Основная логика скрещивания
src/categorizer.py Основной алгоритм пометить и визуализировать отрывки.
src/tokenizer.py Основной алгоритм для проведения морфологического анализа

Настраивать

Custom/_formatter.py

Отредактируйте XPath для необходимых HTML -узлов, как ниже.

def formatter(sel):
    res = {}

    n_howtomake = int(len(sel.xpath().extract()) / 2)
    res["n_howtomake"] = n_howtomake

    return res

Custom/_finalizer.py

Редактировать пост-процесс, чтобы сгенерировать ожидаемый вывод, как ниже.

import pandas as pd

def finalizer(res):
    pages = res["scatter"]
    pages = list(map(lambda x: x["user_meta"], pages))
    df = pd.DataFrame(pages)

    corr_df = df.loc[:, ["time", "n_howtomake", "n_components"]].corr()

    res["analyzed"] = {}
    res["analyzed"]["correlation"] = {}
    res["analyzed"]["correlation"]["time-n_howtomake"] = corr_df.loc["time", "n_howtomake"]

    return res

Пример

Вот пример использования этого инструмента для очистки и анализа.

Давайте проанализируем Бесплатный сайт рецепта приготовления . * * Если вы не можете получить к нему доступ, попробуйте открыть его в секретном режиме. * *

Все эти результаты хранятся в каталоге «результат».

Визуализировать распределение времени приготовления, количества ингредиентов, количества рецептов

import matplotlib.pyplot as plt
import pandas as pd

def finalizer(res):

    pages = res["scatter"]
    pages = list(map(lambda x: x["user_meta"], pages))
    df = pd.DataFrame(pages)

    fig = plt.figure()
    x = df["time"]
    y = df["n_howtomake"]
    plt.scatter(x, y)
    plt.savefig('./result/time-n_howtomake.png')

    fig = plt.figure()
    x = df["time"]
    y = df["n_components"]
    plt.scatter(x, y)
    plt.savefig('./result/time-n_components.png')

    fig = plt.figure()
    x = df["n_howtomake"]
    y = df["n_components"]
    plt.scatter(x, y)
    plt.savefig('./result/n_howtomake-n_components.png')

    return res

Результат

Время приготовления: как сделать
Время приготовления: количество ингредиентов
Как сделать: Количество ингредиентов

Изучите корреляцию между временем приготовления, количеством ингредиентов и количеством рецептов

import matplotlib.pyplot as plt
import pandas as pd

def finalizer(res):
    pages = res["scatter"]
    pages = list(map(lambda x: x["user_meta"], pages))
    df = pd.DataFrame(pages)

    corr_df = df.loc[:, ["time", "n_howtomake", "n_components"]].corr()

    res["analyzed"] = {}
    res["analyzed"]["correlation"] = {}
    res["analyzed"]["correlation"]["time-n_howtomake"] = corr_df.loc["time", "n_howtomake"]
    res["analyzed"]["correlation"]["time-n_components"] = corr_df.loc["time", "n_components"]
    res["analyzed"]["correlation"]["n_howtomake-n_components"] = corr_df.loc["n_howtomake", "n_components"]

    fig = plt.figure()

    return res

Результат

Время приготовления: как сделать

0.30457219729662316

Время приготовления: количество ингредиентов

0.3949520467754227

Как сделать: Количество ингредиентов

0.6869899620517819

Выберите около трех ключевых слов, которые можно использовать для характеристики каждого Leshig

Result/Tagged.csv

なす トマト 大 葉 なす と トマト 中華 和え (15 分)
両面 照り焼き 水気 ぶり の 照り焼き (45 分)
大 根 こん にゃく 竹輪 おでん 風煮 (2 時間)
ツナ 大 根 わかめ 大根 と ツナ サラダ (15 分)
片栗粉 にんにく れん こん 鶏 の 照り焼き 丼 (20 分)
れん こん ごぼう こん にゃく 筑 前 煮 (60 分)
白菜 わかめ しめじ 白菜 と の 酢 の 物 (15 分)
玉ねぎ しめじ ピーマン 鮭 の ホイル 焼き (25 分)
キャベツ しめじ ハム キャベツ と ハム 粒マスタード 和え (15 分)
えのき わかめ きゅうり えのき と ワカメ 和え物 (15 分)
里 芋 片栗粉 桜えび 里芋 の おやき (30 分)
里 芋 鶏肉 相性 鶏肉 と 里芋 煮物 (60 分)
万願 寺 唐辛子 かつ お 節 作り 方 焼き 万願寺 唐辛子 (10 分)
玉ねぎ 牛肉 じゃがい も 肉じゃ が (45 分)
冷蔵庫 ゆず 鰆 の 幽庵 焼き (15 分 (漬け込む 時間 は 省く))
オクラ しょ う が オクラ オクラ の 煮びたし (10 分 (冷やす 時間 は 除く)))
春菊 油揚げ 春菊 春菊 と 油揚げ 煮びたし (15 分)
マヨネーズ 塩コショウ しい たけ しいたけ の ツナマヨ 焼き (10 分)
キャベツ マヨネーズ きゅうり コールスロー (15 分)
にんにく じゃがい も タコ じゃがいもと タコ の 炒め (20 分)
しょ う が トマト きゅうり 棒棒鶏 (30 分)
アボカド ハム チーズ アボカド の チーズ 焼き (15 分)
大 葉 キャベツ 大 葉 キャベツ と 大葉 さっぱり 和え (10 分)
レタス きゅうり サラダ カニカマサラダ (10 分)
ズッキーニ もやし 粗熱 ズッキーニ と もやし ナムル (15 分)
春雨 きゅうり ハム 春雨 サラダ (15 分)
大 根 白菜 油揚げ 白菜 と 油揚げ みぞれ 煮 (30 分)
れん こん にんにく 牛肉 牛肉 と こん の 甘辛 炒 め (30 分)
しょ う が しめじ レタス 豚丼 (30 分)
ゆず皮 大 根 部分 紅白 な ます (30 分)
里 芋 にんにく 香り 里芋 の ガーリック 焼き (30 分)
ブロッコリー 和風 みそ ブロッコリー の ごまみ そ和え (10 分)
ブロッコリー 出汁 醤油 粗熱 ブロッコリー の ゴマ 和え (15 分)
ゆず 甘酢 昆布 かぶ の 甘酢 漬け (1 時間)
さん ま しょ う が 圧力 さんま の しょ が 煮 (30 分)
大 根 きゅうり スパゲッティ スパゲティー サラダ (20 分)
切り干し 大 根 油揚げ 短冊 切り干し 大根 の 煮物 (25 分)
なす オクラ 出汁 醤油 なす と オクラ 和え物 (10 分)
厚揚げ なす 片栗粉 なす と 厚揚げ おろし あん (30 分)
ごぼう 好み 一味 ごぼう の ごま マヨサラダ (15 分)
水菜 長い も わさび 水菜 と も の わさび 和え (15 分)
ピーマン 雑魚 顆粒 和 風だ し ピーマン の じゃこ め (15 分)
なす ピーマン なす と の ごまみ そ丼 (20 分)
豆腐 しょ う が 白ネギ ピリ辛 豆腐 ステーキ (30 分)
白菜 大 葉 ハム 白菜 と の 青じ そ サラダ (20 分)
にんにく ソース 鮭 の シャリア ソース がけ (30 分)
白菜 きゅうり サラダ 白菜 の さっぱり サラダ (15 分)
しょ う が 鶏ミンチ 片栗粉 かぶと 肉団子 の 煮物 (30 分)
ごぼう かつ お 節 圧力 鍋 ごぼう の 梅おかか 煮 (45 分)
ほうれん 草 切り干し 大 根 熱 湯 切り干し 大根 と 草 の 和え物 (20 分 (水 に 戻す 時間 除く 除く)))
かぼちゃ 油揚げ 揚げ かぼちゃと 揚げ の 煮物 (20 分)
さ つまい も レモン 汁 レモン さ つまい もの 煮 (30 分)
菜 の 花 練り から し 長 さ 菜 の 花 辛子 和え (15 分)
こん にゃく かぼちゃ 熱 湯 かぼちゃ と こん の 煮物 (30 分)
豆腐 春菊 好み ゆず入り 湯豆腐 (1 時間)
厚揚げ 大 根 彩り 大根 と 厚揚げ 煮物 (60 分)
小 松菜 にんにく しょ う が 小 松菜 ぎょうざ (45 分)
油揚げ 水菜 食感 水菜 と 油揚げ 煮びたし (15 分)
大 根 味 噌 いりごま ふろふき 大根 (30 分 以上)
春菊 豆腐 白和え 春菊 の 白和え (15 分)
なす 生姜 ホイル なす の ホイル 焼き (15 分)
玉ねぎ ニラ えび えび と の 中華 風 卵炒 め (30 分)
ししゃも 南蛮漬け ピーマン ししゃも の 南蛮漬け (30 分)
豚肉 白菜 玉ねぎ 八宝菜 (30 分)
ブロッコリー 食感 わさび ブロッコリー の わさ 和え (15 分)
鶏肉 鶏も も 肉 しい たけ 鶏のすき 煮 (30 分)
里 芋 梅干 し かつ お 節 里芋 の 梅おかか 和え (35 分)
ブロッコリー 出汁 醤油 焼き 海苔 ブロッコリー の 磯和え (15 分)
鶏肉 鶏も も 肉 白ネギ 焼き 鳥丼 (20 分)
かつ お 節 ほうれん 草 10 分 ほうれん 草 の 浸し (10 分)
片栗粉 さん ま 大 葉 さんま の 梅し ロール (45 分)
トマト きゅうり かつ お 節 きゅうり と トマト 土佐酢和え (30 分)
さば 味 噌 しょ う が さば の 味 煮 (30 分)
エリンギ バター エリンギ エリンギ の バター め (15 分)
さ つまい も マヨネーズ 塩コショウ さ つまい クリーム チーズ の サラダ (20 分)
キムチ 納豆 長 ネギ 薄揚げ の 納豆 め (15 分)
味 噌 ヨーグルト 鮭 の 味噌 ヨーグルト漬け (15 分 (漬け込む 時間 は 除く))
ごぼう れん こん こん にゃく 五目豆 (45 分)
新生姜 水菜 新生姜 と 水菜 肉 巻き (30 分)
小 松菜 ツナ 水気 小 松菜 と の 和え物 (15 分)
大 根 手羽 中 弱火 手羽中 と 大根 煮物 (45 分)
表面 手羽 先 にんにく 手羽先 の 照り焼き (60 分)
ほうれん 草 梅干 し ほうれん 草 の 梅和え (15 分)
なめこ 大 葉 かつ お 節 なめこおろし (15 分)
1 時間 塩コショウ タンド リーチキン 簡単 タンド リーチキン (1 時間 以上)
あさり にんにく みじん 切り あさり の 酒蒸 し (15 分)
玉ねぎ ピーマン ピーマン の 肉詰 め (30 分)
竹輪 青のり ちくわ の 磯辺揚げ (15 分)
長い も かつ お 節 梅干 し 長い もの 梅和え (10 分)
アボカド 水菜 豆腐 水菜 と アボカド サラダ (15 分)
鶏肉 鶏がら スープ の 素 一 口 酢鶏 (20 分)
冷蔵庫 鯛 の 西京 焼き (15 分 (漬け込む 時間 は 除く))
きゅうり 塩昆布 乱切り きゅうり の 塩昆 布和え (10 分)
なす しょ う が 作り 方 なす の 煮びたし (20 分)
ごぼう にんにく ごぼう と 人参 肉 巻き (30 分)
イカ 大 根 里 芋 大 根 里 芋 ・ イカ の 煮物 (40 分)
豚肉 にんにく 片栗粉 回 鍋肉 (30 分)
ほうれん 草 干し エビ 干しえび ほうれん 草 干しえび の ゴマ 和え (15 分)
里 芋 片栗粉 鶏ミンチ 里芋 の そぼろ 煮 (30 分)
三 度 豆 出汁 醤油 三 度 と 人参 の おかか 和え (10 分)
チンゲン 菜 しめじ 豚肉 中華丼 (30 分)
きゅうり た こ わかめ きゅうり と この 酢 の 物 (20 分)
片栗粉 鶏ミンチ 新玉ねぎ 新玉ねぎ の コンソメ 煮込み (45 分)
れん こん いりごま 中火 れんこんの きんぴら (15 分)
玉ねぎ ニラ しめじ 野菜 たっぷり 牛丼 (20 分)
片栗粉 にんにく チンゲン 菜 ホタテ と 菜 の クリーム 煮 (20 分)
ごぼう 豆腐 ほうれん 草 ほうれん 草 と の 白和え (60 分)
さん ま ごま 大 葉 さんま の 蒲焼き (30 分)
ひじき 油揚げ 大豆 ひじき の 炒め 煮 (60 分)
かつ お 節 オクラ 納豆 オクラ の 納豆 和え (10 分)
縮緬 雑魚 貝割れ 大根 水菜 じゃこの サラダ (10 分)
里 芋 ほうれん 草 ベーコン 里芋 の ホット サラダ (45 分)
かぼちゃ ヨーグルト きゅうり かぼちゃ の サラダ (15 分)
豆腐 しめじ えのき 豆腐 の き こ あんかけ (10 分)
しょ う が 春雨 ニラ 春巻き (60 分)
れん こん しょ う が 鶏ミンチ れん こん の さみ 焼き (30 分)
高野 豆腐 竹串 水気 高野 豆腐 の 煮 (30 分)
春雨 白菜 にんにく 豚ミンチ と 白菜 炒め 物 (15 分)
いわし しょ う が 長 ネギ いわし の さっぱり 煮 (45 分)
れん こん ОЛИВКОВОЕ МАСЛО カレー 粉 れんこん の カレー め (15 分)
ささみ もやし きゅうり ささみ の 中華 サラダ (25 分)
豚肉 茄子 豆板 醤 茄子 と の ピリ辛味 噌炒 め (30 分)
ささみ にんにく しょ う が ささみ の から 揚げ (30 分)

Призовать идеи

Что вы хотите делать с этим инструментом? Если есть необходимость, это может быть решено в будущем обновлении. Мы с нетерпением ждем ваших комментариев.

Оригинал: “https://dev.to/makotunes/starter-kit-no-2-exposing-general-purpose-web-scraping-tool-with-text-analysis-function-automatic-tagging-visualization-5d1”