वहाँ तीन हैं (या संभव भी अधिक) समाधान आपकी समस्या का:
सबसे पहले, केवल शब्दों को हटाने के लिए tm
पैकेज का उपयोग करें। दोनों पैकेज एक ही ऑब्जेक्ट से निपटते हैं, इसलिए आप शब्दों को हटाने और RTextTools
पैकेज से tm
का उपयोग कर सकते हैं। यहां तक कि जब आप create_matrix
फ़ंक्शन के अंदर देखते हैं तो यह tm
फ़ंक्शंस का उपयोग करता है।
दूसरा, create_matrix
फ़ंक्शन को संशोधित करें। उदाहरण के लिए own_stopwords=NULL
की तरह एक इनपुट पैरामीटर जोड़ सकते हैं और निम्न पंक्तियां जोड़ें:
# existing line
corpus <- Corpus(VectorSource(trainingColumn),
readerControl = list(language = language))
# after that add this new line
if(!is.null(own_stopwords)) corpus <- tm_map(corpus, removeWords,
words=as.character(own_stopwords))
तीसरा, अपने खुद के समारोह, कुछ इस तरह लिखना:
# excluder function
remove_my_stopwords<-function(own_stw, dtm){
ind<-sapply(own_stw, function(x, words){
if(any(x==words)) return(which(x==words)) else return(NA)
}, words=colnames(dtm))
return(dtm[ ,-c(na.omit(ind))])
}
चलो एक नज़र अगर यह काम करता है:
# let´s test it
data(NYTimes)
data <- NYTimes[sample(1:3100, size=10,replace=FALSE),]
matrix <- create_matrix(cbind(data["Title"], data["Subject"]))
head(colnames(matrix), 5)
# [1] "109" "200th" "abc" "amid" "anniversary"
# let´s consider some "own" stopwords as words above
ostw <- head(colnames(matrix), 5)
matrix2<-remove_my_stopwords(own_stw=ostw, dtm=matrix)
# check if they are still there
sapply(ostw, function(x, words) any(x==words), words=colnames(matrix2))
#109 200th abc amid anniversary
#FALSE FALSE FALSE FALSE FALSE
HTH
धन्यवाद! यह पूरी तरह से काम करता है। हालांकि, यह देखते हुए कि RTextTools पैकेज कुछ कार्यक्षमता खो देता है (या एक आसान कार्यान्वयन खो देता है), क्या आप इसका उपयोग करने की सलाह देंगे? (टीएम पैकेज के साथ चिपके हुए) – user2175594
मुझे लगता है कि यह आपके मैट्रिक्स के बाद से निर्भर करता है और शब्द वेक्टर को रोकता है। आम तौर पर मैं समाधान तीन करता हूं, लेकिन यदि मैट्रिक्स और स्टॉप वर्ड वेक्टर बहुत बड़े हैं तो आपको स्मृति समस्याएं मिल सकती हैं। मैं समाधान 2 करूँगा, लाइनों को जोड़ें, इसे नाम दें। 'create_matrix2', लेकिन यह एक फ़ाइल पर और स्रोत है। इससे पहले कि आप 'create_matrix2' का उपयोग उसी तरह पुराने कार्य के साथ कर सकते हैं लेकिन नई सुविधा के साथ। – holzben