Преобразование текстового корпуса символьной строки в символьный вектор перед использованием пакета stringi - PullRequest
0 голосов
/ 26 мая 2018

У меня есть корпус, содержащий два текстовых файла, которые я импортировал как:

temp = list.files(pattern = ".txt")  
mydata = lapply(temp, read.delim, sep ="\t", quote = "")  
mydata

класс вывода был список , но я преобразовал его в символ как:

class(mydata)  
list  
mydata <- as.character(mydata)

тексты относятся к классу символов:

class(mydata)    
[1] "character"  

но кажется, что они являются символьными строками, как показывает вывод:

[[1]]ï..We.give.the.observer.as.much.time.as.he.wants.to.make.his.response..we.simply.increase.the.number.of.alternative.stimuli.among.which.he.must.

(приведенная выше строка является лишь примеромодного из текстов);затем он печатает фактические тексты, поскольку они представляют собой каждое предложение, в отдельной строке, например:

ï..this.is.just.a.bunch.of.crab.to.analyse. 
1  I need to understand how this R package works.                                                                                                                                                                                                                                                                                                                                                                        
2  lexical diversity needs to be analysed for two texts for now.                                                                                                                                                                                                                                                                                                                                                           
3  In this document I am typing each sentence on a separate line.                                                                                                                                                                                                                                                                                                                                                         

Мне нужно преобразовать эти тексты как символьный вектор для следующего шага анализа, чтобы преобразовать их в ASCIIс помощью пакета stringi в R, например:

stri_enc_toascii(mydata) 

- этот пакет преобразует только вектор символов в кодировку ascii.Итак, вопрос:

- Как преобразовать корпус символьной строки в вектор?

PS: я уже рассмотрел все остальные вопросы в StackOverflow, чтобы избежать дублирования вопроса.Спасибо за вашу помощь!


Спасибо, ребята, за вашу помощь!Я просто использовал as.vector для преобразования символьной строки в символьный вектор:

as.vector(mydata)
is.vector(mydata)
TRUE

Но основная проблема остается: я хотел использовать символьный вектор в качестве входных данных для пакета stringi и stri_enc_toascii (mydata) функция для преобразования mydata в кодировку ASCII (отметьте здесь , но кодировка по-прежнему показывает unknown . Есть ли какой-либо простой способ преобразовать «неизвестную» кодировку в «ascii»?

1 Ответ

0 голосов
/ 26 мая 2018

Вопрос не очень понятен, но звучит так, будто вы хотите сгладить вектор строк, которые также преобразованы в ASCII:

library(stringi)

string1 <- "Here's a random phrase."          # English, ASCII
string2 <- ".هنا عبارة عشوائية هناائية"     # Arabic, not ASCII
string3 <- "여기에 임의의 문구가 있습니다."      # Korean, not ASCII

strings <- c(string1, string2, string3)       # as a vector of strings of length 3

ascii_strings <- stri_enc_toascii(strings)    # convert to ASCII

stri_flatten(ascii_strings)           # as a flat, single element string

# other options....
stri_c(ascii_strings, collapse = " ") # as a flat, single element string
Reduce(paste, ascii_strings)          # base::Reduce() / purrr::reduce() with paste() will do the same
stringr::str_c(ascii_strings)         # stringr::str_c() just wraps stringi::str_c()
stringr::str_flatten()                # stringr::str_flatten() just wraps stringi::flatten()
...