自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

R和Python中的文本挖掘:8個入門小貼士

開發(fā) 后端
本文將會通過 8 個小貼士幫助你走進文本挖掘之門。

你希望學習文本挖掘,卻發(fā)現(xiàn)大多數(shù)教程難度跨度很大?或者說你找不到心儀的數(shù)據(jù)集?

本文將會通過 8 個小貼士幫助你走進文本挖掘之門。

對文本保持好奇

在數(shù)據(jù)科學世界中,凡事的第一步都是“感到好奇”,文本挖掘也不例外。

就像 StackOverflow 的數(shù)據(jù)科學家 David Robinson 在他的博客中說的那樣,“當我看到一個假設 […] 我就迫不及待地想要用數(shù)據(jù)驗證它”。你也應該像他那樣對文本保持好奇心。

David Robinson 看到的假設是:

R和Python中的文本挖掘:8個入門小貼士

即使你并不打算真的去驗證它,你也應該對自己看到的詞云圖感到好奇,并且有想要自己動手復現(xiàn)一遍的想法。

如果你還未能感受到文本挖掘的魅力,那就來看看這些最近在媒體上廣受關注的文本挖掘應用案例吧,比如 South Park dialogue, film dialogue 等等,你會從中得到啟發(fā)。

掌握你所需要的知識和技能

R和Python中的文本挖掘:8個入門小貼士

當你擁有了好奇心,是時候去學習關于文本挖掘的知識和技能了。你可以通過完成一些教學課程輕松地做到這一步。

在這些教程中你需要格外關注的是數(shù)據(jù)科學工作流中的基本步驟,比如數(shù)據(jù)預備和預處理,數(shù)據(jù)探索,數(shù)據(jù)分析等等。

推薦閱讀:

  • Ted Kwartler: Text Mining in R: Are Pokémon GO Mentions Really Driving Up Stock Prices?
  • Ted Kwartler: Text Mining: Bag of Words
  • Neal Caren: An introduction to text analysis with Python
  • Kaggle: Part 1: For Beginners - Bag of Words
  • DataCamp: Learn Data Science - Resources for Python & R

詞語,詞語,詞語 – 尋找你的數(shù)據(jù)

R和Python中的文本挖掘:8個入門小貼士

一旦你掌握了分析和展現(xiàn)數(shù)據(jù)所需的基本概念和方法,就可以開始尋找你的數(shù)據(jù)了!

有非常多途徑可以找到你心儀的數(shù)據(jù),除了 google trends 和雅虎,你還可以從以下途徑獲取數(shù)據(jù):

  • 推特!R 和 Python 都提供了連接推特 API 的包或庫。
  • The Internet Archive, 一個非營利性的資料庫,包含上百萬的免費圖書、電影、軟件、音樂、網(wǎng)頁等等。
  • Project Gutenberg, 提供超過 55000 本免費電子書。大多數(shù)是成熟文獻,如果你想要對如像莎士比亞、簡·奧斯汀、愛倫坡這樣的作家的用詞進行分析,它會是很好的資源。
  • 在學術方面,你可以使用 JSTOR’s data for research。這是一個免費的自助工具,允許計算機科學、數(shù)字人文主義者和其他研究者使用 JSTOR 上的內(nèi)容。
  • 如果你打算像開頭的例子中一樣對劇集或者電影進行文本挖掘,你可能需要考慮下載字幕。只要谷歌一下就能得到你想要的文本挖掘語料。
  • 你也可以從語料庫開始。兩個著名的語料庫是:
  • The Reuters Text Corpus, 一些人對這個語料庫是不是最多樣化的語料庫有爭議,但是它仍然對你開始學習文本挖掘很有幫助;
  • Brown Corpus, 包括500種來源的文本,并已經(jīng)根據(jù)類型分類。

如你所見,文本來源有無限可能。任何包含文本的東西都可以成為你的文本挖掘案例學習的主題。

尋找合適的工具

[[189898]]

 

現(xiàn)在你已經(jīng)找到了你的數(shù)據(jù)的來源,你可能需要使用合適的工具來對他們進行處理。你已經(jīng)學習的教學課程應該已經(jīng)為你提供了許多入門工具。

但是,如果你僅僅學習了教學課程,你可能錯過了一些東西,比如下文會介紹的用 R 進行文本挖掘時會用到的包:

  • 在R中進行文本挖掘時最常用的包毫無疑問是 tm 包。這個包常被加入到其他包中,比如 twitterR 包,通過這個包你可以從推特的網(wǎng)頁上提取推文和關注者等。
  • 在 R 中進行網(wǎng)頁爬蟲的時候你需要 rvest 包,這里有一個簡短的 rvest 教程。

對于Python,你可以使用以下庫:

  • 自然語言工具箱,包含在 nltk 包中,這個包是極其實用的,因為他提供了超過 50 種語料庫和詞匯資源的入口。你可以查看 nltk 數(shù)據(jù)列表。
  • 如果你想要挖掘推特數(shù)據(jù),你有許多包可以選擇。其中最廣泛被使用的是 tweey 包
  • 對于網(wǎng)頁爬蟲,scrapy 包是最容易上手的,也可以考慮使用 urllib2,這是一個用來打開網(wǎng)頁鏈接的包。有時候更推薦使用 requests, 因為某些場合下它可能更方便使用。也有些人說它更加人性化,因為諸如設置 user-agent 和請求頁面都只需要一行代碼。偶爾你會看到有人提到并不太流行的 urllib包,大多數(shù)開發(fā)者提到它只是因為他們在里面找到一兩個他們覺得特別實用的函數(shù)。

充分的準備是成功的一半——數(shù)據(jù)預處理 

[[189899]]

數(shù)據(jù)科學家工作中 80% 的時間用在數(shù)據(jù)清洗上,文本挖掘也不例外。

如果你不確定要怎么預處理,以下是一些標準流程中的步驟:

  • 從文本中提取出你想要處理的格式和結構,
  • 去掉如 “that” 和 “and” 這樣的停用詞,
  • 詞干化(提取詞根)。這一步需要字典、語言學規(guī)則或算法(如 Porter 算法)的幫助。

這些步驟看起來很難,實際上你不用每一步都自己實現(xiàn)。大多數(shù)情況下,上文中提到的庫和包都能幫你實現(xiàn)這些步驟。比如 R 中的 tm 包可以讓你通過其內(nèi)置函數(shù)完成詞干化、去除停止詞、消除空白以及小寫轉換。類似的,Python 中的 nltk 庫也可以通過其內(nèi)置函數(shù)完成這些預處理過程。

然而,你可能仍然需要進一步使用正則表達式來描述你需要的文本模式,以便進一步預處理。這也可以加速你的數(shù)據(jù)清理過程。

對于 Python, 你可以使用 re 庫,而在 R 中,有許多內(nèi)置函數(shù),如 grep(), grepl(), regexpr(), gregexpr(), sub(), gsub() 和 strsplit()。

如果你想要更加深入地了解這些函數(shù),或者 R 中的正則表達式,你可以查看這個正則表達式介紹網(wǎng)頁。

數(shù)據(jù)科學家的仙境冒險——數(shù)據(jù)探索

R和Python中的文本挖掘:8個入門小貼士

到目前為止,你已經(jīng)摩拳擦掌準備開始分析了。但是,在分析之前最好還是先看看數(shù)據(jù)長什么樣子。

利用上文提到的那些包和庫,你可以快速地進行一些數(shù)據(jù)探索工作:

  • 創(chuàng)建一個文檔詞項矩陣:該矩陣中的元素表示語料庫中一篇文檔內(nèi),一個詞項(一個單詞或者一個 n 元詞組)出現(xiàn)的頻繁程度。
  • 當你創(chuàng)建了文檔詞項矩陣,你可以繪制直方圖來可視化語料庫中的詞匯頻率。
  • 你也可以計算語料庫中兩個或更多詞項之間的相關性。
  • 你可以使用詞云圖來可視化你的語料庫。在 R 中你可以使用 wordcloud 包來繪制,Python 中也有一個同名的庫。

經(jīng)過數(shù)據(jù)探索過程,你會對你接下來分析中,要分析的對象有一定的了解。如果你看到文檔詞匯矩陣或者直方圖中有很多詞語是稀疏的,你可以考慮將他們?nèi)サ簟?/p>

提升你的文本挖掘技能

[[189900]]

當你使用上述工具完成了預處理和基本的文本分析等步驟,你可以考慮通過你的數(shù)據(jù)集,進一步擴展你的文本挖掘技能。因為到現(xiàn)在,你看到的技巧提示都只是文本挖掘的冰山一角。

首先,你應該考慮探索文本挖掘和自然語言處理(NLP)的區(qū)別。更多關于 NLP 的 R 包可以在這個 NLP 的 R 包網(wǎng)頁找到。NLP 中,你會學習到命名實體識別、詞性標注、篇章分析、情感分析等內(nèi)容。對于 Python, 你可以使用 nltk 庫。這個使用 nltk 庫進行情感分析完全指南會對你有所幫助。

除了這些包,還有諸如深度學習、統(tǒng)計主題發(fā)現(xiàn)模型(如隱式狄利克雷分配,LDA)等工具等著你去學習。這些算法對應的包有:

  • Python 庫:gensim,這個庫可以實現(xiàn) word2vec, GloVe, LDA 等算法。此外,如果你需要研究深度學習,theano 是一個很值得考慮的庫。
  • R 包:text2vec 包可以用于實現(xiàn)文本向量化和詞嵌入。如果你對情感分析感興趣,使用 syuzhet 和 tm 包可以完成這個任務。最后,topicmodes 包可以用于實現(xiàn)統(tǒng)計主題發(fā)現(xiàn)模型。
  • 當然,并不僅僅只有這些包。

不止是詞語——結果可視化

R和Python中的文本挖掘:8個入門小貼士

可視化是一種非常吸引人的表達方式,所以將結果可視化可能是你能做的最美妙的事情!注意,你要可視化的是你要講的故事,而不是將你分析中發(fā)現(xiàn)的關聯(lián)性或者話題可視化。

Python 和 R 中都有許多可視化包:

對于 Python, 你可以考慮使用 NetworkX 庫來可視化復雜網(wǎng)絡,matplotlib 包可以用來解決其他可視化問題。此外,plotly 包讓你可以發(fā)布可交互在線圖表。試著將 Python 和 D3 聯(lián)系起來會得到更好的效果。D3 是一個用于動態(tài)數(shù)據(jù)操縱和可視化的 JavaScript 庫,可以讓你的讀者和聽眾參與到數(shù)據(jù)可視化的過程中來。

對于 R, 除了 ggplot2 等大家耳熟能詳?shù)陌?,你也可以使?igraph 包來分析關注、被關注以及轉發(fā)微博等關系。此外,plotly 和 networkD3 包可以把 R 和 JavaScript 鏈接起來,LDAvis 包則可以將主題模型進行可交互的可視化。

 

責任編輯:未麗燕 來源: 數(shù)據(jù)工匠
相關推薦

2017-05-02 09:16:20

RPython文本挖掘

2017-03-02 13:43:02

RPython文本挖掘

2022-05-07 10:51:42

DevOps左移應用程序

2020-11-18 17:51:35

代碼編程語言

2021-03-26 10:05:25

\n\rLinux

2020-07-28 07:55:33

Python開發(fā)工具

2024-09-23 09:20:00

Python文本分析

2016-10-17 16:19:43

數(shù)據(jù)挖掘問題

2016-08-18 01:26:22

數(shù)據(jù)挖掘

2020-07-22 16:27:11

開源工具數(shù)據(jù)挖掘數(shù)據(jù)

2017-08-24 09:35:06

深度學習向量化Hash Trick

2013-07-05 09:26:05

私有云數(shù)據(jù)中心私有云遷移

2014-02-09 09:56:55

802.11ac千兆wifi

2009-06-18 10:11:59

指紋Web安全

2023-03-06 10:44:50

AndroidProguard

2020-04-20 09:00:00

智能家居物聯(lián)網(wǎng)

2015-10-08 15:24:44

程序員面試貼士

2024-10-30 16:49:00

Python字符串

2021-07-13 08:20:05

iPad手繪插畫

2015-08-18 09:42:25

點贊
收藏

51CTO技術棧公眾號