R - замена слов / фраз в тексте - PullRequest
0 голосов
/ 25 апреля 2018

У меня есть файл .csv, в котором я создал собственный словарь для замены слов, и я загрузил его в виде фрейма данных в R, например:

word         replacement
Hello        Hi
Good         Best
Good Night   Sweet Morning

Что я хочу сделать, это отсканировать мой текст в .csv и отсканировать каждую ячейку, и если он содержит какие-либо слова или фразы, присутствующие в моем пользовательском словаре, замените это слово или фразу заменой.

Пожалуйста, помогите мне с кодом, я новичок в R.

1 Ответ

0 голосов
/ 07 мая 2018
#Dictionary data frame
dict <- data.frame( original = c("word", "Hello","Good","Good Night"),         
                          replace = c("replacement", "Hi", "Best", "Sweet Morning"), 
                          stringsAsFactors=FALSE)

dict
#     original       replace
# 1       word   replacement
# 2      Hello            Hi
# 3       Good          Best
# 4 Good Night Sweet Morning

# Data frame where the words need to be replaced
df <- data.frame ( col1 = c( "Hello", "World", "Good","coffee"),
                   col2 = c("Good Night","To all my friends","I have no","word"), 
                   stringsAsFactors=FALSE)

df
#    col1              col2
#1  Hello        Good Night
#2  World To all my friends
#3   Good         I have no
#4 coffee              word

apply(df,
      MARGIN=c(1,2),
      FUN=function(x){ pos=which(dict[,1] == x); 
                                 if(length(pos)>0) return(dict[pos[1],2]) else return(x)})

#        col1     col2               
#[1,] "Hi"     "Sweet Morning"    
#[2,] "World"  "To all my friends"
#[3,] "Best"   "I have no"        
#[4,] "coffee" "replacement"      
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...