[人工智能】NLP自然语言处理-第9节 词典资源

您所在的位置:网站首页 hd5770和hd7770性能 [人工智能】NLP自然语言处理-第9节 词典资源

[人工智能】NLP自然语言处理-第9节 词典资源

2023-01-21 14:29| 来源: 网络整理| 查看: 265

第9节 词典资源目录

1 词典资源简介

2 词汇列表语料库

3 发音的词典

4 比较词表

5 词汇工具简介

1 词典资源简介

词典或者词典资源是一个词和/或短语以及一些相关信息的集合,例如:词性和词意定义等相关信息。词典资源附属于文本,通常在文本的帮助下创建和丰富。

例如:如果我们定义了一个文本 my_text,然后 vocab = sorted(set(my_text))建立 my_text 的词汇表, 同时 word_freq = FreqDist(my_text)计数文本中每个词的频率。vocab 和 word_freq 都是简单的词汇资源。

词汇索引为我们提供了有关词语用法的信息,可能在编写词典时有用。图 2-5 中描述了词汇相关的标准术语。一个词项包括词目(也叫词条)以及其他附加信息,例如:词性和词意定义。两个不同的词拼写相同被称为同音异义词。

2 词汇列表语料库

NLTK中包括一些仅仅包含词汇列表的语料库。我们可以使用它来检查文本预料中不常见的或者拼写错误的词汇。

【例4-1】过滤文本:计算文本的词汇表,然后删除所有在现在的词汇列表中出现的元素,只留下罕见的或者拼写错误的词汇。

【例4-1】代码:

def unusual_words(text):

text_vocab=set(w.lower() for w in text if w.isalpha())

english_vocab=set(w.lower() for w in nltk.corpus.words.words())

unusual=text_vocab.difference(english_vocab) #求差集

return sorted(unusual)

【例4-1】运行结果:

停用词语料库:

所谓停用词就是指高频词汇,如the,a,and等等。有时候在进一步处理之前需要将他们过滤出去。

>>>from nltk.corpus import stopwords

>>>stopwords=stopwords.words('english')

停用词语料库:

可以定义一个函数来计算文本中不包含在停用词列表中的词所占的比例:

from nltk.corpus import stopwords

def content_fraction(text):

spwords=stopwords.words('english')

content=[w for w in text if w.lower() not in spwords]

return float(len(content))/len(text)

停用词语料库:

运行结果:

3 发音的词典

NLTK中包括了美国英语的CMU发音词典,他是为语音合成器而设计的。代码:课程源码/chapter/chapter2/chap2_4_31_cmu.py

entries=nltk.corpus.cmudict.entries()

print(len(entries))

for entry in entries[999:1000]:

print(entry)

【例4-2】寻找发音包含三个音素的条目,并且第一个发音为'P',第三个发音为'T',打印满足条件的词和该词的第二个音素。

【例4-2】代码如下:

entries=nltk.corpus.cmudict.entries()

for word,pron in entries:

if len(pron)==3:

ph1,ph2,ph3=pron

if ph1=='P' and ph3=='T':

print(word,ph2)

【例4-2】运行结果

音素包含数字表示主重音(1)、次重音(2)和无重音(0)。定义一个函数来提取重音数字,然后寻找具有特定重音模式的词汇。

我们可以用任何词典资源来处理文本,如:过滤掉具有某些词典属性的词(如名词),或者映射文本中每一个词。例如:下面的文本到发音函数在发音词典中查找文本中每个词:

4 比较词表

表格词典的另一个例子是比较词表。NLTK 中包含了所谓的斯瓦迪士核心词列表(Swa desh wordlists),几种语言中约 200 个常用词的列表。语言标识符使用ISO639 双字母码。

from nltk.corpus import swadesh

print(swadesh.fileids())

print(swadesh.words('en'))

swadesh.fileids()获得的是语言的类别。

swadesh.words('en')获得的是英语语言下的词列表。

我们可以通过在entries()方法中指定一个语言链表来访问多语言中的同源词。把它转换成一个简单的词典dict()函数。

5 词汇工具简介

可能最流行的语言学家用来管理数据的工具是Toolbox(工具箱),以前叫做 Shoebox(鞋柜),因为它用满满的档案卡片占据了语言学家的旧鞋盒。

一个Toolbox 文件由一个大量条目的集合组成,其中每个条目由一个或多个字段组成。

大多数字段都是可选的或重复的,这意味着这个词汇资源不能作为一个表格或电子表格来处理。

thank you



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3