首页 > 解决方案 > 如何考虑来自 http://www.ranks.nl/stopwords 的“长停用词列表”?

问题描述

我有兴趣使用删除文本中的所有停用词R。我想删除的停用词列表可以在http://www.ranks.nl/stopwords在“ Long Stopword List ”(一个非常长的列表版本)部分下找到。我正在使用tm包。有人可以帮帮我吗?天呐!

标签: rtexttm

解决方案


您可以复制该列表(在浏览器中选择它之后),然后将其粘贴到 R 中的此表达式中:

LONGSWS <- " <paste into this position> "

您可以将编辑器或 IDE 控制台设备的光标放在两个引号内。然后这样做:

sw.vec <- scan(text=LONGSWS, what="")
#Read 474 items

扫描函数需要通过给what参数的示例指定输入类型,为此,仅使用""对于字符类型就足够了。然后您应该能够应用您在评论中提供的代码:

 tm_map(text, removeWords, sw.vec)

您尚未提供示例text对象。仅使用字符向量是不成功的:

 tm_map("test of my text", removeWords, 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, removeWords, 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.

推荐阅读