Как только данные собраны, у нас обычно есть различные источники данных с различными характеристиками. Самым непосредственным шагом было бы сделать эти источники данных однородными и продолжать развивать наш продукт данных. Однако это зависит от типа данных. Мы должны спросить себя, целесообразно ли гомогенизировать данные.
Возможно, источники данных совершенно разные, и потеря информации будет большой, если источники будут гомогенизированы. В этом случае мы можем думать об альтернативах. Может ли один источник данных помочь мне построить модель регрессии, а другой — модель классификации? Можно ли работать с неоднородностью на наше преимущество, а не просто терять информацию? Принятие этих решений — вот что делает аналитику интересной и сложной.
В случае обзоров, можно иметь язык для каждого источника данных. Опять же, у нас есть два варианта —
-
Гомогенизация — включает перевод разных языков на язык, на котором у нас больше данных. Качество услуг перевода приемлемо, но если мы хотим перевести большие объемы данных с помощью API, стоимость будет значительной. Для этой задачи доступны программные средства, но это будет слишком дорого.
-
Гетерогенизация — можно ли разработать решение для каждого языка? Так как язык корпуса просто определить, мы могли бы разработать рекомендацию для каждого языка. Это потребовало бы дополнительной работы с точки зрения настройки каждого рекомендателя в соответствии с количеством доступных языков, но, безусловно, является приемлемым вариантом, если у нас есть несколько доступных языков.
Гомогенизация — включает перевод разных языков на язык, на котором у нас больше данных. Качество услуг перевода приемлемо, но если мы хотим перевести большие объемы данных с помощью API, стоимость будет значительной. Для этой задачи доступны программные средства, но это будет слишком дорого.
Гетерогенизация — можно ли разработать решение для каждого языка? Так как язык корпуса просто определить, мы могли бы разработать рекомендацию для каждого языка. Это потребовало бы дополнительной работы с точки зрения настройки каждого рекомендателя в соответствии с количеством доступных языков, но, безусловно, является приемлемым вариантом, если у нас есть несколько доступных языков.
Twitter Mini Project
В данном случае нам нужно сначала очистить неструктурированные данные, а затем преобразовать их в матрицу данных, чтобы применить к ним моделирование тем. В целом, при получении данных из твиттера есть несколько символов, которые нам не нужны, по крайней мере, на первом этапе процесса очистки данных.
Например, после получения твитов мы получаем следующие странные символы: «<ed> <U + 00A0> <U + 00BD> <ed> <U + 00B8> <U + 008B>». Вероятно, это смайлики, поэтому для очистки данных мы просто удалим их, используя следующий скрипт. Этот код также доступен в файле bda / part1 / collect_data / cleaning_data.R.
rm(list = ls(all = TRUE)); gc() # Clears the global environment source('collect_data_twitter.R') # Some tweets head(df$text) [1] "I’m not a big fan of turkey but baked Mac & cheese <ed><U+00A0><U+00BD><ed><U+00B8><U+008B>" [2] "@Jayoh30 Like no special sauce on a big mac. HOW" ### We are interested in the text - Let’s clean it! # We first convert the encoding of the text from latin1 to ASCII df$text <- sapply(df$text,function(row) iconv(row, "latin1", "ASCII", sub = "")) # Create a function to clean tweets clean.text <- function(tx) { tx <- gsub("htt.{1,20}", " ", tx, ignore.case = TRUE) tx = gsub("[^#[:^punct:]]|@|RT", " ", tx, perl = TRUE, ignore.case = TRUE) tx = gsub("[[:digit:]]", " ", tx, ignore.case = TRUE) tx = gsub(" {1,}", " ", tx, ignore.case = TRUE) tx = gsub("^\\s+|\\s+$", " ", tx, ignore.case = TRUE) return(tx) } clean_tweets <- lapply(df$text, clean.text) # Cleaned tweets head(clean_tweets) [1] " WeNeedFeminlsm MAC s new make up line features men woc and big girls " [1] " TravelsPhoto What Happens To Your Body One Hour After A Big Mac "
Последний шаг мини-проекта по очистке данных — очистить текст, который мы можем преобразовать в матрицу, и применить алгоритм. Из текста, хранящегося в векторе clean_tweets, мы можем легко преобразовать его в матрицу пакетов слов и применить алгоритм обучения без присмотра.