我想使用grep搜索西班牙语单词“España”,例如:
neg_14<-grep("CataluñaesEspaña",doc0$text,ignore.case=TRUE)
但正确的编码是什么?写字“ñ”的正确形式是什么? 非常感谢
我要分析的文字是:
str(doc0$text)
chr [1:2858732] "RT directe indirectecat Una nit dencartellada o perqu guanyarem http//tco/Sp09q6MVvq" ...
如果我使用此命令:
Encoding(doc0$text)
输出全是“未知”。 我在Linux工作
答案 0 :(得分:3)
这是一个包含所有未知编码的向量:
> places
[1] "España" "Scotland" "CataluñaesEspaña" "Birmingham"
[5] "France" "CataluñaesEspaña"
> Encoding(places)
[1] "unknown" "unknown" "unknown" "unknown" "unknown" "unknown"
我现在不得不猜。是“UTF-16”吗?
> iconv(places, from="UTF-16", to="UTF-8")
[1] NA "捓瑯慬摮" "慃慴畬뇃敡䕳灳썡憱"
[4] "楂浲湩桧浡" "牆湡散" "慃慴畬뇃敡䕳灳썡憱"
嗯,可能不是。是“latin1”吗?
> iconv(places, from="latin1", to="UTF-8")
[1] "España" "Scotland" "CataluñaesEspaña"
[4] "Birmingham" "France" "CataluñaesEspaña"
嗯近但不对。它一直是“UTF-8”吗?
> iconv(places, from="UTF8", to="UTF-8")
[1] "España" "Scotland" "CataluñaesEspaña" "Birmingham"
[5] "France" "CataluñaesEspaña"
那看起来是正确的!让我们设定它!
> Encoding(places)="UTF-8"
> Encoding(places)
[1] "UTF-8" "unknown" "UTF-8" "unknown" "unknown" "UTF-8"
还剩下一些unknown
,因为它们不使用任何特殊字符。
您需要弄清楚字符串的编码方式,然后尝试一下。如果你选择280万个字符串中的一些麻烦,你可以看到你工作时没有270万unknown
流过去,这就是为什么我建议你掏出一个或者其中有两个例子。
答案 1 :(得分:2)
您可以先更改文本的编码,然后删除~
。然后搜索字母n
i <- iconv("CataluñaesEspaña", from = "UTF-8", to = "ASCII//TRANSLIT")
i
# [1] "CatalunaesEspana"
grep("n", i, value = TRUE)
# [1] "CatalunaesEspana"
这是依赖于linux平台的。但是,example(iconv)
请注意,由于您的编码可能与我的不同,因此您可能需要使用
iconv(text, Encoding(text), "ASCII//TRANSLIT")