🤜🏻От слов к делу: 3 NLP-метода векторизации слов в PySpark
Обработка естественного языка (NLP, Natural Language Processing) предполагает перевод обрабатываемых слов в числовую форму с последующей векторизацией полученных данных для передачи алгоритмам машинного обучения. Для этого в Apache Spark можно использовать следующие методы:
• CountVectorizer, который считает, сколько раз слово встретилось в документе (предложении, абзаце, посте, комментарии). CountVectorizer возвращает разреженные вектора (sparse vectors), значения в которых отсортированы по частоте встречаемости слова.
• TF-IDF – метод векторизации признаков, часто используемый при анализе текстов. Он помогает отразить важность слова в отдельном документе и в целом наборе (корпусе). TF-IDF состоит из Term Frequency (TF, частота слова) и Inverse Document Frequency (IDF, обратная частота документа). TF – это отношение встречаемости слов к общему числу слов в документе. IDF считается для каждого слова в словаре, а не в документе. Интересно, что в PySpark, в отличие от Python-библиотеки Scikit-learn, части TF и IDF считаются отдельно друг от друга. TF можно также посчитать через CountVectorizer или его более быстрый аналог HashingTF, в котором индексы значений хранятся в хэш-кодах, вычисляемых через алгоритм MurmurHash3. В PySpark за вычисление IDF отвечает одноименный класс, метод fit() которого возвращает объект IDFModel, куда следует передать результат TF (HashingTF или CountVectorizer).
• Word2Vec – нейросеть, вычисляющая распределенное векторное представление слов, которое считается одним из самых эффективных методов векторизации в NLP, и используется для распознавания именованных сущностей, устранения неоднозначностей, синтаксического анализа и машинного перевода. Векторизация Word2Vec в PySpark выполняется с помощью одноименного метода. В аргументах метода, кроме входного датасета и результата, можно также указать длину векторного представления vectorSize (по умолчанию 100) и minCount – минимальное число встречаемости слова, чтобы включить его в словарь модели и избавиться от редких слов.
Post #197
1.15K