Отображение символов Юникода на язык в R
Я извлекаю данные из файла.pdf, который написан на тамильском (местном индийском языке) языке. После извлечения текста в R из файла pdf, я получаю текст в формате мусора или символов Юникода. Я не могу сопоставить его с правильным текстом или тем же текстом, что и в файле PDF, вот код
library(tm)
library(pdftools)
library(qdapRegex)
library(stringr)
library(textreadr)
if(!require("ghit")){
install.packages("ghit")
}
# on 64-bit Windows
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer"), INSTALL_opts = "--no-multiarch")
# elsewhere
ghit::install_github(c("ropenscilabs/tabulizerjars", "ropenscilabs/tabulizer"))
text <- extract_tables("D:/first.pdf")
text[[1]][,2][3]
Это дает мне какой-то ненужный персонаж, как
"«îù£ñ¢«ð좬ì , âô¢ì£ñ¢ú¢ «ó£ Ì"
Я пробовал с изменением типа юникода
library(stringi)
stri_trans_toupper("ê¶ó®", locale = "Tamil")
Но безуспешно. Любое предложение будет заметно.
Благодарю.
2 ответа
Если ваш текст был успешно извлечен, и это единственная проблема преобразования кодировки, я думаю, iconv
функция работает. Я привожу пример с текстом, закодированным "cp932" (восточноазиатские языки).
# text file written in cp932
x <- readLines("test-cp932.txt", encoding="utf-8")
x
## [1] "\x82\xa0\x82肪\x82Ƃ\xa4"
# this is garbled because the file has been read
# in a wrong encoding
iconv(x, "cp932", "utf-8")
## [1] "ありがとう"
# this means 'thank you'
Если это не сработает, возможно, ваш текст был заражен в процессе анализа.
Другая возможность состоит в том, чтобы преобразовать ваши строки в необработанный объект (коды) и переформулировать исходный текст, используя сопоставление кода следующим образом
charToRaw(x)
## [1] 82 a0 82 e8 82 aa 82 c6 82 a4
Этот PDF не в формате Unicode. и я не могу найти его кодировку http://dev.neechalkaran.com/p/oovan.html
либо вы должны найти решение для его кодирования, либо использовать Unicode PDF