這裏是我的代碼: 例子1:是否TM自動忽略了很短的字符串?
a <- c("ab cd de","ENERGIZER A23 12V ALKALINE BATTERi")
a1 <- VCorpus(VectorSource(a))
a2 <- TermDocumentMatrix(a1,control = list(stemming=T))
inspect(a2)
結果是:
Docs
Terms 1 2
12v 0 1
a23 0 1
alkalin 0 1
batteri 0 1
energ 0 1
貌似第一個字符串中被忽略。
例如2
a <- c("abcd cde de","ENERGIZER A23 12V ALKALINE BATTERi")
a1 <- VCorpus(VectorSource(a))
a2 <- TermDocumentMatrix(a1,control = list(stemming=T))
inspect(a2)
結果是:
Docs
Terms 1 2
12v 0 1
a23 0 1
abcd 1 0
alkalin 0 1
batteri 0 1
cde 1 0
energ 0 1
我們可以看到兩個子串(ABCD,CDE)的同時shorest一個(DE)是人仍下落不明不停。如果我不使用control = list(stemming = T),情況是一樣的。所以,我很好奇這是否是tm中的一種定義?如果小於3個字母,字符串將被忽略?我不認爲這是一個好主意。字符串很有可能即使是縮寫等短小也是有用的。
如果是這樣,有一個參數或東西,可以改變呢?非常感謝。
你可能想嘗試另一種NLP包例如'quanteda' – HubertL