Python自然語言處理 2 獲得文字語料和詞彙資源
#古騰堡語料庫----文學作品
Project Gutenberg
import nltk
nltk.corpus.gutenberg.fileids()
emma = nltk.corpus.gutenberg.words('austen-emma.txt') #<簡愛>
len(emma)
192427文字的3個統計量:平均詞長,平均句子長度和每個詞出現的平均次數
sents()函式把文字劃分成句子,其中每一個句子是一個詞連結串列
macheth_sentences = nltk.corpus.gutenberg.sents("shakespeare-macbeth.txt")
macheth_sentences
[[u'[', u'The', u'Tragedie', u'of', u'Macbeth', u'by', u'William', u'Shakespeare', u'1603', u']'], [u'Actus', u'Primus', u'.'], ...]
#網路和聊天文字---論壇,電影劇本
for fileid in webtext.fileids():
print fileid, webtext.raw(fileid)[:65], '...'
from nltk.corpus import nps_chat
chatroom = nps_chat.posts('10-19-20s_706posts.xml')
chatroom[123]
#布朗語料庫----英語電子語料庫,1961年建立,有新聞,社論等
from nltk.corpus import brown
brown.categories()
布朗語料庫是一個研究文體之間的系統性差異,讓我們來比較不同文體中的情態動詞的用法
news_text = brown.words(categories='news')
fdist = nltk.FreqDist([w.lower() for w in news_text])
modals = ['can', 'could', 'may', 'might', 'must', 'will']
for m in modals:
print m + ':', fdist[m],
can: 94 could: 87 may: 93 might: 38 must: 53 will: 389條件頻率分佈函式
cfd = nltk.ConditionalFreqDist( (genre, word) for genre in brown.categories() for word in brown.words(categories=genre))
genres = ['news', 'religion', 'hobbies', 'science_fiction', 'romance', 'humor']
modals = ['can', 'could', 'may', 'might', 'must', 'will']
cfd.tabulate(conditions=genres, samples=modals)
can could may might must will news 93 86 66 38 50 389 religion 82 59 78 12 54 71 hobbies 268 58 131 22 83 264 science_fiction 16 49 4 12 8 16 romance 74 193 11 51 45 43 humor 16 30 8 8 9 13發現新聞文體中最常見的情態動詞是will,而言情文體中最常見的情態動詞是could
#路透社語料庫----包含10788個新聞文件,90個主題
reuters.fileids()
reuters.categories()
與布朗語料庫不同,路透社語料庫的類別是互相重疊的,因為新聞報導往往涉及多個主題
reuters.categories('training/9865')
[u'barley', u'corn', u'grain', u'wheat']
reuters.words('training/9865')[:14] #標題
#就職演說語料庫
from nltk.corpus import inaugural
inaugural.fileids()
[u'1789-Washington.txt', u'1793-Washington.txt', u'1797-Adams.txt', u'1801-Jefferson.txt', u'1805-Jefferson.txt', u'1809-Madison.txt', u'1813-Madison.txt', u'1817-Monroe.txt', u'1821-Monroe.txt', u'1825-Adams.txt',
#標註文字語料庫
許多文字語料庫都包含語言學標註,有詞性標註,命名實體,句法結構,語義角色
http://www.nltk.org/data
http://www.nltk.org/howto
#其他語言的語料庫
#文字語料庫的結構
#載入自己的語料庫
二,條件頻率分佈
四 詞典資源
詞典或者詞典資源是一個詞和/或短語及其相關資訊的集合.
#詞彙列表語料庫
過濾不常見的或拼寫錯誤的詞彙
def unusual_words(text):
停用詞語料庫
from nltk.corpus import stopwords
stopwords.words('english')
名字語料庫
names = nltk.corpus.names
names.fileids() #男名和女名
[u'female.txt', u'male.txt']
#發音的詞典
entries = nltk.corpus.cmudict.entries()
len(entries)
entries[1]
(u'a.', [u'EY1'])
對每個詞都有語音的程式碼,CMU發音詞典中的符號是從Arpabet來的,參考http://en.wikipedia.org/wiki/Arpabet
#比較詞表
幾種語言的約200個常用詞的列表
#詞彙工具:Toolbox 和 Sheobox
http://www.sil.org/computing/toolbox下載
五 WordNet
面向語義的英語詞典,共有155287個單詞和117659個同義詞
#意義與同義詞
from nltk.corpus import wordnet as wn
wn.synsets('motorcar') #同義詞
[Synset('car.n.01')]wn.synset('car.n.01').lemma_names() #同義詞集
[u'car', u'auto', u'automobile', u'machine', u'motorcar']
wn.synset('car.n.01').definition() #意義
u'a motor vehicle with four wheels; usually propelled by an internal combustion engine'
#WordNet的層次結構
獨一無二的根同義詞集
上位詞和下位詞
反義詞
語義相似度
七, 深入閱讀
Ethnologue有著世界上完整的語言的清單http://www.ethnologue.com
相關文章
- 詞!自然語言處理之詞全解和Python實戰!自然語言處理Python
- Python 自然語言處理(基於jieba分詞和NLTK)Python自然語言處理Jieba分詞
- 自然語言處理:分詞方法自然語言處理分詞
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- 自然語言處理之jieba分詞自然語言處理Jieba分詞
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- 自然語言處理常用資源筆記分享自然語言處理筆記
- 有趣的自然語言處理資源集錦自然語言處理
- 精通Python自然語言處理 4 :詞性標註--單詞識別Python自然語言處理詞性標註
- Python自然語言處理實戰(3):中文分詞技術Python自然語言處理中文分詞
- 語義理解和研究資源是自然語言處理的兩大難題自然語言處理
- 05.序列模型 W2.自然語言處理與詞嵌入模型自然語言處理
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- NPL---自然語言處理單詞界定問題自然語言處理
- 入門自然語言處理必看:圖解詞向量自然語言處理圖解
- Pyhanlp自然語言處理中的新詞識別HanLP自然語言處理
- 精通Python自然語言處理 1 :字串操作Python自然語言處理字串
- 自然語言處理工具hanlp自定義詞彙新增圖解自然語言處理HanLP圖解
- 12 種自然語言處理的開源工具自然語言處理開源工具
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- 自然語言處理NLP(四)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- 自然語言處理背後的資料科學自然語言處理資料科學
- 自然語言處理中的分詞問題總結自然語言處理分詞
- NLP自然語言處理中的hanlp分詞例項自然語言處理HanLP分詞
- Hanlp自然語言處理中的詞典格式說明HanLP自然語言處理
- 《Python自然語言處理實戰》連結表Python自然語言處理
- 精通Python自然語言處理 3 :形態學Python自然語言處理
- hanlp自然語言處理包的基本使用--pythonHanLP自然語言處理Python
- Python自然語言處理工具Python自然語言處理
- [譯] 自然語言處理真是有趣!自然語言處理
- 目前常用的自然語言處理開源專案/開發包大彙總自然語言處理
- 「NLP」一文彙總自然語言處理主要研究方向自然語言處理
- 中國語文(自然語言處理)作業自然語言處理
- Python自然語言處理實戰(1):NLP基礎Python自然語言處理
- 如何用Python處理自然語言?(Spacy與Word Embedding)Python
- 專業貼:100+個自然語言處理資料集自然語言處理
- 自然語言處理與情緒智慧自然語言處理
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理