Я пытаюсь очистить свои текстовые данные и заменить смайлики словами, чтобы позже выполнить анализ настроений.
Поэтому я использую функцию replace_emoji
из пакета textclean. Это должно заменить все смайлики соответствующими словами.
Набор данных, с которым я работаю, представляет собой текстовый корпус, поэтому я использовал функцию VCorpus
из пакета tm в своем примере кода ниже:
text <- "text goes here bla bla <u+0001f926><u+0001f3fd><u+200d><u+2640><u+fe0f>" #text with emojis
text.corpus <- VCorpus(VectorSource(text)) #Transforming into corpus
text.corpus <- tm_map(text.corpus, content_transformer(function(x) replace_emoji(x, emoji_dt = lexicon::hash_emojis))) #This function should change Emojis into words
inspect(text.corpus[[1]]) #inspecting the corpus shows that the Unicode was NOT replaced with words
head(hash_emojis) #This shows that the encoding in the lexicon is different than the encoding in my text data.
Хотя сама функция работает, она не заменяет смайлики в моем тексте, поскольку кажется, что кодировка в наборе данных «hash_emojis» отличается от той, что у меня есть в моих данных. Таким образом, функция не заменяет эмодзи на слова. Я также пытался преобразовать данные «hash_emojis» с помощью функции iconv
, но, к сожалению, мне не удалось изменить кодировку.
Я хотел бы заменить значения Unicode, показанные в моем наборе данных, словами.
Encoding
/ хранением смайликов в объектах :-(. Ненавижу эти проблемы, так как они могут зависеть от ОС. Если я тестирую текст, он идет сюда, бла-бла ????????, код работает на моей машине. Также работает с текстом, идет сюда бла-бла \U0001f600\ U0001f602. Но текст идет здесь bla bla ‹U+0001F600›‹U+0001f602› не работает. Первые 2 — UTF8, но последний будет показывать кодировку неизвестную, хотя это представление смайликов в Юникоде. Тестирование с помощью ‹ F0›‹9F›‹98›‹81› также работает, что говорит мне о том, что таблица emoji находится в формате UTF8 и не обрабатывает представление ваших данных в юникоде. - person phiver   schedule 07.06.2020