清理推文消息的文本

Cleaning text of tweet messages

我有推文的 csv。我使用这个 ruby 库得到它:

https://github.com/sferik/twitter .

csv是两列150行,第二列是短信:

    Text
1   RT @AlstomTransport: #Alstom and OHL to supply a #metro system to #Guadalajara #rail #Mexico  http://t.co/H88paFoYc3 http://t.co/fuBPPqNts4

我要做一个情感分析,所以我需要清理短信,删除链接,RT,Via,以及所有对分析无用的东西。

我尝试使用 R,使用在几个教程中找到的代码:

> data1 = gsub("(RT|via)((?:\b\W*@\w+)+)", "", data1)

但是输出没有任何意义:

[1] "1:150"                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    
[2] "c(113, 46, 38, 11, 108, 100, 45, 44, 9, 89, 99, 93, 102, 101, 110, 93, 61, 57, 104, 66, 86, 53, 42, 43, 37, 7, 88, 32, 122, 131, 14, 102, 105, 12, 54, 13, 72, 87, 55, 132, 29, 28, 10, 15, 81, 81, 107, 87, 106, 81, 98, 73, 65, 52, 94, 97, 65, 59, 60, 50, 48, 121, 117, 75, 79, 111, 115, 119, 118, 91, 79, 31, 76, 111, 85, 62, 91, 103, 79, 120, 78, 47, 49, 8, 129, 123, 124, 58, 71, 25, 36, 80, 127, 112, 23, 22, 35, 21, 30, 74, 82, 51, 63, 130, 135, 134, 90, 83, 63, 128, 16, 20, 19, 34, 27, 26, 33, 77, \n114, 126, 64, 69, 4, 135, 41, 40, 17, 67, 92, 96, 84, 92, 56, 18, 125, 5, 6, 133, 24, 39, 70, 95, 116, 68, 84, 109, 92, 3, 1, 2)"

谁能帮帮我?谢谢。

您似乎试图将整个 data.frame 传递给 gsub 而不仅仅是文本列。 gsub 更喜欢处理字符向量。相反你应该做

data1[,2] = gsub("(RT|via)((?:\b\W*@\w+)+)", "", data1[,2])

只转换第二列。