序
跟所有人一樣,從來沒有想過自己會出版一本寫著自己名字的書,特別是一本跨領域的關於電腦編程的書。
在思考很久以後,主要出於兩個目的而寫了這本書。第一,是提供給我在國立中山大學行傳所開設的「電腦內容分析和社會網絡分析」這門課的同學一本實用的教科書。從2017年開始,我已經教這門課7次了。選修這堂課的同學通常不多,可能的原因是大家都很害怕用R語言來寫電腦程式。學習電腦語言程式就好像學一門新的語言,因此需要背很多內容。同學們通常聽完一節課,就被各種各樣的電腦指令給嚇壞了。就像學習一門新語言需要一本好用的字典,同學們需要有一個羅列不同場景中完成不同任務所需要之程式碼的教科書,可以隨時查找。我常說不用硬記程式碼,只要會copy和paste就好了。我自己也是只記住了很少量的程式碼,每次分析資料都會回頭查看過去的筆記。之後,有了這本書,寫程式碼應該就方便多了。
寫這本書的第二個目的,是幫助人文社會科學領域沒有編程基礎的同學或學者自學文字探勘的技能。常常有老師向我表示,他們也想學習文字探勘的技能,請教該如何入門。我常常說不太清楚,因為編寫電腦程式的細節太多了。因此,我會推薦他們去讀Julia Silge和David Robinson的Text Mining with R—也是我自學入門所用的書,但我心裡知道,那本書主要是針對英文的文字探勘,若要應用到中文的文字分析,自學者需要走很多的彎路。如果有一本中文文字探勘的書,並且是從人文社會科學領域闡述編程的概念,會使自學者更加容易掌握文字探勘的技能。本書的大部分內容並不是我創造的,而是在遇到教學和研究上的問題之後,於網路上找到的答案。很多國內外的學習夥伴,無私地在網路上分享他們研究的心得、疑問和答案,我主要做的工作就是按照文字探勘研究的流程,把這些內容系統性地歸納在一起。
我對這本著作又愛又恨,恨它的原因主要是每次重讀都發現有錯誤,包括錯誤的描述和跑不出來的程式碼。客觀上,是因為R作為open source的程式語言,每個套件的作者都在更新和修改他們的功能,很多去年跑得出來的程式碼,今年就跑不出來了。主觀上,是我自己也在學習過程中,受限於知識,過去覺得對的描述,現在卻覺得是錯的或者不夠準確。因此,如果讀者發現了任何錯誤和值得探討的地方,都歡迎寫信給我(yuetan@mail.nsysu.edu.tw)。
我由衷感謝,如果沒有我認真、可愛又能幹的助理蘇靖雅,自己一定不可能完成這本書。感謝她細心的校對,使一堆雜亂的資料變成了一本書。也要特別感謝我之前的助理任軒立在資料爬取上所給的指教。還要感謝成大統計學系的李政德老師和中研院的江彥生老師,在我課堂上分別針對機器學習和社會網絡分析所提供的精彩演講,本書很多相關的內容都來自於兩位老師精辟的講解。最後,當然是感謝認真上課的同學們,在授課課程中給了我無數次省思的機會。
最後的最後,感謝愛我的上帝給我一切的資源和機會。希望這本書對你有幫助。上帝祝福你。
譚躍
2023年7月29日於美國印地安納州布魯明頓市