Это 10-й день моего участия в Gengwen Challenge.Подробности о мероприятии:Обновить вызов
предварительная обработка
Данные в китайском тексте могут быть беспорядочными, такими как различные искаженные символы, символы и т. д., которые необходимо удалить.Я думаю, что основной стандарт заключается в том, чтобы формат и содержание текста можно было читать как обычную статью. .
Причастие
В процессе обработки текстовых данных на китайском языке первым шагом обычно является выполнение сегментации слов, которая называется токенизацией в сегментации английского текста.Основная идея состоит в том, чтобы разделить текст на слова или символы, потому что китайский язык не похож на английский. Сегментация китайских слов является большой областью исследований.В настоящее время сегментация китайского текста может выполняться с помощью зрелых устройств сегментации слов, таких как jieba.
Почему причастие?
Текст - это какие-то неструктурированные данные. Нам нужно сначала преобразовать эти данные в структурированные данные, а затем структурированные данные можно преобразовать в математические задачи. Эта идея также является идеей машинного обучения, а сегментация слов - это первый шаг преобразования. Простое причастие в предложении выглядит следующим образом:
乒乓球 \ 卖完 \ 了
Другое слово – наименьшая единица, выражающая полное значение. Детализация слов слишком мала, чтобы выразить полное значение, в то время как гранулярность предложений слишком велика, чтобы нести много информации и не может быть точно смоделирована.
Удалить низкочастотные слова, стоп-слова?
Во-первых, редко используются самые низкочастотные слова, такие как имена, неправильные слова, «дэ» и другие бессмысленные слова.
Во-вторых, удаление низкочастотных слов может сделать словарь не слишком большим.Если используется one-hot вектор, то размерность равна размеру словаря.Чем больше словарь, тем больше размерность one-hot вектора , что замедлит расчет и увеличит память. . Более того, чем больше размерность one-hot вектора, тем больше параметров требуется в модели, что легко привести к переобгону.
Как представить сегментацию слов в компьютере
В реальном процессе обработки текста нам нужно превратить сегментацию слова в числовые характеристики, используемые в машинном обучении или глубоком обучении, чтобы облегчить компьютеру выполнение операций.Например, мы можем установить сегментацию слова «Индия» как 1 и "Соединенные Штаты" как 2 Подождите, числа здесь представляют только категории и не имеют функции числового сравнения. Поэтому в дальнейшем используйте однозначный вектор для представления страны или пола, например:
“印度”->[0,0,0,1]
“美国”->[0,0,1,0]
Зачем использовать горячие векторы?
Когда мы представляем страну, зачем использовать однозначные векторы для представления функций, таких как:
“印度”->[0,0,0,1]
“美国”->[0,0,1,0]
“中国”->[0,1,0,0]
“英国”->[1,0,0,0]
Вместо прямого представления функций числами, например:
“印度”->1
“美国”->2
“中国”->3
"英国"->4
Некоторые студенты могут подумать, что при непосредственном использовании чисел для представления каждой страны ее можно легко решить с помощью 1 числа, а также можно сэкономить на хранении и вычислении 4-битных векторов.Разве это не очень рентабельный дизайн? Конечно нет, иначе не было бы одногорячего вектора!
Если мы действительно представляем числа, мы используем предыдущий пример для выполнения следующих вычислений:
美国(2)+ 印度(1)= 中国(3)
Такой характерный расчет совершенно неразумен.Как может сумма США и Индии быть Китаем? Если мы вычисляем с векторами:
美国[0,0,1,0]+ 印度[0,0,0,1] = [0,0,1,1]
[0,0,1,1,] Этот результат более значим, поскольку указывает на то, что в него включены как США, так и Индия.
Короче говоря, операции в машинном обучении или глубоком обучении не могут быть представлены скалярами, потому что результаты, полученные числами при работе признаков, бессмысленны. Правильный подход — использовать векторы для представления признаков.
Должен ли я использовать one-hot? Нет! Также вложения слов
Если у нас есть 10 000 различных слов, мы используем one-hot, чтобы указать, что для каждого слова требуется вектор размерности 10 000. Этот вектор большой размерности требует дорогостоящих вычислительных ресурсов, поэтому мы рекомендуем использовать его только для небольшого количества слов. В случае большого количества слов он больше не используется.В настоящее время нам нужно выполнить встраивание слов и преобразовать эти высокоразмерные векторы в низкоразмерные векторы. Конкретные методы заключаются в следующем:
词的 one-hot 向量(1*10000)* P(10000*10)= V(1*10)
Мы умножаем горячий многомерный вектор слова на матрицу P, где P — количество слов, умноженное на пользовательскую 10-мерную матрицу, P необходимо узнать из обучающих данных, каждая строка представляет вектор слова слова, Наконец, результирующий вектор V получается путем вычисления матрицы в приведенном выше примере, и его размер представляет собой 10-мерный вектор.Короче говоря, предыдущий 10 000-мерный вектор сжимается и преобразуется в 10-мерный вектор , так что расчет может быть облегчен.
Суммировать
Процесс обработки китайского текста обычно выглядит следующим образом:
预处理 --> 分词 ——> 去停用词 --> 用向量表示分词