【问题标题】:Removing rows with a specific word in Corpus删除语料库中带有特定单词的行
【发布时间】:2017-05-23 11:34:47
【问题描述】:

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

一些文本包含文章中使用的照片的描述。我想删除它。

我找到了一个关于这个主题的现有字符串,但它对我没有帮助。见链接: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 BST\n文件照片:2017 年 1 月 9 日,人们走过英国伦敦金丝雀码头金融区的一个广场。REUTERS/Dylan Martinez/档案照片\n伦敦根据英国国家统计局周三的新估计,英国的经常账户赤字是其经济的弱点之一,在截至 2012 年的几年中比以前认为的要大。\n数据显示,英国公司已经向外国公司债券持有人支付的利息比最初估计的要多,导致经常账户赤字更大。\n赤字是发达经济体中最大的赤字之一,自 6 月英国退欧公投以来一直备受关注。\n英格兰银行行长马克卡尼在公投前表示,英国依赖“陌生人的善意”,强调该国每年需要数百亿英镑的外国融资来平衡其账目。\n英国国家统计局表示,目前2的账户赤字012 现在占国内生产总值的 4.4%,而之前的估计为 3.7%。\nONS 将自 1998 年以来的每一年的赤字平均上调 0.6 个百分点。最大的修正发生在 2005 年以后。\n上个月,英国国家统计局表示,英国的经常账户赤字在 2016 年最后三个月跌至 GDP 的 2.4%,不到第三季度 5.3% 读数的一半。\n2012 年修正数据自 2012 年以来英国公司债券收益率已显着下降,并在 2016 年年中触及新低,因此尚不清楚周三的变化是否预示着进一步的大幅上修。 .MERUR00\n英国国家统计局还上调了之前对英国人储蓄的估计。 2012 年的家庭储蓄率从之前的 8.3% 上升到 9.8%,2011 年也有类似的上调。\n2016 年第四季度的储蓄率尚未修正,处于 1963 年以来的最低点,为 3.3%。\nONS表示这些变化反映了个体经营者从自己的公司向自己支付股息的待遇发生了变化,以及将以前包含在家庭中的慈善账户分开。\n最近几年可能会对储蓄率。自 2008 年初以来创造的大约 220 万个新工作岗位中,约有 40% 属于个体经营者类别。\n"

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

【问题讨论】:

  • 能否请您添加一些您希望处理的文本?
  • 查看原始问题
  • 假设您有一个包含初始信息的input.txt 文件。然后通过readLines("input.txt") 导入它并最初在该文件中执行“文件照片”的 grep?作为旁注,您始终可以覆盖初始文件:)
  • 我使用 getURL 抓取文本,然后使用 Boilerpipe 包中的 ArticleSentencesExtractor。然后我制作了一个 .txt 文件并使用这些 .txt 文件来创建我的语料库。

标签: r tm corpus


【解决方案1】:

假设最初文本包含在文件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!"                            

【讨论】:

  • 我明白了。我可以用你的例子复制这个,但我如何在整个语料库上执行这个?即:如何在我的原始代码中对 textVector 执行此操作。这似乎不起作用。
  • corp &lt;- VCorpus(VectorSource(txt))处,您可以预先添加一个函数,以您想要的方式处理txt(导入和覆盖)
猜你喜欢
  • 2020-06-18
  • 1970-01-01
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
  • 2020-09-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多