Moscow City Hack fake news detection case solution
Python
5
125 commits
updated Jun 13, 2022
Распознавание фейковых новостей.
Система способна определять новости, в которых произошло искажение фактов относительно информации в первоисточнике, а также выделять конкретные факты, которые, по мнению системы, были искажены.
ROC AUC качество классификации: 95%.
Демо: https://share.streamlit.io/viktorooreps/mch-hackathon/main/web_app.py
Предположения:
В итоге для каждой исходной статьи из обучающей выборки были сгенерированы 3 измененных: перефразированная, с изменением сущностей, перефразированная с изменением сущность. Таким образом, исходная и перефразированная новости являются достоверными, а остальные две - фейковыми.
LOC - локация ORG - организация PER - личность PERCENT - процент TIME - время DATE - дата CARDINAL - числа
Все используемые в пайплайне модули сопровождались комментариями с кратким описанием работы. В разработке по большей части опирались на принципы ООП.
В файлах requirements.txt и init.py описаны все используемые зависимости, в том числе указаны ссылки на используемые готовые решения.
semantic_modification.py - модуль для изменения фактов в тексте paraphraser.py - модуль, составляющий парафразу для абзацев в тексте. datamodel.py - обертки для данных augmentation_script.py - скрипт для получения аугментированного датасета для обучения классификатора
lgbm_model - модуль LGBM-классификатора feature_extraction - модуль для извлечения признаков из пары текстов - первоисточника и фейка fact_extraction - ... data - обкаченные краулером данные crawlers - скрипты для краулинга mos.ru bank_embeddings - модуль для получения эмбеддингов из текстов
crawl_mos.sh - bash-скрипт для запуска краулера новостей с mos.ru init.sh - модуль для настройки окружения
requirements.txt - зависимости проекта
web_app.py - код веб-приложения
Качество по ROC AUC для модели LGBM: 95%.
Гиперпараметры: ''' { "max_depth": -1, "min_child_samples": 19, "min_child_weight": 0.001, "min_split_gain": 0.0, "n_estimators": 30, "n_jobs": -1, "num_leaves": 176, "objective": null, "random_state": null, "reg_alpha": 0.0, "reg_lambda": 0.0, "silent": "warn", "subsample": 1.0, "subsample_for_bin": 200000, "subsample_freq": 0, "lambda_l1": 0.10760824726959102, "lambda_l2": 1.220269679867742e-08, "feature_fraction": 0.6389666241304643, "bagging_fraction": 0.523470095488254, "bagging_freq": 6 }, "score": 0.9502150848765432 } '''
Precision: [email protected]
Recall: [email protected]
Moscow City Hack fake news detection case solution
Python
5
125 commits
updated Jun 13, 2022
Распознавание фейковых новостей.
Система способна определять новости, в которых произошло искажение фактов относительно информации в первоисточнике, а также выделять конкретные факты, которые, по мнению системы, были искажены.
ROC AUC качество классификации: 95%.
Демо: https://share.streamlit.io/viktorooreps/mch-hackathon/main/web_app.py
Предположения:
В итоге для каждой исходной статьи из обучающей выборки были сгенерированы 3 измененных: перефразированная, с изменением сущностей, перефразированная с изменением сущность. Таким образом, исходная и перефразированная новости являются достоверными, а остальные две - фейковыми.
LOC - локация ORG - организация PER - личность PERCENT - процент TIME - время DATE - дата CARDINAL - числа
Все используемые в пайплайне модули сопровождались комментариями с кратким описанием работы. В разработке по большей части опирались на принципы ООП.
В файлах requirements.txt и init.py описаны все используемые зависимости, в том числе указаны ссылки на используемые готовые решения.
semantic_modification.py - модуль для изменения фактов в тексте paraphraser.py - модуль, составляющий парафразу для абзацев в тексте. datamodel.py - обертки для данных augmentation_script.py - скрипт для получения аугментированного датасета для обучения классификатора
lgbm_model - модуль LGBM-классификатора feature_extraction - модуль для извлечения признаков из пары текстов - первоисточника и фейка fact_extraction - ... data - обкаченные краулером данные crawlers - скрипты для краулинга mos.ru bank_embeddings - модуль для получения эмбеддингов из текстов
crawl_mos.sh - bash-скрипт для запуска краулера новостей с mos.ru init.sh - модуль для настройки окружения
requirements.txt - зависимости проекта
web_app.py - код веб-приложения
Качество по ROC AUC для модели LGBM: 95%.
Гиперпараметры: ''' { "max_depth": -1, "min_child_samples": 19, "min_child_weight": 0.001, "min_split_gain": 0.0, "n_estimators": 30, "n_jobs": -1, "num_leaves": 176, "objective": null, "random_state": null, "reg_alpha": 0.0, "reg_lambda": 0.0, "silent": "warn", "subsample": 1.0, "subsample_for_bin": 200000, "subsample_freq": 0, "lambda_l1": 0.10760824726959102, "lambda_l2": 1.220269679867742e-08, "feature_fraction": 0.6389666241304643, "bagging_fraction": 0.523470095488254, "bagging_freq": 6 }, "score": 0.9502150848765432 } '''
Precision: [email protected]
Recall: [email protected]