问题描述
我想使用R
从我的文本中删除所有停用词。我要删除的停用词列表可以在http://www.ranks.nl/stopwords下的“ 长停用词列表”(一个很长的列表版本)部分下找到。我正在使用tm
软件包。可以帮我吗? Tnx!
解决方法
您可以复制该列表(在浏览器中将其选中后),然后将其粘贴到R中的该表达式中:
LONGSWS <- " <paste into this position> "
您将光标置于编辑器或IDE控制台设备的两个引号内。然后执行以下操作:
sw.vec <- scan(text=LONGSWS,what="")
#Read 474 items
scan函数需要具有通过给what
自变量的示例指定的输入类型,为此,仅使用""
就足以用于字符类型。然后,您应该可以应用注释中提供的代码:
tm_map(text,removeWords,sw.vec)
您尚未提供示例text
对象。仅使用字符向量是不成功的:
tm_map("test of my text",sw.vec )
#Error in UseMethod("tm_map",x) :
# no applicable method for 'tm_map' applied to an object of class "character"
因此,我们需要假设您有一个适合的类的适合的对象,可以放置在tm_map
的参数的第一位置。因此,请使用?tm_map
帮助页面中的示例:
> res <- tm_map(crude,sw.vec )
> str(res)
List of 20
$ 127:List of 2
..$ content: chr "Diamond Shamrock Corp said \neffective today cut contract prices crude oil \n1.50 dlrs barrel.\n The re"| __truncated__
..$ meta :List of 15
.. ..$ author : chr(0)
.. ..$ datetimestamp: POSIXlt[1:1],format: "1987-02-26 17:00:56"
.. ..$ description : chr ""
.. ..$ heading : chr "DIAMOND SHAMROCK (DIA) CUTS CRUDE PRICES"
.. ..$ id : chr "127"
.. ..$ language : chr "en"
.. ..$ origin : chr "Reuters-21578 XML"
.. ..$ topics : chr "YES"
.. ..$ lewissplit : chr "TRAIN"
.. ..$ cgisplit : chr "TRAINING-SET"
# ----------------snipped remainder of long output.