Удаление строк с определенным словом в Корпусе

У меня есть корпус с несколькими текстами (новостными статьями), извлеченными из Интернета.

Некоторые тексты содержат описание фотографии, использованной в статье. Я хочу удалить это.

Я нашел существующую строку по этой теме, но она мне не помогла. См. ссылку: Удаление строк из корпуса с несколькими документами

Я хочу удалить каждую строку, содержащую слова «ФАЙЛ ФОТО» (заглавными буквами). Это решение было опубликовано:

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] "Главные новости | Среда, 19 апреля 2017 г. | 15:53 ​​BST\nФОТО С ФАЙЛА: Люди идут по площади в финансовом районе Кэнэри-Уорф, Лондон, Великобритания, 9 января 2017 г. REUTERS/Dylan Martinez/File Photo\ nЛОНДОН Дефицит счета текущих операций Великобритании, одно из слабых мест ее экономики, был больше, чем предполагалось ранее, до 2012 года, согласно новым оценкам Управления национальной статистики, опубликованным в среду.\nЦифры показали, что британские компании выплатили больше интерес к иностранным держателям корпоративных облигаций, чем первоначально предполагалось, что привело к большему дефициту счета текущих операций.\nДефицит, один из самых больших среди стран с развитой экономикой, находится в центре внимания после июньского голосования по Brexit.\nУправляющий Банка Англии Марк Карни заявил в В преддверии референдума Великобритания полагалась на «доброту незнакомцев», подчеркивая, что стране нужны десятки миллиардов фунтов иностранных финансов в год, чтобы сбалансировать свои бухгалтерские книги.\nУНС заявило, что дефицит текущего счета для 2012 теперь составлял 4,4 процента валового внутреннего продукта по сравнению с 3,7 процента в его предыдущей оценке.\nУНС пересмотрело дефицит за каждый год, начиная с 1998 года, в среднем на 0,6 процентных пункта. Самые большие изменения произошли с 2005 года и далее.\nВ прошлом месяце ONS сообщило, что дефицит счета текущих операций Великобритании упал до 2,4 процента ВВП за последние три месяца 2016 года, что составляет менее половины его значения в 5,3 процента в третьем квартале.\nПересмотренные данные за 2012 год. ожидается 29 сентября, и неясно, указывают ли изменения среды на дальнейшие существенные пересмотры в сторону повышения, поскольку доходность британских корпоративных облигаций заметно снизилась с 2012 года и достигла нового минимума в середине 2016 года. .MERUR00\nONS также пересмотрело свои более ранние оценки того, сколько сэкономили британцы. Норма сбережений домохозяйств в 2012 году выросла до 9,8 процента с 8,3 процента ранее, с аналогичным пересмотром в сторону повышения в 2011 году. сказал, что изменения отражают изменения в отношении к самозанятым людям, выплачивающим себе дивиденды от своих собственных компаний, а также выделение счетов благотворительных организаций, которые ранее были включены в домашние хозяйства.\nВ последние годы могут быть внесены аналогичные значительные изменения в коэффициент экономии. Около 40 процентов из примерно 2,2 миллиона новых рабочих мест, созданных с начала 2008 года, относятся к категории самозанятых.\n"

Поэтому я хочу удалить предложение (строку) ФАЙЛА ФОТО


person ymbrouwer    schedule 23.05.2017    source источник
comment
не могли бы вы добавить текст, который вы хотите обработать?   -  person amonk    schedule 23.05.2017
comment
См. исходный вопрос   -  person ymbrouwer    schedule 23.05.2017
comment
Предполагая, что у вас есть файл input.txt, содержащий начальную информацию. Затем импортируйте его через readLines("input.txt") и сначала выполните grep ФАЙЛА ФОТО в этом файле? Кстати, вы всегда можете перезаписать исходный файл :)   -  person amonk    schedule 23.05.2017
comment
Я очистил текст с помощью getURL, затем использовал ArticleSentencesExtractor из пакета Boilerpipe. Затем я создал файл .txt и использовал эти файлы .txt для создания своего корпуса.   -  person ymbrouwer    schedule 23.05.2017


Ответы (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!"                            
person amonk    schedule 23.05.2017
comment
Я понимаю. Я могу воспроизвести это на вашем примере, но как мне сделать это на всем корпусе? То есть: как мне выполнить это на textVector в моем исходном коде. Кажется, это не работает. - person ymbrouwer; 23.05.2017
comment
В точке corp <- VCorpus(VectorSource(txt)) вы можете заранее добавить функцию, которая обрабатывает txt так, как вы хотите (импорт и перезапись) - person amonk; 23.05.2017