先來做一個簡單的corpus:
用inspect可以看到這個corpus有兩個文件.
(熟悉tm套件的人應該有發現現在物件結構長得跟以前不太一樣,但是結構的事晚點再看,以下先來示範如果用以前的程式碼會發生什麼事情)
這是一個很簡單的範例,將文件中的“今天”,代換成“昨天”,用inspect看還一切正常,接著我們要把文件轉換成文字矩陣:
這時候會發現轉不過去(
原因在於0.6版的tm套件改變了包裝文件的方式...
我們先來看一下新的文件結構長什麼樣子:
怕了吧?看起來超複雜的XD
簡單來說就是現在包裝文件的方式變成像書本一樣,每個文件分別存放在一個獨立的textDocument的list裏面,美個textDucument又分別裝著content和meta檔,content裝著文件內容,meta裝著類似作者,標題,建立日期等一些關於文件說明的部分.
過去的tm_map功能能夠自動存取每個文件的內容,但是現在如果直接套用tm_map(如上面的範例)會強至將文件變成單純的chr,喪失文件屬性:
如果現在要對文件內容作調整(無論是分詞還是替換單字),要引用新的function==> content()或是content_transformer():
這樣就可以在保有原本corpus屬性下調整內容,自然也可以順利轉成文字矩陣:
希望能幫助到有在玩text mining但是最近無法使用的朋友XD
為了這個卡了半天, 直到看見這篇部落格,萬分感謝!!!
回覆刪除XD 原來這個問題現在還存在唷
刪除