У меня есть 4000 текстовых документов в корпусе. Я хочу удалить строки (строки), содержащие конкретное слово из каждого документа, как часть очистки данных.Удаление строк из корпуса с несколькими документами
Например:
library(tm)
doc.corpus<- VCorpus(DirSource("C:\\TextMining\\Prototype",pattern="*.txt",encoding= "UTF8",mode = "text"),readerControl=list(language="en"))
doc.corpus<- tm_map(doc.corpus, PlainTextDocument)
doc.corpus[[1]]
#PlainTextDocument
Metadata: 7
Content: chars: 16542
as.character(doc.corpus)[[1]]
$content
"Quick to deploy, easy to use, and offering complete investment
protection, our product is clearly differentiated from all
competitive offerings by its common, modular platform, seamless
integration, broad range of support to heterogeneous products from
Microsoft,Apple, Oracle and unequalled scalability, support for
industry standards, and business application-to-storage system
correlation capabilities."
"Microsoft is U.S. registered trademarks of Microsoft Corporation, Oracle is a U.S. registered trademarks of Oracle Corporation and Apple
is a U.S. registered trademarks of Apple Corporation."
Моя проблема заключается в удалении 2-й строки, содержащей слово «товарный знак» от этого и всех других документов. В настоящее время я использовал grepl() для идентификации строк и попытался исключить те строки, используя подход, который обычно используется при работе с кадром данных, которые не работают:
corpus.copy<-corpus.doc
corpus.doc[[1]]<-corpus.copy[[1]][!grepl("trademark",as.character(corpus.copy[[1]]),ignore.case = TRUE),]
Пока он работает для первого документ, я мог бы легко использовать «для цикла» для реализации во всех документах в Корпусе.
Любые советы/решения оцениваются. Я мог бы легко использовать альтернативный маршрут, преобразовывая Corpus в фрейм данных, чтобы удалить нежелательные строки и снова вернуться к Corpus. Благодарю.
System.info:
[1] "x86_64-w64-mingw32";
[1] "R version 3.1.0 (2014-04-10)"
[1] tm_0.6-2
Стратегия: Добавьте слово «товарный знак» (и другие слова, чтобы удалить) к вектору игнорируемых слов, а затем запустить tm_map (mycorpus, removeStopwords) с этими пользовательскими векторами стоп-слов. – knb
Вопрос: Является ли первый элемент символа «строкой» или означает, что символы новой строки означают, что он должен быть 7 строк? Я спрашиваю, потому что второй элемент символьного вектора не имеет новых строк, но первый делает. –
Каждая строка символьного символа определяется «текстом внутри двойной кавычки». В исходном примере у нас есть две строки в этом документе. – user2662753