如何用R中的grep搜索西班牙语单词?

时间:2014-12-01 17:18:40

标签: r twitter encoding grep character

我想使用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工作

2 个答案:

答案 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)

底部有一个Windows示例

请注意,由于您的编码可能与我的不同,因此您可能需要使用

iconv(text, Encoding(text), "ASCII//TRANSLIT")