在语料库中删除包含特定单词的行

时间:2017-05-23 11:34:48

标签: r tm corpus

我有一个语料库,其中包含从互联网上删除的多个文本(新闻文章)。

部分文字包含文章中使用的照片说明。我想删除它。

我找到了一个关于这个主题的现有字符串,但它无法帮助我。请参见链接:Removing rows from Corpus with multiple documents

我想删除包含“PHOTO FILE”字样的每一行(在大写字母中)。该解决方案已发布:

require(tm)
corp <- VCorpus(VectorSource(txt))
textVector <- sapply(corp, as.character)
for(j in seq(textVector)) {
newCorp<-textVector
newCorp[[j]] <- textVector[[j]][-grep("PHOTO",    textVector[[j]], ignore.case = FALSE)]
}

这似乎对我不起作用。代码运行但没有删除。

这是什么工作:

require(tm)
corp <- VCorpus(VectorSource(txt))
textVector <- sapply(corp, as.character)
newCorp <- VCorpus(VectorSource(textVector[-grep("PHOTO", textVector, 
                                              ignore.case = FALSE)]))

但是这会删除包含该单词的每个文件,我不希望这样。

如果有人可以帮助我,我将非常感激。

增加:

以下是其中一个文本的示例:

[1]“热门新闻| 2017年4月19日星期三| 3:53 pm BST \ nFILE照片:2017年1月9日,人们在英国伦敦金丝雀码头金融区的广场上散步.REUTERS / Dylan Martinez /文件照片\ n伦敦英国国家统计局周三公布的最新数据显示,英国的经常账户赤字是其经济的弱点之一,比2012年前的数字更大。公司债券的外国持有人比初步估计更多的利息,导致更大的经常账户赤字。\ n赤字是发达经济体中最大的赤字之一,自6月英国脱欧公投以来一直备受关注。\ n英国银行行长马克卡尼在公投前表示,英国依赖于“陌生人的善意”,强调该国每年需要数百亿英镑的外国资金来平衡其账目。\ n ONS表示当前账户赤字为2 012现在占国内生产总值的4.4%,相比之前估计的3.7%。\ n ONS将可追溯到1998年的每年赤字平均上调0.6个百分点。最大的修订发生在2005年以后。\ n上个月英国国家统计局表示,英国的经常账户赤字在2016年最后三个月下跌至GDP的2.4%,不到第三季度5.3%的一半。\ n修正后的2012年数据将于9月29日到期,目前尚不清楚周三的变化是否意味着进一步大幅上调,因为英国企业债券收益率自2012年以来已显着下降,并在2016年中期触及新低。 .MERUR00 \ n ONS还修正了早先对英国人节省多少的估计。 2012年的家庭储蓄率从之前的8.3%上升至9.8%,2011年也有类似的上调。\ n 2016年第四季度尚未修订的比率为自1963年以来的最低点3.3%。\ n ONS他说,这些变化反映了自营职业者从自己的公司中获得红利的待遇的变化,以及将以前被包括在家庭中的慈善机构的账户分开。\ n近年来可能会产生类似的大规模修订。储蓄率。自2008年初以来,大约220万个新增就业岗位中约有40%属于自营职业类别。\ n“

所以我希望删除FILE PHOTO的句子(行)

1 个答案:

答案 0 :(得分:0)

让我们说最初文本包含在文件input.txt中。 原始文件如下:

THis is a text that contains a lot
of information
and PHOTO FILE.
Great!


my_text<-readLines("input.txt")

[1] "THis is a text that contains a lot" "of information"                     "and PHOTO FILE."                    "Great!"                            

如果你摆脱了虚假元素

blah[-grep("PHOTO FILE",blah,value = F,perl=T)]  

你最终得到了

[1] "THis is a text that contains a lot" "of information"                     "Great!"