2017-01-12 8 views
0

Я пытаюсь сделать добычу текста на китайском языке с R.китайских иероглифов функции R студия

В моем наборе данных, у меня есть столбец с комментариями людей, как «连锁店 购买 的». И у меня есть 2 других столбца, которые я создал благодаря JiebaR. Они содержат сегментированное сообщение («连锁店», «购买», «的») и ключевые слова из этих сообщений («连锁店», «购买»). Выбор ключевого слова удаляет «不» («no» на китайском языке), поэтому я пытаюсь извлечь его из слов и добавить его к ключевым словам. Простой, не так ли?

Чтобы получить чистый код, я поместил все свои функции в отдельный файл и отправил его в свой основной файл. И ТЕПЕРЬ что-то очень странное: функция работает, когда она находится в главном файле, но не работает, когда она находится в файле, который я источник! (Я только что скопировал и вставил функцию из моего основного в файл «function» и запустил строку source (...) ...).

fetchingNeg <- function(df){ 
    for (i in 1:nrow(df)){ 
    if ("不" %in% unlist(df[i,]$words)){ 
     df[i,]$keywords <- list(append(unlist(df[i,]$keywords),"不")) 
    } 
    } 
    return(df) 
} 

ответ

2

Таким образом, я нашел ошибку: Кодирование! Был символ c, который, как я знал, был «不», но когда я делал печать («不» == c), это дало бы ЛОЖЬ ... «不» в этом случае не кодируется в UTF-8, поэтому чтобы мой код работал, мне пришлось изменить его на

fetchingNeg <- function(df){ 
     for (i in 1:nrow(df)){ 
      # "不" is "\u{4e0d}" in UTF-8 
      if ("\u{4e0d}" %in% unlist(df[i,]$words)){ 
      df[i,]$keywords <- list(append(unlist(df[i,]$keywords),"\u{4e0d}")) 
      } 
     } 
     return(df) 
    } 
Смежные вопросы