区块见闻 区块见闻
Ctrl+D收藏区块见闻
首页 > 中币 > 正文

NSI:自然语言理解_NLP

作者:

时间:

1.走近自然语言理解

文本是一种极其重要的数据类型,下面介绍文本数据中有哪些研究问题和挖掘价值。

1.1概念

在处理数据时经常会接触到文本,如电影简介、新闻报道等,以及互联网上每天大量积累的用户产生内容,如新浪微博、用户评论等,因此文本是一种十分常见和重要的数据类型。这些文本大多以自然语言的形式存在,即通过人类语言组织和产生,广泛应用于我们的日常对话、办公写作、阅读浏览等行为中。自然语言处理希望让机器能够像人一样去理解以人类自然语言为载体的文本所包含的信息,并完成一些语言领域的特定任务。

1.2内容

语言是人类智慧长期沉淀的成果,对于看似简单的文本,从词汇级别、语法级别、语义级别、应用级别等不同角度出发,都包含大量研究问题和工作内容。

中文NLP中最基础的一块内容便是中文分词。英文等外文语言的单词之间以空格分开,因此显式提供了词和词之间的边界。而中文仅使用标点符号进行断句,字和字之间彼此相连,例如“上海自来水来自海上”。虽然类似N-grams等语言模型并不需要进行中文分词,但毕竟中文的基本语义单元是词而不是字,所以在大多数应用场景下,为了正确理解一句话包含的语义,进行准确的中文分词仍是必不可少的预处理步骤。

词性标注是指在中文分词的基础上,结合上下文对分好的每个词标注最合适的词性。常见的词性有名词、动词、形容词、副词等,同一词语在不同的语境下可以表现为不同的词性,进而在语句中充当不同的语义角色。因此,词性标注主要是依据词本身的词性分布,以及上下文的实际语境来判断的。

命名实体识别是指识别出语句中的人名、地名、机构名、数字、日期、货币、地址等以名称为标识的实体,大多属于实词。而关系抽取则是指完成命名实体识别之后,抽取实体之间存在的关系。例如,“乔布斯出任苹果公司CEO”,其中乔布斯和苹果公司分别属于人名和机构名,而CEO则是两个命名实体之间的关系。

关键词提取是指从大量文本中提取出最为核心、最具有代表性的关键词。常用的实现算法有TF-IDF和TextRank两种,在提取之前需要对给定文本进行中文分词并移除停用词,即例如,“你”“我”“着”“了”等十分常用但不包含具体语义的词。TF-IDF选出那些一般并不常用,但是在给定文本中频繁出现的词作为关键词;而TextRank则基于词之间的上下文关系构建共现网络,将处于网络核心位置的词作为关键词。

行情 | TokenInsight:BTC 全网交易额稳中有升:据TokenInsight监测显示,BTC 全网交易额较上周上升 9.6%,链上转账数较上周同期上升 10.5%,链上活跃地址数继续维持高位。BCtrend 分析师 Jeffrey 认为,BTC 链上活跃度站稳 7 日均线,未来 1-2 日或将延续反弹修复行情。[2018/11/3]

信息抽取是从非结构化文本中抽取出有意义或者感兴趣的字段。例如,对于一篇法律判决文书,从中提取出原告、被告、案件类型、判决结果等信息字段,从而将非结构化文本转化为结构化数据,便于信息管理和数据分析。目前大多数信息抽取都是通过人工制定规则,使用整理好的模式去目标文本中匹配出相应的字段,或者使用半监督学习,结合人工标注样本和机器学习模型,在不断的迭代和反馈中提高信息抽取的准确率。

依存分析主要包括句法依存分析和语义依存分析,其过程都是将原始语句解析为依存树,树中的每个节点都代表一个词,节点之间的连接则反应了词之间的句法关系或语义关系。通过依存分析,原本以顺序排列的词语之间产生了更加复杂和层次化的关系,便于机器更好地理解语句的语法和语义,从而能够为后续自然语言处理任务带来帮助。

词嵌入是指将词映射成低维、实值、稠密的词向量,从而赋予词语更加丰富的语义涵义,同时更加适合作为机器学习等模型的输入。词嵌入的概念非常有用,在自然语言处理任务中应用也十分广泛。

1.3应用

如果以上内容是从理论角度出发探讨NLP涉及的内容,那么从实际应用角度出发,NLP又可以用来实现哪些任务呢?

篇章理解是指对于给定的文章集合,通过处理后能够把握文章的主要内容并完成一些分类任务,如对文章进行主题分类。篇章理解的实现大多基于有监督学习,即提供标注好的训练集和待测试的测试集,基于训练集得到一个能够准确提取信息、全面把握内容的分类模型,从而应用于测试集的分类任务。

文本摘要是指对于给定的大量文本,提取出核心思想和主要内容,快速生成篇幅更小、便于阅读和理解的摘要。文本摘要主要分为提取式和生成式两种,前者从原始文本中直接提取出已有的代表性语句,经过处理和组合后输出为摘要,后者在理解和融合原始文本的基础上,自动生成原始文本中没有的语句并组合为摘要。相较而言,生成式比抽取式更加困难,而人类的习惯也是先阅读并理解,选出重要的语句,再用自己的语言进行复述、总结和融合。

声音 | TokenInsight:BTC 全网交易额同比上周大减 头部地址持仓量占比下降:据 TokenInsight 数据显示,反映区块链行业整体表现的TI指数北京时间 10 月 23 日 8 时报 595.89 点,较昨日同期下跌 2.25 点,跌幅为 0.38%。此外,在 TokenInsight 密切关注的 21 个细分行业板块中,24 小时内涨幅最高的为通讯版块,涨幅为 4.08%;24 小时内跌幅最高的为电子商务版块,跌幅为 2.41%。

另据监测显示,BTC 全网交易额同比上周下降 48.92%,前 100 地址持仓量占比 18.95%,连续 7 日累积下降 0.18%。BCtrend 分析师 Jeffrey 认为,目前市场投资者信心不足,后续窄幅向下调整行情或将延续。[2018/10/23]

情感分析是指根据语句中蕴含的情感成分判断整个语句表达的情感倾向,例如,判断用户评论是否为积极或消极。情感分析的实现可以是简单地使用一些情感词典,对语句中出现的情感词进行加权组合,从而输出整个语句的情感得分,也可以使用有监督学习,基于人工标注数据训练情感分类或回归模型。

知识图谱是一种表示知识的方法,使用节点表示实体,使用有向边表示实体之间的关系,实体和边都可以具备丰富的属性,从而将海量知识表示成一个庞大的网络。知识图谱模拟了人脑管理和检索知识的过程,当我们看到乔布斯和苹果公司这两个实体时,会很自然地联想两者之间的关系。如果能够将某一领域涉及的知识都以知识图谱的形式进行整理和组织,那么对于领域知识的管理、推理和检索等都能起到很大的便利。

文本翻译是一项十分常用的NLP应用,大家都或多或少使用过Google翻译等工具将文本从一种语言翻译成另一种语言。从本质上来看,文本翻译是一种序列到序列的映射,其实现大多是基于人工标注数据集,即大量源语言文本以及对应的目标语言文本,使用循环神经网络等深度学习网络训练映射模型。当然,不能简单地将源语言文本中的每个字翻译成目标语言并直接拼接,而是需要结合两种语言的语法特点以及具体的上下文语境进行调整,而这也正是文本翻译面临的最大困难和挑战。

问答系统是对传统搜索引擎的一种改进。传统搜索引擎接受用户的关键词作为输入,以列表形式输出按相关性递减排序的搜索结果,用户仍然需要依次浏览,直到找到最符合自己要求的内容。问答系统则直接根据用户问题返回最准确的答案,其实现涉及NLP的诸多领域,例如,对用户输入内容进行理解和处理、以庞大的知识图谱作为知识存储、快速高效的知识检索和推理技术等。

分析 | TokenInsight:市场观望情绪渐显 ETH 活跃度有所下降:据 TokenInsight 数据分析,近24小时内,ETH 链上转账数497,767,同比24小时前下降 16%;活跃地址数306,167,同比24 小时前下降 21%;交易所成交量14.7亿美元,同比24小时前下降2%。基于 ERC20 标准开发的700个项目总市值124.9亿美元,同比24小时前略有增长;24小时成交量6.6亿美元,同比24小时前略有回落。ZRX 以 3417 万美元的24小时成交量位居榜首,同比增长591%。

TokenInsight 认为,当前 ETH 市场观望情绪渐显,ETH 交易活跃度有所下降。但就成交量来看,ERC20 生态受影响较小。[2018/10/8]

聊天机器人很早便得到了应用,完成一些自动信息采集和回复的功能,但那时的聊天机器人主要基于关键词和模板等人工制定规则,智能程度不高。近年来随着深度学习等相关技术的发展,以及海量聊天语料的积累,聊天机器人逐渐可以接受任意文本输入并输出较为合理的回复。从本质上来看,聊天机器人也属于序列到序列的映射,但其涉及对用户输入文本的理解、知识图谱、文本生成等多个领域,并且需要解决多轮对话一致性等挑战。智能聊天机器人主要包括日常调侃的聊天机器人,如微软小冰等,以及垂直领域的功能机器人,如法律、购车、医疗等领域的专业咨询机器人。它们作为用户需求的万能入口,吸引了大量研究机构和创业公司的密切关注。

2.使用jieba分词处理中文

我们对NLP是什么和做什么,以及和NLP领域相关的内容和应用有了大致的概览,现在通过Python中的jieba来部分实现中文分词。

2.1jieba中文分词

中文分词是中文NLP的第一步,一个优秀的分词系统取决于足够的语料和完善的模型,很多机构和公司也都会开发和维护自己的分词系统。这里推荐的是一款完全开源、简单易用的分词工具,jieba中文分词。官网是里面提供了详细的说明文档。虽然jieba分词的性能并不是最优秀的,但它开源免费、使用简单、功能丰富,并且支持多种编程语言实现。

以下使用Python中的jieba分词完成一些基础的NLP任务,如果对jieba分词感兴趣,希望了解更多内容,可以参考官方使用文档。

首先没有jieba分词的话需要安装,使用pip即可安装。

分析 | TokenInsight:市场交易额略有下降 BTC或面临回调:据 TokenInsight 数据显示,反映区块链行业整体表现的TI指数北京时间9月24日8时报649.21点,较昨日同期上涨4.49点,涨幅0.70%。通用平台指数TIG报441.8点,较昨日同期上涨8.57点,涨幅1.98%。另据监测显示,BTC人气热度三次冲高但仍未突破0.1活跃线,BTC/USDT交易额较昨日下降15.5%。

BCtrend分析师 Jeffrey 认为,比特大陆7nm矿机的面市带领矿主割据战再次打响,BTC上升势能减弱,调整需求加大。

技术分析方面,独立分析师 James Lu 认为,昨日XLM、ADA等小市值通证较为强势,BTC维持震荡,需关注BTC在6700美元的支撑情况。[2018/9/24]

pipinstalljieba

2.2中文分词

中文分词的模型实现主要分为两大类:基于规则和基于统计。

基于规则是指根据一个已有的词典,采用前向最大匹配、后向最大匹配、双向最大匹配等人工设定的规则来进行分词。例如对于“上海自来水来自海上”这句话,使用前向最大匹配,即从前向后扫描,使分出来的词存在于词典中并且尽可能长,则可以得到“上海/自来水/来自/海上”。这类方法思想简单且易于实现,对数据量的要求也不高。当然,分词使用的规则可以设计得更复杂,从而使分词效果更理想。但是由于中文博大精深、语法千变万化,很难设计足够全面而且通用的规则,并且具体的上下文语境、词语之间的搭配组合也都会影响到最终的分词结果,这些挑战都使得基于规则的分词模型并不能很好地满足需求。

基于统计是从大量人工标注语料中总结词的概率分布以及词之间的常用搭配,使用有监督学习训练分词模型。对于“上海自来水来自海上”这句话,一个最简单的统计分词想法是,尝试所有可能的分词方案,因为任何两个字之间,要么需要切分,要么无需切分。对于全部可能的分词方案,根据语料统计每种方案出现的概率,然后保留概率最大的一种。很显然,“上海/自来水/来自/海上”的出现概率比“上海自/来水/来自/海上”更高,因为“上海”和“自来水”在标注语料中出现的次数比“上海自”和“来水”更多。

其他常用的基于统计的分词模型还有HMM和CRF等,以及将中文分词视为序列标注问题,进而使用有监督学习、深度神经网络等模型进行中文分词。

jieba分词结合了基于规则和基于统计两类方法。首先基于前缀词典进行词图扫描,前缀词典是指词典中的词按照前缀包含的顺序排列,例如词典中出现了“上”,之后以“上”开头的词都会出现在这一块,例如“上海”,进而会出现“上海市”,从而形成一种层级包含结构。如果将词看作节点,词和词之间的分词符看作边,那么一种分词方案则对应从第一个字到最后一个字的一条分词路径。因此,基于前缀词典可以快速构建包含全部可能分词结果的有向无环图,这个图中包含多条分词路径,有向是指全部的路径都始于第一个字、止于最后一个字,无环是指节点之间不构成闭环。基于标注语料,使用动态规划的方法可以找出最大概率路径,并将其作为最终的分词结果。

动态 | TokenInsight:BTC交易异动监控:据TokenInsight数据显示,北京时间8月31日下午4时34分,某交易所转出BTC 1500枚,之后被拆分为1499.88枚和0.12枚,小额流入热钱包地址,大额流入新生存储地址。进入新生存储地址中的1499.88枚BTC经数百笔交易被不断小额拆分、更换存储地址。

截至9月1日下午3时37分,最初的1500枚BTC中有1001枚被存于新生存储地址,剥离出的499枚BTC存放在数百个热钱包地址中,最终流向多个用户地址和交易所。[2018/9/2]

jieba提供了3种分词模式。

·精确模式:试图将句子最精确地切开,适合文本分析。·全模式:把句子中所有可以成词的词语都扫描出来,速度非常快,但是不能解决歧义。

·搜索引擎模式:在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。

以下代码使用jieba实现中文分词,使用jieba.cut()函数并传入待分词的文本字符串即可。使用cut_all参数控制选择使用全模式还是精确模式,默认为精确模式。如果需要使用搜索引擎模式,使用jieba.cut_for_search()函数即可。运行以下代码之后,jieba首先会加载自带的前缀词典,然后完成相应的分词任务。

importjieba

seg_list=jieba.cut("我来到清华大学",cut_all=True)

Billions项目组即使用一个拼接符将一个列表拼成字符串

print("/".join(seg_list))Billions项目组精确模式

seg_list=jieba.cut("他来到了网易杭研大厦")Billions项目组搜索引擎模式

print("/".join(seg_list))

2.3关键词提取

jieba实现了TF-IDF和TextRank这两种关键词提取算法,直接调用即可。当然,提取关键词的前提是中文分词,所以这里也会使用到jieba自带的前缀词典和IDF权重词典。

对于提取的关键词以及权重,将每个关键词的权重作为文字大小,便可以进行字符云可视化。

2.4词性标注

jieba在进行中文分词的同时,还可以完成词性标注任务。根据分词结果中每个词的词性,可以初步实现命名实体识别,即将标注为nr的词视为人名,将标注为ns的词视为地名等。所有标点符号都会被标注为x,因此可以根据这个方法去除分词结果中的标点符号。

3.词嵌入的概念和实现

词嵌入是一项非常重要且应用广泛的技术,可以将文本和词语转换为机器能够接受的数值向量,这里详细讨论其概念和实现。

3.1语言的表示

如何向计算机解释一个词语的意思?或者说如何表示一个词语才能恰当地体现出其包含的语义?看到“苹果”这个词时,我们会联想起可以吃的苹果这一水果,还会联想起乔布斯创建的苹果公司,因此一个词可以包含多重语义。如果让计算机分析“苹果”和“梨子”两个词之间的相关性,通过字符串匹配只能得到完全不相等的结论,但是我们知道它们都属于水果,因此词语所蕴含的语义实际上非常复杂,无法通过简单的字符串表示。

语言的表示主要有两种:符号主义和分布式表示。

符号主义

符号主义中典型的代表是Bagofwords,即词袋模型。如果将语料词典中的每个词都看作一个袋子,那么一句话无非是选择一些袋子,然后将出现的词丢入相应的袋子。用数学的语言来说,假设词典中一共有N个词,就可以用N个N维向量来表示每个词。以下是用Python描述的一个简单例子,这里的词典中只有5个词:苹果、梨子、香蕉、和、好吃,分别用一个五维向量表示,仅对应的维度上为1,其他维度都为0。基于词袋模型可以方便地用一个N维向量表示任何一句话,每个维度的值即对应的词出现的次数。

词袋模型虽然简单,但其缺点也十分显著。主要有以下几点。

·当词典中词的数量增大时,向量的维度将随之增大。虽然常用的汉字只有几千个,但是依然会给计算带来很大的不便。

·无论是词还是句子的表示,向量都过于稀疏,除了少数维度之外的大多数维度都为0。

·每个词对应的向量在空间上都两两正交,任意一对向量之间的内积等数值特征都为0,无法表达词语之间的语义关联和差异。

·句子的向量表示丢失了词序特征,即“我很不高兴”和“不我很高兴”对应的向量相同,而这显然是不符合语义的。

分布式表示

分布式表示中典型的代表是WordEmbedding,即词嵌入,使用低维、稠密、实值的词向量来表示每一个词,从而赋予词语丰富的语义含义,并使得计算词语相关度成为可能。以最简单的情况为例,如果使用二维向量来表示词语,那么可以将每个词看作平面上的一个点,点的位置即横纵坐标由对应的二维向量确定,可以是任意且连续的。如果希望点的位置中蕴含词的语义,那么平面上位置相邻的点应当具有相关或相似的语义。用数学的语言来说,两个词具有语义相关或相似,则它们对应的词向量之间距离相近,度量向量之间的距离可以使用经典的欧拉距离和余弦相似度等。

词嵌入可以将词典中的每个词映射成对应的词向量,一个好的词嵌入模型应当满足以下两方面要求。

·相关:语义相关或相似的词语,它们对应的词向量之间距离相近,例如“苹果”和“梨子”的词向量距离相近。

·类比:具有类比关系的4个词语,例如,男人对于女人,类比国王对于王后,满足男人-女人=国王-王后,即保持词向量之间的关联类比,其中的减号表示两个词向量之间求差。

这样一来,通过词嵌入模型得到的词向量中既包含了词本身的语义,又蕴含了词之间的关联,同时具备低维、稠密、实值等优点,可以直接输入计算机并进行后续分析。但词典中的词如此之多,词本身的语义便十分丰富,词之间的关联则更为复杂,所以相对于词袋模型,训练一个足够好的词向量模型更加困难。

3.2训练词向量

词向量的训练主要是基于无监督学习,从大量文本语料中学习出每个词的最佳词向量,如维基百科、大量新闻报道等。训练的核心思想是,语义相关或相似的词语,大多具有相似的上下文,即它们经常在相似的语境中出现,例如,“苹果”和“梨子”的上下文中可能都会出现类似“吃”“水果”等词语,可以使用“开心”的语境一般也能使用“高兴”。

词嵌入模型中的典型代表是Word2Vec,模型实现原理可以参考Mikolov的两篇文章,,主要包括CBOW和Skip-Gram两个模型,前者根据上下文预测对应的当前词语,后者根据当前词语预测相应的上下文。如果希望进一步深入理解词嵌入模型训练的原理和细节,可以仔细研读以上两篇文章。如果仅需要应用词嵌入模型,则直接了解如何用代码实现即可。

3.3代码实现

gensim是一款开源的Python工具包,用于从非结构化文本中无监督地学习文本隐层的主题向量表示,支持包括TF-IDF、LSA、LDA和Word2Vec在内的多种主题模型算法,并提供了诸如相似度计算、信息检索等常用任务的API接口。gensim官网对于其中Word2Vec模型的介绍为里面提供了和Word2Vec相关的完整使用文档。首先如果没有gensim的话,使用pip即可安装。

pipinstallgensim

另外,gensim仅提供了Word2Vec的模型实现,训练词向量的另一个必须条件是足够大的文本语料。这里将要使用的是中文维基百科语料,已经整理成文本文件并放在网盘上,直接下载使用即可,提取密码为kade。

下载之后,可以在SublimeText中打开并查看其内容,文件名和后缀名可以不用在意,因为SublimeText支持打开任意类型的文本文件。其中每一行是一条维基百科,即一项词条对应的百科内容,并且已经完成了分词处理。

以下代码使用gensim提供的Word2Vec模型训练并使用词向量,主要包括加载包、训练模型、保存模型、加载模型、使用模型等步骤。

除此之外,gensim中的Word2Vec还实现了多项NLP功能,例如,从多个词中找出和其他词相关性相对更弱的一个,以及根据给定的3个词类比推理出第4个词等,详细使用方法可以参考官方完整文档。

标签:NLPORDNSISEGNLP价格HORDSensitrustomisego

中币热门资讯
元宇宙:比特币重反5万美金,以太坊接近历史前高_加密货币

根据L2Beat数据显示,昨日以太坊L2锁定的ETH近10亿美元,目前约为8.823亿美元,其中绝大多数在dYdX,锁定了近3亿美元,其次是Loopring.

:世界上另一个“中国”:人口60万军队占4万,用人民币讲汉语_

在人们的意识中,或许会认为只有在中国这片土地上生活的人,才会以汉语为母语,以人民币为流通货币。但是在世界上,有这样一个地方,它被称为是“小中国”,世界另一个“中国”.

KOL:各版人民币王大盘点,还不知道,本文就是最好的科普_KOLT

今天要讲的内容比较基础,但对不懂的人来说,却可能与巨额收入失之交臂,感兴趣的话,可要看完。 各版币王? 截至目前,人民币已经发行了五套,从建国初的第一套,到2000年前后的第五套,见证了新中国的.

OGO:福特新款嘉年华来袭,约合人民币15万起售,6.5秒可破百_艺术币logo

早年间,在我们国内汽车市场,长安福特嘉年华可以说是受到了众多国人的青睐,只不过,后来由于种种原因,导致长安福特嘉年华停产,对此,不少车迷朋友们都感到非常的惋惜.

COI:CoinEx科普:关于数字货币充提你不得不知道的一些事情_OIN

充值提现,可以说是数字货币交易中最为关键的步骤。新韭菜经常会有“我的充值一般多久到账”“提现操作半天了怎么还没汇出去”诸如此类的问题,就算是老韭菜也会出现充提失误的乌龙事件.

MOA:镍行业专题研究:能源变革下的红土镍矿HPAL冶炼_GEN

一、前言:能源变革下的红土镍矿HPAL湿法冶炼 能源变革的大时代,镍作为电动化下的第三种金属,动力电池用镍将随着新能源车终端需求的爆发及高镍化的逐步推进迎来爆发式增长.