python自然語言處理學(xué)習(xí)筆記(二)—— 語料庫

一家厌、獲取文本語料庫

1. 古騰堡語料庫

NLTK包含古騰堡項(xiàng)目(Project Gutenberg)電子文本檔案的經(jīng)過挑選的一小部分文本朵栖。該項(xiàng)目大約有 25,000(現(xiàn)在是 36,000 了)本免費(fèi)電子圖書

查看語料
簡·奧斯丁的《愛瑪》

在之前的章節(jié)中,使用了text1.concordance()直接對text1這樣的文本進(jìn)行索引,但對現(xiàn)在這種情況的數(shù)據(jù),需要多加一步才能使用諸如.concordance()的方法:

2. 網(wǎng)絡(luò)和聊天文本

NLTK的網(wǎng)絡(luò)文本集合的內(nèi)容包括 Firefox交流論壇娩嚼、在紐約無意聽到的對話、《加勒比海盜》的電影劇本和個(gè)人廣告和葡萄酒的評論等滴肿。

網(wǎng)絡(luò)文本

即時(shí)消息聊天會話語料庫岳悟,最初由美國海軍研究生院為研究自動檢測互聯(lián)網(wǎng)幼童虐待癖而收集的。語料庫包含超過 10,000 張?zhí)悠貌睿浴癠serNNN”形式的通用名替換掉 用戶名贵少,手工編輯消除任何其他身份信息,制作而成堆缘。語料庫被分成 15 個(gè)文件滔灶,每個(gè)文件包含幾百個(gè)按特定日期和特定年齡的聊天室(青少年、20 歲吼肥、30 歲录平、40 歲、再加上一個(gè)通 用的成年人聊天室)收集的帖子缀皱。

即時(shí)消息聊天會話語料庫

3. 布朗語料庫

布朗語料庫是第一個(gè)百萬詞級的英語電子語料庫的斗这,由布朗大學(xué)于 1961 年創(chuàng)建。這個(gè) 語料庫包含 500 個(gè)不同來源的文本啤斗,按照文體分類表箭,如:新聞、社論等钮莲。

布朗語料庫每一部分的示例文檔

使用from nltk.corpus import brown 加載語料

4. 路透社語料庫

路透社語料庫包含 10,788 個(gè)新聞文檔燃逻,共計(jì) 130 萬字。這些文檔分成 90 個(gè)主題臂痕,按照 “訓(xùn)練”和“測試”分為兩組。因此猿涨,fileid 為“test/14826”等的文檔屬于測試組握童。

使用from nltk.corpus import reuters 加載語料

5. 就職演說語料庫

使用from nltk.corpus import inaugural 加載語料

6. 標(biāo)注文本語料庫

許多文本語料庫都包含語言學(xué)標(biāo)注,有詞性標(biāo)注叛赚、命名實(shí)體澡绩、句法結(jié)構(gòu)、語義角色等俺附。 NLTK 中提供了很方便的方式來訪問這些語料庫中的幾個(gè)肥卡,還有一個(gè)包含語料庫和語料樣本 的數(shù)據(jù)包,用于教學(xué)和科研的話可以免費(fèi)下載事镣。

7. 文本語料庫的結(jié)構(gòu)

  • 最簡單的一種語料庫是一些孤立的沒有什么特別的組織的文本集合
  • 一些語料庫按如文體(布朗語料庫)等分類組織結(jié)構(gòu)
  • 一些分類會重疊步鉴,如主題 類別(路透社語料庫)
  • 一些語料庫可以表示隨時(shí)間變化語言用法的改變(就職演說語 料庫)
NLTK中定義的基本語料庫函數(shù)

8. 載入你自己的語料庫

使用PlaintextCorpusReader加載自己的語料庫:

from nltk.corpus import PlaintextCorpusReader
corpus_root = '/usr/share/dict' # 假設(shè)語料庫所在的目錄是這個(gè)
# PlaintextCorpusReader 參數(shù)分別是語料庫所在地址和正則表達(dá)式
wordlists = PlaintextCorpusReader(corpus_root, '.*') 

使用BracketParseCorpusReader加載語料

from nltk.corpus import BracketParseCorpusReader
# 假設(shè)語料存放在這個(gè)地址
corpus_root = r"C:\corpora\penntreebank\parsed\mrg\wsj"
# file_pattern用來與它的子文件夾中包含的文件匹配
file_pattern = r".*/wsj_.*\.mrg"
ptb = BracketParseCorpusReader(corpus_root, file_pattern)


二、條件頻率分布

1. 條件和事件

頻率分布計(jì)算觀察到的事件,如文本中出現(xiàn)的詞匯氛琢。為此需要將文本處理成配對序列:(條件喊递,事件)

這里按文體處理整個(gè)布朗語料庫,將有 15 個(gè)條件(每個(gè)文體一個(gè)條件)和 1,161,192 個(gè)事件(每一個(gè)詞一個(gè)事件)

2. 按文體計(jì)數(shù)詞匯

from nltk.corpus import brown

# brown.words(categories=genre) 用來遍歷出這種問題的所有文本的每個(gè)字
# brown.categories() 得到所有的問題
# 使用下面的代碼得到在這種文體下阳似,這個(gè)字出現(xiàn)的次數(shù)
cfd = nltk.ConditionalFreqDist((genre, word) for genre in brown.categories() for word in brown.words(categories=genre))

書中只使用了兩種文體來做為例子:

使用此配對鏈表創(chuàng)建一個(gè) ConditionalFreqDist骚勘,并將它保存在一個(gè)變量 cfd 中:

2. 繪制分布圖和分布表

條件是詞 america 或 citizen ,被繪圖的計(jì)數(shù)是在特定演講中出現(xiàn)的詞的次數(shù)撮奏。它利用了每個(gè)演講的文件名——例如 1865-Lincoln.txt——的前 4 個(gè)字符包含年代的事實(shí)俏讹。這段代碼為文件 1865-Lincoln.txt 中每 個(gè)小寫形式以america開頭的詞——如:Americans——產(chǎn)生一個(gè)配對('america', '1865')

# 繪制分布圖和分布表

from nltk.corpus import inaugural
%matplotlib inline

cfd = nltk.ConditionalFreqDist((target, fileid[:4]) 
                               for fileid in inaugural.fileids()
                               for w in inaugural.words(fileid) 
                               for target in ['america', 'citizen'] 
                               if w.lower().startswith(target))

cfd.plot()
NLTK 中的條件頻率分布


三、更多關(guān)于 Python:代碼重用

主要包含函數(shù)和模塊的內(nèi)容


四畜吊、詞典資源

詞典或者詞典資源是一個(gè)詞和/或短語以及一些相關(guān)信息的集合泽疆,例如 :詞性和詞意定 義等相關(guān)信息。詞典資源附屬于文本定拟,通常在文本的幫助下創(chuàng)建和豐富于微。

1. 詞匯列表語料庫

詞匯語料庫是 Unix中的/usr/dict/words 文 件,被一些拼寫檢查程序使用青自。
除了這個(gè)語料之外株依,還有停止詞語料,這個(gè)語料是在NLP處理中經(jīng)常使用的延窜。因?yàn)橹T如‘的’等高頻但沒有意義的詞很多時(shí)候會妨礙算法的判斷恋腕,所以常在應(yīng)用算法前使用停止詞語料來處理一遍,去除這些高頻但無意義的詞逆瑞。

可使用from nltk.corpus import stopwords加載停止詞語料

2. 發(fā)音的詞典

一個(gè)稍微豐富的詞典資源是一個(gè)表格(或電子表格)荠藤,在每一行中含有一個(gè)詞加一些性 質(zhì)。NLTK 中包括美國英語的 CMU 發(fā)音詞典nltk.corpus.cmudict.entries()获高,它是為語音合成器使用而設(shè)計(jì)的哈肖。

3. 比較詞表

表格詞典的另一個(gè)例子是比較詞表。NLTK中包含了所謂的斯瓦迪士核心詞列表(Swa desh wordlists)念秧,幾種語言中約 200 個(gè)常用詞的列表淤井。語言標(biāo)識符使用 ISO639 雙字母碼。
可使用from nltk.corpus import swadesh加載


五摊趾、WordNet

WordNet 是面向語義的英語詞典币狠,類似與傳統(tǒng)辭典,但具有更豐富的結(jié)構(gòu)砾层。NLTK 中包 括英語 WordNet漩绵,共有 155,287 個(gè)詞和 117,659 個(gè)同義詞集合。我們將以尋找同義詞和它們 在 WordNet 中如何訪問開始肛炮。
這個(gè)在知識圖譜里也有接觸止吐,是目前最著名的詞典知識庫宝踪。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市祟印,隨后出現(xiàn)的幾起案子肴沫,更是在濱河造成了極大的恐慌,老刑警劉巖蕴忆,帶你破解...
    沈念sama閱讀 212,383評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件颤芬,死亡現(xiàn)場離奇詭異,居然都是意外死亡套鹅,警方通過查閱死者的電腦和手機(jī)站蝠,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,522評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來卓鹿,“玉大人菱魔,你說我怎么就攤上這事∫魉铮” “怎么了澜倦?”我有些...
    開封第一講書人閱讀 157,852評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長杰妓。 經(jīng)常有香客問我藻治,道長,這世上最難降的妖魔是什么巷挥? 我笑而不...
    開封第一講書人閱讀 56,621評論 1 284
  • 正文 為了忘掉前任桩卵,我火速辦了婚禮,結(jié)果婚禮上倍宾,老公的妹妹穿的比我還像新娘雏节。我一直安慰自己,他們只是感情好高职,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,741評論 6 386
  • 文/花漫 我一把揭開白布钩乍。 她就那樣靜靜地躺著,像睡著了一般怔锌。 火紅的嫁衣襯著肌膚如雪件蚕。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,929評論 1 290
  • 那天产禾,我揣著相機(jī)與錄音,去河邊找鬼牵啦。 笑死亚情,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的哈雏。 我是一名探鬼主播楞件,決...
    沈念sama閱讀 39,076評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼衫生,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了土浸?” 一聲冷哼從身側(cè)響起罪针,我...
    開封第一講書人閱讀 37,803評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎黄伊,沒想到半個(gè)月后泪酱,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,265評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡还最,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,582評論 2 327
  • 正文 我和宋清朗相戀三年墓阀,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片拓轻。...
    茶點(diǎn)故事閱讀 38,716評論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡斯撮,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出扶叉,到底是詐尸還是另有隱情勿锅,我是刑警寧澤,帶...
    沈念sama閱讀 34,395評論 4 333
  • 正文 年R本政府宣布枣氧,位于F島的核電站溢十,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏作瞄。R本人自食惡果不足惜茶宵,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,039評論 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望宗挥。 院中可真熱鬧乌庶,春花似錦、人聲如沸契耿。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽搪桂。三九已至透敌,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間踢械,已是汗流浹背酗电。 一陣腳步聲響...
    開封第一講書人閱讀 32,027評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留内列,地道東北人撵术。 一個(gè)月前我還...
    沈念sama閱讀 46,488評論 2 361
  • 正文 我出身青樓,卻偏偏與公主長得像话瞧,于是被迫代替她去往敵國和親嫩与。 傳聞我的和親對象是個(gè)殘疾皇子寝姿,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,612評論 2 350

推薦閱讀更多精彩內(nèi)容