我在处理俄语文本时遇到编码问题。我有一个俄罗斯文本列表(示例如下所示),我通过用一个关键字替换相似的关键字来应用同义词。
mydata=
c("Проведение глюкозотолерантного теста",
"Проведение гониоскопической компрессионной пробы Форбса",
"Проведение комплексной медико-автотехнической экспертизы в отношении трупа и живых лиц",
"Проведение комплексного аутопсийного исследования плода и новорожденного")
syns <- list(
list(term="проба", syns= c("проба","пробы")),
list(term="толстокишеч", syns= c("толстокишеч","толст")))
regex_batch <- sapply(syns, function(syn) syn$term)
names(regex_batch) <- sapply(syns, function(x) paste0("\\b", paste(x$syns, collapse = "\\b|\\b"), "\\b"))
text_res <- str_replace_all(mydata, regex_batch)
text_res = stri_encode(text_res,"UTF-8", "")
View(text_res)
代码工作正常,因为它用проба取代пробbl。
Проведение гониоскопической компрессионной **проба** Форбса
但是,如果我将数据从XLSX文件导入到R中,而不是创建mydata向量,则代码不能正常工作。它不会返回任何错误,但它不会替换同义词。为了调查这个问题,我检查了编码。
Encoding(if I use character vector)-- "unknown".
Encoding(if I import data from XLSX)-- "UTF-8".
我还使用stri_encode(k,"UTF-8","")
删除了UTF-8编码,但它没有用。我正在使用readxl包中的read_excel()
函数从XLSX文件导入数据。由于我有很多行文本,我需要从excel或csv