Опитвам се да изчистя текстовите си данни и да заменя емотикони с думи, за да мога да извърша анализ на настроението по-късно.
Затова използвам функцията 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. Но текстът идва тук бла бла ‹U+0001F600›‹U+0001f602› не работи. Първите 2 са UTF8, но последният ще показва неизвестно кодиране, въпреки че това е unicode представянето на емоджитата. Тестване с ‹ F0›‹9F›‹98›‹81› също работи, което ми казва, че таблицата с емотикони е във формат UTF8 и не обработва unicode представянето на вашите данни. - person phiver   schedule 07.06.2020