【NLP】Python NLTK獲取文本語料和辭彙資源

  • 2019 年 10 月 28 日
  • 筆記

NLTK是由賓夕法尼亞大學電腦和資訊科學使用python語言實現的一種自然語言工具包,其收集的大量公開數據集、模型上提供了全面、易用的介面,涵蓋了分詞、詞性標註(Part-Of-Speech tag, POS-tag)、命名實體識別(Named Entity Recognition, NER)、句法分析(Syntactic Parse)等各項 NLP 領域的功能。本文主要介紹NLTK(Natural language Toolkit)的幾種語料庫,以及內置模組下函數的基本操作,諸如雙連詞、停用詞、詞頻統計、構造自己的語料庫等等,這些都是非常實用的。

1 古騰堡語料庫

http://www.gutenberg.org/

2 網路和聊天文本

3 布朗語料庫

4 路透社語料庫

5 就職演說語料庫

運行結果:

標註文本語料庫 :許多語料庫都包括語言學標註、詞性標註、命名實體、句法結構、語義角色等

其他語言語料庫 :某些情況下使用語料庫之前學習如何在python中處理字元編碼

>>> nltk.corpus.cess_esp.words() ['El', 'grupo', 'estatal', 'Electricité_de_France', …]

文本語料庫常見的幾種結構:

  • 孤立的沒有結構的文本集;
  • 按文體分類成結構(布朗語料庫)
  • 分類會重疊的(路透社語料庫)
  • 語料庫可以隨時間變化的(就職演說語料庫)

查找NLTK語料庫函數help(nltk.corpus.reader)

6 載入自己的語料庫

構建完成自己語料庫之後,利用python NLTK內置函數都可以完成對應操作,換言之,其他語料庫的方法,在自己語料庫中通用,唯一的問題是,部分方法NLTK是針對英文語料的,中文語料不通用(典型的就是分詞),解決方法很多,諸如你通過插件等在NLTK工具包內完成對中文的支援。

7 條件概率分布

條件頻率分布是頻率分布的集合,每一個頻率分布有一個不同的條件,這個條件通常是文本的類別。 條件和事件: 頻率分布計算觀察到的事件,如文本中出現的辭彙。條件頻率分布需要給每個事件關聯一個條件,所以不是處理一個詞序列,而是處理一系列配對序列。 詞序列:text=['The','Fulton','County'] 配對序列:pairs=[('news','The'),('news','Fulton')] 每隊形式:(條件,事件),如果我們按照文體處理整個布朗語料庫,將有15個條件(一個文體一個條件)和1161192個事件(一個詞一個事件) 按文體計算辭彙:

運行結果:

8 更多關於python:程式碼重用