Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex gsub()正则表达式删除åäö;in-R(UTF-8编码)_Regex_R_Twitter_Encoding_Utf 8 - Fatal编程技术网

Regex gsub()正则表达式删除åäö;in-R(UTF-8编码)

Regex gsub()正则表达式删除åäö;in-R(UTF-8编码),regex,r,twitter,encoding,utf-8,Regex,R,Twitter,Encoding,Utf 8,我正在使用TwitteR软件包从TwitteR下载推文。推文被下载并存储在MySQL数据库中。我想摆脱所有的“未知角色”。问题是gsub()将我的åäö字符转换为aao。这里我提取了一行作为示例: > testing <- outputdata$text[396] > stri_enc_mark(testing) # Gets declared encodings for each string [1] "UTF-8" > Encoding(testing) # Read

我正在使用TwitteR软件包从TwitteR下载推文。推文被下载并存储在MySQL数据库中。我想摆脱所有的“未知角色”。问题是gsub()将我的åäö字符转换为aao。这里我提取了一行作为示例:

> testing <- outputdata$text[396]
> stri_enc_mark(testing) # Gets declared encodings for each string
[1] "UTF-8"
> Encoding(testing) # Reads the declared encodings
[1] "UTF-8"
> all(stri_enc_isutf8(testing)) # check if every character is UTF-8
[1] TRUE
> testing <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", testing,)
> testing
[1] "Mycket bra intervju med Sapo chefen Anders Tjornberg pa TV4 alldeles nyss  "
如果我尝试以下代码,gsub()不会将åäö转换为aao。。。问题是,当我复制过去时,它会工作,但从数据帧加载时不会工作

> testing <- "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  ��"
> stri_enc_mark(testing)
[1] "UTF-8"
> Encoding(testing)
[1] "UTF-8"
> all(stri_enc_isutf8(testing))
[1] TRUE
> testing <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", testing,)
> testing
[1] "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  "

也许有10%的观测结果是未知的

也许你的标题令人困惑?您不想转换带有变音符号的字符,对吗?当我使用您的文本时,
gsub()
似乎完全按照我认为您希望的那样工作,并保留了变音符号字符(例如,删除了,�.

> testing <- "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  ��"
> testing2 <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", testing)
> testing2
[1] "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  "
> testing3 <- "RT @K_GBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj, föreslår regeringen. Sen väntas de höjas (tredubblas?) kanske 1 juli. Politik…"
> testing3 <- "RT @K_GBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj, föreslår regeringen. Sen väntas de höjas (tredubblas?) kanske 1 juli. Politik…"
> testing4 <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", test3)
> testing4
[1] "RT @KGBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj föreslår regeringen Sen väntas de höjas tredubblas kanske 1 juli Politik"
>测试测试2测试2
[1] “Mycket bra intervju med Säpo chefen Anders Tjornberg påTV4 alldeles nyss”
>测试3测试3测试4测试4
[1] “RT@KGBergstrom:Arbetsgivaravgifterna för unga sänks 1 maj föreslår regeringen Sen väntas de höjas tredubblas kanske 1 juli Politik”

作为一个小点,您的标记可能包括regex;我怀疑mysql是否合适。

这看起来像是一个问题。请参阅以获得可能的解释。当适应这种情况时,
测试可能包含“ä”作为“a”+“上面的组合diaeresis”,以及“å”作为“上面的组合环”。
gsub()
substitution去掉组合字符,只留下“a”

作为补救措施,您可以尝试将文本字符串标准化为NFC表单。例如:

library(stringi)
testing <- "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  ��"
## This transformation is probably unnecessary
sub_pat <- stri_trans_nfc("[^0-9A-Za-z@#:åäöÅÄÖ///' ]")

testing_nfc <- stri_trans_nfc(testing)
## This should work
gsub(sub_pat, "", testing_nfc)

testing_nfd <- stri_trans_nfd(testing)
## This should convert ä and å to a
gsub(sub_pat, "", testing_nfd)
库(stringi)

测试问题是,当你复制和粘贴文本时,我会工作,就像你和我在添加的示例中所做的那样。但是当我在数据集中的数据上做同样的事情时,它不会像预期的那样工作。我知道这不是一个答案,但你的情况可能无法再现。你能将一些推文刮到电子表格中并阅读吗直接从该文件输入R?然后看看gsub是否有效。也许MySQL会添加(或减去)一些编码?
Encoding(outputdata$text)
[1] "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "unknown" "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"   "UTF-8"  
> testing <- "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  ��"
> testing2 <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", testing)
> testing2
[1] "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  "
> testing3 <- "RT @K_GBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj, föreslår regeringen. Sen väntas de höjas (tredubblas?) kanske 1 juli. Politik…"
> testing3 <- "RT @K_GBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj, föreslår regeringen. Sen väntas de höjas (tredubblas?) kanske 1 juli. Politik…"
> testing4 <- gsub("[^0-9A-Za-z@#:åäöÅÄÖ///' ]", "", test3)
> testing4
[1] "RT @KGBergstrom: Arbetsgivaravgifterna för unga sänks 1 maj föreslår regeringen Sen väntas de höjas tredubblas kanske 1 juli Politik"
library(stringi)
testing <- "Mycket bra intervju med Säpo chefen Anders Tjornberg på TV4 alldeles nyss  ��"
## This transformation is probably unnecessary
sub_pat <- stri_trans_nfc("[^0-9A-Za-z@#:åäöÅÄÖ///' ]")

testing_nfc <- stri_trans_nfc(testing)
## This should work
gsub(sub_pat, "", testing_nfc)

testing_nfd <- stri_trans_nfd(testing)
## This should convert ä and å to a
gsub(sub_pat, "", testing_nfd)