Nickel和Kiela(2017)提出了一种在Poincare球中嵌入树节点的新方法,并认为这些双曲嵌入在嵌入大型分层结构图(如WordNet名词hypernymy树)中的节点时远比欧氏嵌入有效。 在这项工作中,我们试图重现他们关于嵌入和重建WordNet名词hypernymy图的实验。 原文:Comparing Euclidean and Hyperbolic Embeddings on the WordNet Nouns Hypernymy Graph 原文:Nickel and Kiela In this work, we seek to reproduce their experiments on embedding and reconstructing the WordNet nouns 比较欧几里得和双曲嵌入在WordNet名词超微图上的作用.pdf
同义词处理 使用nltk.download()安装界面,其中一个包是WordNet。 WordNet是一个为自然语言处理而建立的数据库。它包括一些同义词组和一些简短的定义。 您可以这样获取某个给定单词的定义和示例: from nltk.corpus import wordnet syn = wordnet.synsets("pain") print(syn[0].definition 包含了很多定义: from nltk.corpus import wordnet syn = wordnet.synsets("NLP") print(syn[0].definition()) syn = wordnet.synsets("Python") print(syn[0].definition()) 结果如下: the branch of information science that wordnet synonyms = [] for syn in wordnet.synsets('Computer'): for lemma in syn.lemmas():
领8888元新春采购礼包,抢爆款2核2G云服务器95元/年起,个人开发者加享折上折
数据的准备工作是训练模型前的必要工作,显然这也是非常耗时的,所以在入门阶段我们完全可以用现有的开源图片库快速完成前期的准备工作: ImageNet ImageNet是根据WordNet层次结构(目前只有名词 说到WordNet层次结构,就要提一下什么是WordNet,WordNet是普林斯顿大学开源的词汇库,可以理解为是一个词典。每个词语(word)可能有多个不同的语义,对应不同的sense。 而每个不同的语义(sense)又可能对应多个词,如topic和subject在某些情况下是同义的,WordNet由Princeton 大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典 WordNet 主要有3个主概念 Synset, WordSense 和 Word。而ImageNet就是应用了synset这个概念,只是ImageNet目前只有名词。 我们在ImageNet搜索一个synset的时,左侧可以看到他的层次结构WordNet,在Download中提供了URLs的下载地址。
从 WordNet 获取同义词 如果你还记得我们使用 nltk.download( ) 安装 NLTK 的扩展包时。其中一个扩展包名为 WordNet。WordNet 是为自然语言处理构建的数据库。 通过 NLTK 你可以得到给定词的定义和例句: from nltk.corpus import wordnet syn = wordnet.synsets("pain") print(syn[0].definition 包含了很多词的定义: from nltk.corpus import wordnet syn = wordnet.synsets("NLP") print(syn[0].definition()) syn wordnet synonyms = [] for syn in wordnet.synsets('Computer'): for lemma in syn.lemmas(): from nltk.corpus import wordnet antonyms = [] for syn in wordnet.synsets("small"): for l in syn.lemmas
从 WordNet 获取同义词 如果你还记得我们使用 nltk.download( ) 安装 NLTK 的扩展包时。其中一个扩展包名为 WordNet。WordNet 是为自然语言处理构建的数据库。 通过 NLTK 你可以得到给定词的定义和例句: from nltk.corpus import wordnet syn = wordnet.synsets("pain") print(syn[0].definition 包含了很多词的定义 from nltk.corpus import wordnet syn = wordnet.synsets("NLP") print(syn[0].definition()) syn import wordnet synonyms = [] for syn in wordnet.synsets('Computer'): for lemma in syn.lemmas(): from nltk.corpus import wordnet antonyms = [] for syn in wordnet.synsets("small"): for l in syn.lemmas
同义词处理 使用nltk.download()安装界面,其中一个包是WordNet。 WordNet是一个为自然语言处理而建立的数据库。它包括一些同义词组和一些简短的定义。 您可以这样获取某个给定单词的定义和示例: 1from nltk.corpus import wordnet 2syn = wordnet.synsets("pain") 3print(syn[0].definition 包含了很多定义: 1from nltk.corpus import wordnet 2syn = wordnet.synsets("NLP") 3print(syn[0].definition()) 4syn = wordnet.synsets("Python") 5print(syn[0].definition()) 结果如下: 1the branch of information science that import wordnet 2synonyms = [] 3for syn in wordnet.synsets('Computer'): 4 for lemma in syn.lemmas(
同义词处理 使用nltk.download()安装界面,其中一个包是WordNet。 WordNet是一个为自然语言处理而建立的数据库。它包括一些同义词组和一些简短的定义。 您可以这样获取某个给定单词的定义和示例: from nltk.corpus import wordnet syn = wordnet.synsets("pain") print(syn[0].definition 包含了很多定义: from nltk.corpus import wordnet syn = wordnet.synsets("NLP") print(syn[0].definition()) syn = wordnet.synsets("Python") print(syn[0].definition()) 结果如下: the branch of information science that wordnet synonyms = [] for syn in wordnet.synsets('Computer'): for lemma in syn.lemmas(): synonyms.append
此时,我们可以使用一个历史悠久的项目WordNet (https://wordnet.princeton.edu/),它为英语提供了一个词汇数据库——换句话说,它是一个可计算的近义词典。 有一个针对WordNet的spaCy集成,名为spaCy - WordNet (https://github.com/recognai/spacy-wordnet),作者是Daniel Vila Suero 然后我们将通过NLTK加载WordNet数据: import nltk nltk.download("wordnet") [nltk_data] Downloading package wordnet 在这里,我们将添加来自spacy-wordnet项目的Wordnet注释(器): from spacy_wordnet.wordnet_annotator import WordnetAnnotator withdraw.v.01.recede'), Lemma('withdraw.v.01.pull_back'), Lemma('withdraw.v.01.retire'), … token._.wordnet.wordnet_domains
Torralba教授说:“这个数据集包含53,464个不同的名词,都是直接从WordNet拷贝过来的。” WordNet是普林斯顿大学(Princeton University)一个将英语单词分类成相关集的数据库。 这就是为什么WordNet非常有必要。它提供了一种方法,为计算机视觉研究人员分类和标签他们的图像。既然你可以用WordNet,为什么还要自己动手呢?” 作为一个单词列表,WordNet本身没什么害处,不过当与图像和AI算法结合在一起时,它可能会产生令人不安的后果。 Birhane说:“这个WordNet项目的目的是绘制出彼此接近的单词。 ImageNet也有同样的问题,因为它也是使用WordNet进行注释的。
Tiny Images Dataset 部分选取 这就要说到 Tiny Images Dataset 是基于 WordNet 的规范进行标记,把近八千万张图像分为 75,000 个类别。 也正是因为 WordNet 的部分标记,让数据集遭受了质疑。 WordNet 的锅,图像数据集一起背 众所周知,WordNet 由普林斯顿大学认知科学实验室的心理学家、语言学家和计算机工程师联合设计,自 1985 年发布以来,一直作为英文世界里最规范、全面的英语词典系统 在 Tiny Images Dataset 中,采用了 WordNet 中的 53,464 个不同名词,来作为图片的标签。 ? 毕竟这些图片,并不仅存在于这些数据集中,这些偏见,也不仅仅是 WordNet 里的几个词。 下架了数据集,图片依然在互联网各个角落,停用了 WordNet ,这些词也依旧在人们的观念里。
词反射及词干提取 Spelling correction 拼写准确性 Add new models or languages through extensions 添加新模型或语言通过表达 WordNet integration WordNet整合 快速开始: Create a TextBlob(创建一个textblob对象) First, the import. >>> w.lemmatize() # 默认只处理名词 'octopus' >>> w = Word("went") >>> w.lemmatize("v") # 对动词原型处理 'go' WordNet synset. >>> from textblob import Word >>> from textblob.wordnet import VERB >>> word = Word("octopus" API, see the NLTK documentation on the Wordnet Interface.
1.WordNet(电子词典式) 最直观的,就是把我们纸质的字典搬到电脑上,这样我们就可以很方便地查询关于这个词相关的信息。 例如著名的WordNet,它被称为是NLP中的瑞士军刀,下图展示了通过调取wordnet工具包查询一个词的相关信息: WordNet使用举例(图源自cs224n课程slides) WordNet的构建花费了很多人多年时间 针对上面的相似度的问题,实际上后面有人想到了使用「构建词语相似度表」(word-similarity table)的方式来解决,这样首先需要人工得确定每两个词的相似性程度,这显然是不可能完成的任务,那通过WordNet 这样可以小范围的实现,但是明显WordNet是很不完整的。 3.Word2Vec(低维分布式表示) 再后来,划时代的Word2Vec到来了。
人类语言和词义 如何表达一个单词的含义 在计算机中如何具有可用的含义 wordNet存在的问题 将单词表示为离散符号 单词作为离散符号存在的问题 通过上下文表示单词 词向量 词义作为神经词向量-可视化 必须下载对应的wordnet包 nltk.download('wordnet') from nltk.corpus import wordnet as wn poses = {'n':'noun','v 例如 "panda"的化身 # 导入初始包# pip install nltk import nltk #必须下载对应的wordnet包 nltk.download('wordnet') from nltk.corpus 1.3 像WordNet这样的资源,存在的问题 作为资源很好,但缺少细微差别 例如:“proficient”被列为“good”的同义词,这仅在某些情况下是正确的。 《解决方案》 可以尝试依靠WordNet的同义词列表来获得相似性吗? 但是众所周知严重失败:不完整等。 替代:学习在向量本身中编码相似性。
1.WordNet 在英文中,我们可以借助WordNet,来导出一个词的同义词、近义词等等各种信息。 WordNet是由Princeton 大学的心理学家,语言学家和计算机工程师联合设计的一种基于认知语言学的英语词典。 网址:https://wordnet.princeton.edu/ 我们可以下载wordnet,也可以通过NLTK等等包来获取,便可以在计算机程序里查询我们想要的词。 对于中文的话,也有类似的对应的wordnet。下面展示的这个Chinese wordnet由中国台湾国立大学的学者们设计搭建。而且,他们还做了相应的知识图谱,更加直观地表达词之间的关系。 但是通过wordnet来进行词义表示有什么问题呢?
YAGO YAGO由德国马普研究所于2007年研制,集成了维基百科、wordNet和GeoNames三个来源的数据,是IBM沃森大脑的后端知识库之一。 另外YAGO也融合了语言知识,比如将维基百科标签与WordNet中的概念(Synset)进行映射,以WordNet概念体系完成百科知识本体构建。很多知识条目也增加了时空属性维度描述。 BabelNet采用类似YAGO的思路,将维基百科页面标题与WordNet概念进行映射,通过维基百科跨语言页面链接以及机器翻译系统,为WordNet提供非英语语种链接数据。 由于BabelNet中的错误来源主要在于维基百科与WordNet之间的映射,目前的映射正确率大约在91%。 5. Wikidata Wikidata顾名思义,与维基百科有着千丝万缕的联系。 ConceptNet侧重于用近似自然语言描述三元组知识间关系,类似于WordNet。
HowNet 采取了不同于 WordNet 的标注思路,可以说是我国学者为NLP做出的最独具特色的杰出贡献。 也正因为如此,近年来无论是 HowNet 还是 WordNet 的学术关注度都有显著下降,如以下两图所示。 ? 中国期刊网(CNKI)统计 HowNet 学术关注度变化趋势 ? Semantic Scholar 统计 WordNet 相关论文变化趋势 是不是说,深度学习时代以 WordNet、HowNet 为代表的语言知识库就毫无用处了呢?实际并非如此。 实际上自 word2vec 刚提出一年后,我们[5]以及 ACL 2015 最佳学生论文[6]等工作,都发现将 WordNet 知识融入到词表示学习过程中,能够有效提升词表示效果。 在 WordNet、同义词词林等知识库中,每个词的词义是通过同义词集(synset)和定义(gloss)来间接体现的,具体每个词义到底什么意义,缺少细粒度的精准刻画,缺少显式定量的信息,无法更好为计算机所用
在这篇文章中,我们首先关注英语的这些属性,利用替代的分布原则作为SemCor和WordNet范式关系控制下的探测机制。 distributional principle of substitution as a probing mechanism in the controlled context of SemCor and WordNet
为了定量解释决策规则,研究者使用了 WordNet3 的现有名词层次;通过这种层次结构可以找到类别之间最具体的共享含义。例如,给定类别 Cat 和 Dog,WordNet 将反馈哺乳动物。 在下图中,研究者定量验证了这些 WordNet 假设。 ? 左侧从属树(红色箭头)的 WordNet 假设是 Vehicle。右边的 WordNet 假设(蓝色箭头)是 Animal。 值得注意的是,在具有 10 个类(如 CIFAR10)的小型数据集中,研究者可以找到所有节点的 WordNet 假设。 但是,在具有 1000 个类别的大型数据集(即 ImageNet)中,则只能找到节点子集中的 WordNet 假设。
我们可以直接根据返回结果的首字母做个简单的映射: from nltk import word_tokenize, pos_tag from nltk.corpus import wordnet from nltk.stem import WordNetLemmatizer # 获取单词的词性 def get_wordnet_pos(tag): if tag.startswith('J '): return wordnet.ADJ elif tag.startswith('V'): return wordnet.VERB elif tag.startswith('N'): return wordnet.NOUN elif tag.startswith('R = get_wordnet_pos(tag[1]) or wordnet.NOUN lemmas_sent.append(wnl.lemmatize(tag[0], pos
扫码关注腾讯云开发者
领取腾讯云代金券