Читать нас в Telegram
Иллюстратор: Юлия Бобкова

*От редакции:

Употреблять наркотики смертельно опасно, а хранить их и тем более торговать ими — еще и уголовно наказуемо. Наш текст посвящен сугубо научному исследованию лингвистических аспектов этой противозаконной деятельности. Редакция против наркотиков, поэтому мы не раскрываем название площадки и способы попасть туда.

Термином DarkNet обычно обозначают сайты, которые не индексируются поисковыми системами. Так как DarkNet обеспечивает больший уровень анонимности и защищенности, он стал популярным местом для ведения разной нелегальной деятельности.

Как известно, язык интернета имеет свои характерные черты, например, использование особых лексических средств и конструкций. Функционированию русского языка в интернете посвящены такие работы как «Современный русский язык в интернете» и «Словарь языка интернета.ru». Однако мало известно о характеристиках русского языка, используемого в DarkNet’е, хотя он может иметь собственные особенности.

Кроме того, языки легальной и нелегальной деятельности в «Теневой сети» могут также сильно отличаться между собой. Например, работа «The Language of Legal and Illegal Activity on the Darknet» показывает, что между текстами о законной и незаконной деятельности существуют лексические и синтаксические отличия. Кроме того, именованные сущности, встречающиеся в текстах, посвященных незаконным темам, чаще склонны не иметь соответствующих страниц в «Википедии».

Собираем материал

Чтобы чуть-чуть больше понять о русском языке DarkNet’а, мы провели анализ тональности отзывов о наркотических веществах. Анализ тональности (англ. sentiment analysis) — это автоматическое определение отрицательности или положительности отзыва. С помощью анализа тональности в тексте можно выделить эмоционально окрашенную лексику. Это и является целью нашего мини-исследования: выявление и описание специфических лексических средств, используемых в отзывах о запрещенных веществах.

Для этого с одной из крупнейших площадок для продажи наркотических веществ в DarkNet’е были собраны тренировочная и тестовая выборки. В тренировочную выборку входят 1000 отзывов о пяти разных наркотических веществах (100 положительных и 100 отрицательных отзывов на каждый наркотик). Тестовая выборка состоит из 200 отзывов (101 положительный и 99 отрицательных). Положительные отзывы были размечены как 1, а отрицательные как -1. В качестве положительных отзывов брались те, которые сопровождались оценкой в четыре или пять из пяти звезд. В качестве отрицательных — те, которые сопровождались оценкой в ноль или одну звезду.

Векторизуем тексты и обучаем модель

Все слова в текстах были приведены в начальную форму, также были удалены стоп-слова. После этого длина всех положительных отзывов составила 10403 слова, а отрицательных — 10624. Затем тексты были превращены в цифровые вектора двумя способами: с помощью TF-IDF и Count Vectorizer’а. Как работает TF-IDF описано в глоссарии «Системного Блока». Count Vectorizer же работает по принципу one-hot кодирования. Сначала он берет все уникальные токены во всех текстах и делает словарь длины N, где N — количество уникальных токенов.

Возьмем для примера два предложения: Кто пришел? и Пришел Вася и пришел Дима. Для этого набора текстов уникальные ключи будут выглядеть следующим образом: кто, пришел, Вася, и, Дима. Длина списка из уникальных ключей и будет длиной нашего закодированного текста (в нашем случае это пять). Первое предложение будет закодировано следующим образом: 1, 1, 0, 0, 0. Потому что из всех уникальных ключей в нем есть только слова кто и пришел. Второе предложение будет иметь вид 0, 2, 1, 1, 1: кто встречается в этом предложении ноль раз; пришел — два раза; остальные слова — по одному разу.

Чтобы определить, какие слова характерны для положительных отзывов, а какие — для отрицательных, были обучены модели логистической регрессии (Logistic Regression) и метода опорных векторов (Support Vector Machines). Что же делают эти модели? У нас есть два класса отзывов: отрицательные и положительные. Каждый из векторизированных отзывов лежит в пространстве значений. Отрицательные, например, лежат преимущественно снизу, а положительные — сверху. И логистическая регрессия, и метод опорных векторов ищут, как наиболее оптимально разделить пространство значений на две области: область положительных значений и область отрицательных значений. Как именно это делает логистическая регрессия подробно описано здесь, а как метод опорных векторов — здесь.

Эффективность связок из модели и способа векторизации проверялась с помощью кросс-валидации с делением тренировочных данных на пять частей. Самым лучшим оказался результат метода опорных векторов и TF-IDF (доля правильных ответов: 0,884). Для тестового набора данных доля правильных ответов этой связки составляет 0,935.

Таблица 1. Средняя доля правильных ответов моделей при кросс-валидации с делением данных на пять частей.

Насколько разделимы отзывы

Прежде чем смотреть на характерные слова, стоит взглянуть, как распределены положительные и отрицательные отзывы, то есть насколько легко отделимы положительные отзывы от отрицательных по лексическому составу. Для этого воспользуемся decision_function. Decision_function сообщает, где в пространстве значений, по мнению модели, лежит тот или иной отзыв. На рисунке ниже отрицательные отзывы (красные) лежат ниже нуля, а положительные (зеленые) — выше.

Как можно видеть, большая часть положительных отзывов имеют схожую лексику — как и большинство отрицательных. Соответственно, две группы легко разделяются.

Кроме того, на рисунке видно, что модель может ошибаться: один отрицательный отзыв находится выше нуля.

График 1. Распределение положительных и отрицательных отзывов (зеленые и красные точки соответственно) в векторном пространстве значений.

«Ненаход» и «касание»: самые важные слова для положительных и отрицательных отзывов

Итак, какие же слова оказались самыми важными для принятия моделью решения о положительности/отрицательности отзыва? На рисунке ниже приведены 20 самых важных слов, по мнению модели, для решения об отрицательности отзыва (выделены красным) и о положительности (выделены синим).

График 2. На горизонтальной оси расположены 20 самых важных слов, по которым модель оценивала отзыв как положительный или отрицательный. На вертикальной оси расположены коэффициенты важности каждого слова. Красными столбцами обозначена важность слов для отрицательных отзывов, синими — для положительных.

Как можно видеть, самым решающим словом для определения отрицательности отзыва является ненаход, а для положительности — касание. Давайте посмотрим на примеры употреблений этих слов.

Худший магазин. В людном месте , ненаход уже 2 раз …

Ненаход. За десять метров было понятно, что место взорвано. В плане съема клада место ужастное: тупиковая дорога огражденная забором с двух сторон. Причем место очень многолюдное. В общем пока в магазине не сменится кладмен — я ни ногой.

снято в касание, стафф как всегда бомба! беру не первый раз. доволен

В касание, кладмен красавчик

Перед тем как выяснять значения слов, стоит сказать о том, как обычно устроена торговля нелегальными веществами. В России популярна система так называемых закладок (тайников с наркотическим веществом, изготовленных сбытчиком либо посредником для дальнейшего сбыта бесконтактным способом). Пользователь выбирает на сайте товар и оплачивает его. В ответ продавец отправляет ему координаты места, где уже лежит товар. Закладка также может называться кладом.

Нетрудно догадаться, что ненаход обозначает ситуацию, когда покупатель не обнаружил на месте приобретенный товар. Также на рисунке можно заметить слово наход: это еще один способ написания ненахода, так как некоторые пользователи пишут предлог не отдельно.

Не наход. Магазин сказал ждём минёра, тот так на связь не вышёл. Диспут открывать не стал

Касание наоборот значит, что тайник было легко забрать (о сопутствующих трудностях и опасностях можно почитать, например, в материале «Московского комсомольца»). Касание может употребляться как в качестве самостоятельного слова, так и с предлогом в, а также с глаголами забрать, снять и поднять.

Касание, всё как обычно. Купил забрал сожрал)))10.10.10

Поднят в касание. Км красавчик. Не далеко от общественного транспорта. место тихое. По качеству мучных изделий:резкий запах,на двоих ушёл за 2 часа. Давно не виделся с толей,и к удивлению качество 5/10. Магазин красавчик. Обязательно загляну ещё.

Забрал в касание, ещё не пробовал. Сам амф белоснежный. Конкретный недовес, диспут не стал открывать. По «настроению» дополню позже.

Диспуты о ненаходах

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

Увы но очередной ненаход! Смысла открывать диспут не вижу, оператор пожуёт мозг пару дней и всё. Какую сторону выберет модератор мы так же, уже знаем. Друзья, дважды подумайте перед покупкой в данном шопе.

Прибыв на место в корнях деревьев не обнаружил клад, магазин отказывается общаться никах кроме диспута. То есть вынуждает покупателя портить статистику, хотя можно было уточнить место кладо с фото у кладмена. Клиентоооиентированость -0

Также можно заметить, что среди важных слов в отрицательных отзывах присутствуют глаголы советовать и покупать. Они употребляются с частицей не и обычно являются императивами: не советую, не покупайте. Слово клад фигурирует в жалобах на неудачные места для тайников. Кроме того, в пределах двух слов от клада 35 раз встречается слово ненаход.

Ненаход. Клад старый, скорее всего сошкурен до нашего прихода. Полнейший облом и проваленные выходные <…>

Еще в отрицательные отзывы попало слово марка. Это сленговое обозначение диэтиламида d-лизергиновой кислоты. Оно употребляется при жалобах на качество товара или просто как конкретизация покупки при ненаходе.

Решил купить марки, по итогу ничего не нашли. <…>

Марки х**** полная не берите!

Квест изи, не проблема

Если смотреть на положительные отзывы, то может показаться странным присутствие там проблемы. Однако это слово употребляется в контексте решения проблем покупателей. Кроме того, проблема сочетается со словам забрать.

возникли проблемы, но магазин их решил, кладмен «удивительный человек» — такого конечно не ожидал никто, но благо все закончилось хорошо

Снял в касание без проблем, минёр красавец) <…>

Слово квест обозначает сам процесс получения товара. В положительных отзывах квест обычно употребляют в контексте того, как легко было найти и забрать товар. Также в значимых для положительных отзывах словах можно найти цифру 10, которая используется как высшая оценка работы магазина.

Квест изи, магаза респект. 10 из 10

Стафф обычно используется для обозначения самого товара и употребляется, когда покупатель хочет подчеркнуть его качество (сокращением которого, кстати, является слово кача).

Забрал в касание, все отлично По качу среднечек

Полукасание, стафф качественный, не соник икс, но на твердую 7 тянет.

Как можно видеть, фактор дистрибуции является самым важным при составлении обзоров на запрещенные вещества. В условиях, когда невозможно просто получить товар и для этого приходится проделывать ряд сложных действий, качество отходит на второй план. На первый план же выходит сам факт получения покупки и то, насколько это получение было простым. Кроме того, влияние также может оказывать возможность оставить отзыв лишь в течение 48 часов после покупки.