自然语言处理的基本技术,自然语言处理的步骤
介绍自然语言处理(NLP)是人工智能方向一个非常重要的研究领域。自然语言处理在很多智能应用中扮演着非常重要的角色,例如:
自动化聊天机器人、文章摘要、多语言翻译、从数据中识别观点每一个利用自然语言处理来理解非结构化文本数据的行业,不仅要求准确,而且在获取结果方面也很敏捷。
自然语言处理是一个非常广阔的领域,NLP的任务包括
文本分类,实体检测,机器翻译,问答,概念识别。在本文中,将介绍一个高级的自然语言处理库-斯帕西
内容列表关于宽大的和安装空间流水线和属性
标记化位置标记实体检测依赖性分析名词短语与自然语言工具包和coreNLP的对比1.关于宽大的和安装1.1 关于空间空间是由cython编写。因此它是一个非常快的库空间提供简洁的接口用来访问其方法和属性由经过训练的机器(和深度)学习模型管理。
1.2 安装安装空间
点安装空间下载数据和模型
python -m空间下载半方现在,您可以使用空间了。
2.空间流水线和属性要想使用空间和访问其不同的属性,需要先创建管道.通过加载 模型 来创建一个 pipeline。空间提供了许多不同的模型,模型中包含了语言的信息-词汇表,预训练的词向量,语法和实体。
下面将加载默认的模型英语核心网
导入空间=spacy.load("en") nlp对象将要被用来创建文档,访问语言注释和不同的自然语言处理技术属性。我们通过加载一个 文本文件 来创建一个 document。这里使用的是从网站的网站上下载下来的旅馆评论。
文档=打开(文件名)。read()document=nlp(文档)现在,文档成为空间。英语模型的一部分,同时文件也有一些成员属性。可以通过总监(文件)查看。
总监(文件)[. user_span_hooks , user_token_hooks , vector , vector_norm , vocab]文档包含大量的文档属性信息,包括令牌、令牌的引用索引、词性标签、实体、向量、情感、词汇等。下面将介绍一下几个属性
2.1标记化"这是一个句子。"-(标记化)[这个,是,一个,句子,.[商务英语空间会先将文档分解成句子,然后再象征化。我们可以使用迭代来遍历整个文档。
# doc文档的第一个标记[0]好样的# doc文档的最后一个标记[len(文档)-5]波士顿#我们的文件列表的句子列表(document.sents) [好地方比某些评论所称赞的要好。总的来说,房间有点小,但是很好。一切都很干净,风景很好,位置也很好(保诚中心让购物和吃饭变得很容易,T酒店就在附近,适合外出和游览城市)。] 2.2词性标注(词性标注)词性标注:word的动词/名词/… 属性。这些标注可以作为文本特征用到信息过滤,统计模型,和基于规则的解析中。
# get all tags all _ tags={ w . pos:w . pos _ for w IN document } { 83: ADJ ,91:名词,84:《ADP》,89:《DET》,99:“动词,94: PRON ,96: PUNCT ,85: ADV ,88: CCONJ ,95: PROPN ,102:空间,93:部分,98: SYM ,92: NUM ,100: X ,90: INTJ}#列表中单词的文档第一句的所有标记, .)下面代码创建一个文本处理操作,去掉噪声词。
#定义一些参数nozy _ pos _ tags=[ PROP ]min _ token _ length=2 #函数检查令牌是否为噪声def is noise(token):is _ noise=False if token。pos _ in nozy _ pos _ tags:is _ noise=True elif token。is _ stop==True:is _ noise=True elif len(token。string)=min _ token _ length:is _ noise=True返回is _ noise def clean up(token,lower=True):如果lower:token=token。lower()返回标记。strip()#most_common(5) [(hotel ,683),( room ,652),( great ,300),( sheraton ,285),( location ,271)] 2.3实体检测(实体检测)空间包含了一个快速的实体识别模型,它可以识别出文档中的实体短语。有多种类型的实体,例如-人物,地点,组织,日期,数字。可以通过文件的娱乐活动属性来访问这些实体。
下面代码用来找出当前文档中的所有命名实体。
labels=set([w . label _ for w in document。entities=[clean up(e . string,lower=False)for e in document。ent if label==e . label _]entities=list(set(entities))打印标签,entities 2.4依赖项解析空间一个非常强大的特性就是十分快速和准确的语法解析树的构建,通过一个简单的应用程序接口即可完成。这个句法分析程序也可以用作句子边界检测和短语切分。通过".孩子"、"。根","。祖先"即可访问。
#提取所有包含单词-hotel hotel=[sent for sent in document。如果“酒店”已发送,则发送。字符串。lower()]#为sent中的word创建依存树sentence=hotel[2]:print(word,: ,str(list(word。)A:[]cab:[A,from] from : [airport,to]the:[]airport:[the]to:[hotel]:[]hotel:[the]can:[]be:[cab,can,receiver,[商务英语:比…便宜:比…便宜:穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…穿梭于…时间。 [] 下面代码所作的工作是:解析所有包含"酒店"句子的依赖树,看看都用了什么样的形容词来描述"旅馆".下面创建了一个自定义函数来解析依赖树和抽取相关的词性标签。
#检查所有与单词定义位置词(文档、令牌、位置标记)一起使用的形容词:sentings=[sent for sent in文档。如果令牌已发送,则发送。string]pwrds=[]for sent in sent:for word in if token。字符串:pwrds。延伸(【子。在word中为子对象剥离()。孩子就是孩子。pos _==pos _ tag])返回计数器(pwrds).most _ common(10)pos _ words(document, hotel , ADJ) [(uother ,20),(ugreat ,10),(ugood ,7),(ubetter ,6),(unice ,6),(udifferent ,5),(umany ,5),(ubest ,4),(umy ,4),(uwonderful ,3)] 2.5名词短语(名词短语)依存关系树也可以用来生成名词短语。
#生成名词短语doc=NLP(u I love data science on analytics vid hya )for NP in doc。名词_组块:打印(NP。text,np.root.dep_,np。根。头。文)我nsubj爱数据科学dobj爱分析pobj on 3。与工具包和核心自然语言处理的对比
参考资料https://github.com/pytorch/text
https://www。analyticsvidhya。com/blog/2017/04/natural-language-processing-made-easy-use-spacy-in-python/
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。