澳门mgm官网语料财富和WordNet汇总,Python自然语言

2019-11-14 18:07 来源:未知

[TOC]

1.文本语言材质库

语言材质库基本函数表

示例 描述
fileids() 语料库中的文件
fileids([categories]) 对应分类中的语料库文件
categories() 语料库的分类
categories([fileids]) 文件对应的语料库分类
raw(fileids=[f1,f2..],categories=[c1,c2...]) 对应文件和分类中原始内容。参数可以式空
words(fileids=[f1,f2..],categories=[c1,c2...]) 对应文件和分类的词汇。参数可以空
sents() sents(fileids=[f1,f2..],categories=[c1,c2...])
abspath(fileid) 文件在磁盘的位置
encoding(fileid) 文件的编码
open(fileid) 打开文件流
root() 本地语料库corpus的位置
readme() README文件的内容

1)内容

文件语言材质库分类

  1. 最简便易行的是孤立的文本集结
  2. 依照文本等标签分类整合结构,如:Brown语料库
  3. 分拣不严加,会重叠的语言材质库,如:华日报语言质感库
  4. 随即间/语言用法退换的语言材质库 ,如:就职阐述库

导入corpus包拿到各种文本语料库:from nltk.corpus import *

大规模语言质感库及其用法

注意nltk.Text(string) 再次回到相像text1的Text对象

包蕴了Gutenberg语言材质库,网络与闲聊文本,布朗语言材料库,Reuters语言材料库,就职解说语料库(inaugural),udhr(满含有逾越300种语言的世界人权宣言卡塔尔。好多文本语言材质库都包含了语言学标明,有词性标记,命名实体,句法结构,语义剧中人物等等。

古藤堡语言材质库

带有36000本电子书,可以在此间下载

from nltk.corpus import gutenberg
print(gutenberg.fileids())

emma= gutenberg.words('austen-emma.txt')
print(gutenberg.raw('austen-emma.txt'))
emma = nltk.Text(emma)#
print(emma[:10])

2卡塔尔国文本语言材质库的构造

网络&&聊天体

互联网text重若是非职业文学,论坛沟通,剧本,商议等。聊天文本是依据谈天室划分的(文件名包涵日期、闲聊室、帖子数量卡塔尔国,被划分为14个大文件。

#网络体:webtext
from nltk.corpus import webtext
for fileid in webtext.fileids():
    print(fileid,webtext.raw(fileid)[:50])

[out]
firefox.txt Cookie Manager: "Don't allow sites that set remove
grail.txt SCENE 1: [wind] [clop clop clop] 
KING ARTHUR: Who
overheard.txt White guy: So, do you have any plans for this even
pirates.txt PIRATES OF THE CARRIBEAN: DEAD MAN'S CHEST, by Ted
singles.txt 25 SEXY MALE, seeks attrac older single lady, for 
wine.txt Lovely delicate, fragrant Rhone wine. Polished lea

#聊天体:nps_chat
from nltk.corpus import nps_chat
chatroom = nps_chat.posts('10-19-20s_706posts.xml')
chatroom[123:125]

[out]
[['i',
  'do',
  "n't",
  'want',
  'hot',
  'pics',
  'of',
  'a',
  'female',
  ',',
  'I',
  'can',
  'look',
  'in',
  'a',
  'mirror',
  '.'],
 ['hi', 'U64']]

*Isolated: 孤立的,未有其余组织,仅仅是叁个文书集结,eg. gutenberg, webtext, udhr.

Brown语言质地库

百万词级语言材质库,没啥好说的。依照文本分类,如音讯、社论等。

from nltk.corpus import brown
print(brown.categories())
print(brown.fileids())

因为这些语言材质库是切磋文件间系统性差别的财富,所以能够来比较一下比不上文本中态度动词的用法。

import nltk
from nltk.corpus import brown
news = brown.words(categories='news')
fdist = nltk.FreqDist([w.lower() for w in news])
modals= ['can','could','may','might','must','will']
for m in modals:
    print(m,':',fdist[m])

*Categorized: 根据相应的文体,来源,作者,语言等比物连类,eg. brown.

大众晨报语言材质库

快讯文书档案,分为“操练”和“测量检验”两组。便于及其举办练习和测量试验。命名就是'test/number'和'training/number'

from nltk.corpus import reuters
print(reuters.fileids())
print(reuters.categories())

*Overlapping: 分类间会重叠,因为三个文件可能与八个大旨相关,eg. reuters.

就职演讲语言材质库

感到到那毕竟美国特色吗。因为命名接纳'year-name.txt'的格式,我们得以领到出来时间维度,何况做个折线图来总括特定词汇的产出频率(不一致年份中卡塔 尔(英语:State of Qatar)

from nltk.corpus import inaugural
print(list(f[:4]for f in inaugural.fileids()))
#下面体现American和citizen随时间推移使用情况
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()

体会一下效果图(附截图卡塔尔国
澳门mgm官网 1


*Temporal: 该类语言材质库能够象征任何时候间变化,语言用法的退换,eg. inaugural.

载入自定义语言材质库

借使想操作自个儿的语言质地库,并且应用从前的章程,那么,要求PlaintextCorpusReader 函数来载入他们,这么些函数参数有七个,第三个是根目录,第三个是子文件(能够接受正则表明式进行相配卡塔 尔(阿拉伯语:قطر‎

from nltk.corpus import PlaintextCorpusReader
root = r'C:UsersAsura-DongDesktoptemdict'
wordlist = PlaintextCorpusReader(root,'.*')#匹配所有文件
print(wordlist.fileids())
print(wordlist.words('tem1.txt'))

输出结果:
['README', 'tem1.txt']
['hello', 'world']

3卡塔 尔(阿拉伯语:قطر‎NLTK中定义的着力语言材料库函数

词典能源

词典:包罗词性和注释音信。

那个函数由nltk.corpus.reader提供。

停用词语言材质库

stopwords正是,缺憾的是尚未汉语停用词

from nltk.corpus import stopwords
#定义一个计算func计算不在停用词列表中的比例的函数
def content(text):
    stopwords_eng = stopwords.words('english')
    content = [w for w in text if w.lower() and w not in stopwords_eng]
    return len(content)/len(text)
print(content(nltk.corpus.reuters.words()))

(1卡塔 尔(英语:State of Qatar)扶植文书档案对reader的注解:

名字词典

就两有的构成,男性和女人的德文名字。这里大家钻探一下谈起底三个名字最后一个假名和性其他涉嫌

names = nltk.corpus.names
print(names.fileids())
male = names.words('male.txt')
female = names.words('female.txt')
cfd = nltk.ConditionalFreqDist((fileid,name[-1]) for fileid in names.fileids() for name in names.words(fileid))
cfd.plot()

(附截图)
澳门mgm官网 2

NLTK corpus readers.

发音词典

这么些更美妙,竟然是为了发音合成酌量的。未来通读那本书后,也探究怎么迁移到汉语上。

引入 nltk.corpus.cmudict 后,大家得以得到它音素的长度,由此能够找到押韵的辞藻

s = ['N','IHO','K','S']
entries = nltk.corpus.cmudict.entries()
print('Example:',entries[0])
word_list = [word for word,pron in entries if pron[-4:]==s]
print(word_list)

在要素表中,我们会意识数字:1,2,0。分别表示着:主重音、次重音、无重音。
这里大家得以定义一个function,找到具备特定重音情势的词汇

def func(pron):
    return [char for phone in pron for char in phone if char.isdigit()]
word_list = [w for w,pron in entries if func(pron)==['0','1','0','2','0']]
print(word_list)

The modules in this package provide functions that can be used to read corpus fileids in a variety of formats. (用分化格式读取语言材料库的文本卡塔 尔(阿拉伯语:قطر‎

WordNet面向语义的英语字典

提及底必需说一下以此字典。WordNet是由Princeton 高校的情绪学家,语言学家和Computer程序员一齐设计的黄金时代种基于认识语言学的爱尔兰语词典。它不是光把单词以字母顺序排列,何况依据单词的意义组成一个“单词的互联网”。

These functions can be used to read both the corpus fileids that are distributed in the NLTK corpus package, and corpus fileids that are part of external corpora. (文本可来源于外界或内部语言材质库卡塔 尔(阿拉伯语:قطر‎

引进和同义词

motorcar和automobile是同义词,能够依赖wordnet来商量。

from nltk.corpus import wordnet as wn
wn.synsets('motorcar')

结果是:[Synset('car.n.01')]。说明motorcar 只有贰个 只怕的含义。car.n.01被叫做“同义 词集 ”。大家能够透过wn.synset('car.n.01').lemma_names 来查看当前雷同词集的任何词 (car这一个单词就有那一个个相近词集了) 。wn.synset('car.n.01').exampleswn.synset('car.n.01').definition 能够分别查看定义和例子(然而Python3里面不可以。卡塔 尔(英语:State of Qatar)

而近乎car.n.01.car这么的介乎下一流的称呼词条
对此词条级其余obj,可以看下边包车型客车操作。

print(wn.synset('car.n.01').lemmas)
wn.lemma('car.n.01.automobile').name
wn.lemma('car.n.01.automobile').synset

Corpus Reader Functions

上位词、下位词、反义词

上位词(hypernym卡塔 尔(英语:State of Qatar),指概念上国地质大学延更广的宗旨词。 举例:”花”是”鲜花”的上位词,”植物”是”花”的上位词,”音乐”是”VCD”的上位词。反过来便是下位词了。

上位词和下位词通过hyponyms()root_hypernyms() 来访问。

motorcar = wn.synset('car.n.01').hyponyms()#下位词
car = wn.synset('car.n.01').root_hypernyms()

反义词就经过antonyms() 来访问

Each corpus module defines one or more "corpus reader functions", which can be used to read documents from that corpus. (每一种语言质感库模块定义了叁个或四个如此的函数卡塔 尔(阿拉伯语:قطر‎

其它词集关系

事先是从上->到下,可能反过来。更首要的是从全体->局地,可能反过来。如大树和树冠、树干的关联,这一个是part_meronyms() 。而大树集结就成了树林,member_holonyms() 。而树的原形是心材和边材组成,即substance_meronyms()

These functions take an argument, 'item', which is used to indicate which document should be read from the corpus: - If 'item' is one of the unique identifiers listed in the corpus module's 'items' variable, then the corresponding document will be loaded from the NLTK corpus package. If 'item' is a fileid, then that file will be read. Additionally, corpus reader functions can be given lists of item names; in which case, they will return a concatenation of the corresponding documents. (可提供贰个item;也可提供二个item列表,那将会回去全体对应文书档案的一个串联。卡塔 尔(阿拉伯语:قطر‎

语义相仿度

当七个单词有同样的上位词(在词树中寻觅卡塔 尔(英语:State of Qatar),而若上位词恰恰归于非常的低层,那么它们会有料定细心关系。

right = wn.synset('right_whale.n.01')
orca = wn.synset('orca.n.01')
print(right.lowest_common_hypernyms(orca))

理当如此,相像于树的布局中三回九转有神的,能够通过min_depth() 来查看二个synset的细小深度。基于那些,大家得以在0-1的限量内回到相仿度。对于地方的代码,查占星像度:right.path_similarity(orca)

这一个数字大小意义一点都不大。可是当鲸鱼和鲸鱼、鲸鱼和随笔来相比较时,数字是压缩的。相比较着看大小,还是有意义的。

Corpus reader functions are named based on the type of information they return.

Some common examples, and their return types, are:

words(): list of str

sents(): list of (list of str)

paras(): list of (list of (list of str))

tagged_words(): list of (str,str) tuple

tagged_sents(): list of (list of (str,str))

tagged_paras(): list of (list of (list of (str,str)))

chunked_sents(): list of (Tree w/ (str,str) leaves)

parsed_sents(): list of (Tree with str leaves)

parsed_paras(): list of (list of (Tree with str leaves))

xml(): A single xml ElementTree

raw(): unprocessed corpus contents

For example, to read a list of the words in the Brown Corpus, use 'nltk.corpus.brown.words()':

>>> from nltk.corpus import brown

>>> print(", ".join(brown.words()))

The, Fulton, County, Grand, Jury, said, ...

(2卡塔尔国某个函数的注解:

fileids(): 显示语言材料库中的全体文件

fileids([categories]): 语言材料库中钦点分类下的文书

categories(): 展现语言材质库中的全数分类

categories([fileids]): 彰显文件在语言材质库中的分类(不是同台分类,连串按字母表顺序展现卡塔尔

raw(): 语言材质库的固有内容

raw(fileids=[f1, f2, f3]): 钦定文件的本来内容

raw(categories=[c1, c2]): 钦点分类下的原有内容

words(): 整个语言材料库中的词汇

words(fileids=[f1, f2, f3]): 钦命文件中的词汇

words(categories=[c1, c2]): 钦定分类下的词汇

sents(): 整个语言材质库中的句子

sents(fileids=[f1, f2, f3]): 钦点文件中的句子

sents(categories=[c1, c2]): 钦赐分类下的句子

abspath(fileid): 钦赐文件在磁盘上的地点

encoding(fileid): 文件的编码

open(fileid): 展开钦赐文件的文本流

(3卡塔 尔(阿拉伯语:قطر‎载入自个儿的语言材料库

from nltk.corpus import PlaintextCorpusReader

corpus_root = '/home/annefu/'

wordlists = PlaintextCorpusReader(corpus_root, 'datafile.txt')


  1. 规范化频率遍布

标准频率分布是作用布满的聚合,每一个频率布满关系七个准则。--> (条件,事件卡塔尔的衬托对

from nltk.probability import *

cfd = ConditionalFreqDist([(con1, event1), (con2, event2), ......])

cfd.conditions()     #查看条件

list(cfd[condition])     #翻看condition下的持有事件

cfd[condition][event]     #查看condition下event的频率

cfd.tabulate()     #为基准频率布满制表

cfd.tabulate(conditions, samples)    """在钦定条件和范本下制表(内定参数condtitions和samples卡塔 尔(阿拉伯语:قطر‎"""


  1. 词典能源

1卡塔尔国词项(Lexical entry)饱含词目(Headword,也叫词条(Lemma)卡塔尔国及别的附加消息,比方词性(Part of speech, or lexical category)和词意定义(Sense definition, or gloss)。

多个意思差异但拼写相像的词被堪称同音异义词(Homonyms)。

2卡塔尔词汇语料库

(1)nltk.corpus.words.words()     #收获现存的词汇列表

(2)from nltk.corpus import stopwords

          stopwords.words('english')    """获得塞尔维亚共和国语中的停用词(人类语言中蕴藏的成效词,这一个成效词极度普及,与此外词比较,功用词未有啥实际意义,比方'the'、'is'、'at'、'which'、'on'等卡塔尔列表"""

3卡塔尔国比较词表

Swadesh wordlists, 饱含两种语言的约200个常用词列表。

from nltk.corpus import swadesh

swadesh.fileids()     #翻看所支撑的言语

swadesh.words('en')     #查看马耳他语中的常用词列表

fr2en = swadesh.entries(['fr', 'en'])     #立陶宛(Lithuania卡塔尔语与立陶宛(Lithuania卡塔尔语中的同源词(eg. ('je', 'I'), ('il', 'he'))

translate = dict(fr2en)     #转移为简易的塞尔维亚(Serbia卡塔尔语-丹麦语词典

4卡塔 尔(阿拉伯语:قطر‎词汇工具:Toolbox

5卡塔尔国名字语言质地库

nltk.corpus.names

包罗了按性别分类的名字。男人和女子的名字存款和储蓄在单独的公文中。

6卡塔尔国发音词典

NLTK包涵美利哥爱尔兰语的CMU发音词典。


4.WordNet

WordNet是面向语义的罗马尼亚(România卡塔 尔(阿拉伯语:قطر‎语词典,由同样词集组成,况兼变成一个互连网。

词条:同义词集和词的杂交。

上位词,下位词

from nltk.corpus import wordnet as wn

wn.synsets(word)    #获取钦赐词的享有同豆蔻梢头词集

eg. wn.synsets('motorcar') => [Synset('car.n.01')],表明motorcar独有叁个可能的含义,被定义为car.n.01,表示car的首先个名词意义。

wn.synset('car.n.01').lemma_names()     #钦赐同义词集内的全部词

wn.synset('car.n.01').definition()     #内定同义词集的貌似的定义

wn.synset('car.n.01').examples()     #赢得对应的例句

wn.synset('car.n.01').lemmas()     #内定同义词集的具有词条

wn.lemma('car.n.01.automobile')     #寻觅特定的词条

wn.lemma('car.n.01.automobile').synset()     #赢得一个词条所对应的如出意气风发辙词集

wn.lemma('car.n.01.automobile').name()     #得到三个词条的名字

motorcar = wn.synset('car.n.01')

motorcar.hyponyms()     #得到钦赐同义词集的下位同义词集

motorcar.hypernyms()     #获取内定同义词集的要职同义词集

motorcar.hypernym_paths()     #获得钦定同义词集的要职词路线(嵌套列表的款型卡塔尔国

motorcar.root_hypernyms()     #获取根上位同义词集

表示包蕴关系:

wn.synset('tree.n.01').part_meronyms()    

wn.synset('tree.n.01').substance_meronyms()

wn.synset('tree.n.01').member_holonyms()

wn.synset('walk.v.01').entailments()     #意味着饱含关系

wn.lemma('supply.n.02.supply').antonyms()     #获取钦定词条的反义词条

语义相通度的心路:

set1 = wn.synset(synset1)

set2 = wn.synset(synset2)

set1.lowest_common_hypernyms(set2)     #多个相符词集协同的最低上位同义词集

set1.min_depth()     #点名同义词集的深度

set1.path_similarity(set2)     #范围在0~1,两个之间未有渠道就赶回-1

TAG标签:
版权声明:本文由澳门mgm官网发布于新闻,转载请注明出处:澳门mgm官网语料财富和WordNet汇总,Python自然语言