基本文本处理 1|学习笔记

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 快速学习基本文本处理 1

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践基本文本处理 1】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15498


基本文本处理 1

 

内容介绍:

一、管道(pipelines)的种类

二、其他管道

三、基本的文本分析

四、词性标注(POSM tagging)

 

打开 part 1 Text Mining Basic 文档挖掘基础,实验做第二个 Elementary text processing ipynb

,即基本文本处理。文本处理的一系列的操作,称做管道 pipelines ,这是一组操作,能够自动化连续操做完成任务,要利用这些管道将文本处理有用的东西。

 

一、管道(pipelines)的种类

1.English: Stanford CoreNLP

这是一套用于处理基格式良好的英语工具,且稳定可靠

相关网址链接:

http://nlp.stanford.edu:8080/corenlp/ (online demo)

http://stanfordnlp.github.io/CoreNLP/ 

2.中文: Stanford CoreNLP

可用于分词词性标注;命名实体识别;句法树、依存句法分析

参考文件网址:

https://blog.csdn.net/guolindonggld/article/details/72795022 

Jupyter 开发环境特别适合数据科学,方便教学学习交流、做实验。可以在 notebook 中放入链接,可以方便获取一些学习资料。Notebook 的单元格有两种,一种是标记,另一种是代码这些需要去记忆。标记里面标记主要是做各种各样文本的说明,代码是携排代码。

3.中文:jieba

可用作分词、词性标注;分词背后需要词典作为支持,如果某个领域分词效果不好,词典里面可能没有需要的词,这就需要自定义词典加载在 jieba 里面, jieba  可以做关键词提取,然后找到文本里面代表的关键词在 Tickenize 里面可以找到返回词语在原文的起止位置。

Jieba 官网:https://github.com/fxsjyjieba 

4.中文:hanLP

可用作分词、词性标注、 Tokenize、 命名实体还有句法相关性解析。

 

二、其他的管道

如 UDP ipe、Turku neural parser pipeline、百度 NLP、Google NLP 、NLTK 等。

除此之外还有科学数据中的 Pandas 也是一项强大的工具。 Gensim 可以作为向量, Scikit-learn 作为机器学习速度挖掘的算法同时也可以做文本的处理,后期的深度学习也会用到 Pytorch。

 

三、基本的文本分析

1.基本文本分析步骤

①基本的文本分析是将原始的文本输入,然后进行分析文本输出,最后用典型的文本分析管道等,通过以下一系列步骤进行。

②将文本拆分为句子

③将句子拆分为单词(通常将步骤1和步骤2颠倒过来)

获取单词的基本形式并为其分配词性类别,如动词、名词、形容词等

④分析句子的句法结构,比如主谓宾

⑤将文本跨句子彼此关联,识别命名实体,比如人名、地名、专业的机构名等

Note:这些步骤以非凡的方式相互依赖

2.句子拆分

句子拆分成完整的一句话,一般会有标点符号隔开,有可能是空格,有些句子的英文会使用英文首字母大写等等,然后进行句子拆分。句子拆分不是想象中的简单,可能会出现大写不一致、标点混乱,没有空格等现象。

3.Tokenization

其作用就是将要分析的文本分类为 tokens, 包括单词、数字、日期、标点符号等等,关于 Token 的解释空间很大,像 March 2,2016 vs.2.3.2016 完整的日期以及 can’t_> can not 词组都是 Token。

4.词形还原(Lemmatization)

对许多语言都有这样的问题,但对中文没有这样的问题。

①基于词典的方法 Dictionary-based methods

网址:Try it in the online demo

https://github.com/TurkuNLP/Finnish-dep-parser.git 

②机器学习 Machine-learned

可以利用机器学习的方法进行分词,做词的 Tokens。

网址:http://bionlp-www.utu.fi/parser _demo/ 

 

四、词性标注(POSM tagging)

词分好之后,给单词分配它们的词性类别。实践中:给每个单词,一个预定义集合中的词性标签,其中有很多。对于大多数人而言,这并非易事,因其随处可见的歧义,比如中文:大学生活像白纸。中文:它白跑了一趟。其中“白”在名词“纸”前面是形容词,在动词“跑”前面是副词。“白”有多种词性,标注的时候,要选哪种词性也是不容易的。下面用两种方法对 Let’s try 进行标注

1. exam 1 jieba 分词与词性标注

①分词模式

Jieba 分词有三种不同的分词模式:精确模式、全模式和搜索引擎模式。首先导入 jieba 模式,有句话“大学生活像白纸” 放在一个变量 sentence 当中。有以下三种分词,word 1 里面放的是精确模式 ,使 jieba 里面的函数 cut 来进行分词。传入 sentence, 参数  cut off 和 false 是精确模式, IHMM 是分词背后的技术。

image.gif②分词结果

在分词结果中, phython  里面很方便的一个便利循环叫列表解析式,把分词放在列表中,然后里面使用一种便利,使其循环,即 word for word in words 循环便利,就是一对一把它给迭代找出来,然后把结果输出,再执行一下,就会看到三个结果。

image.gif 

全模式各种可能的切分,只要是词基本上都分出来,搜索引擎模式是为了搜索的时候方便的,如果是在那个框子里面输入搜索词,就能够找到相似的文档。为何要用列表解析式来输出?如果直接 print 分词结果,只是列成一个对象并没有看到结果。如果不想用列表解析式,可以用 jieba 里面的另外一个函数进行切分,执行以后直接是什么就可以输出该列表形式。这是运用到 jieba 里面的子模块 posseg, 而as 是词性标注,然后导出其子模块  “posseg: test =大学生活像白纸”。

image.gif2.如何进行分词标注

在 seg 模块里有一个函数 cut, 将文本传给 cut,用列表解析式输出结果,可看出这是一个 pair 也是一对的一个词性。“大学生”名词,“活像”是一个系动词,然后 pair 后面的“白纸”是一个名词,词性标注可以用 lcut,直接返回列表结果,以上就是 jieba 分词和词性标注。

相关文章
|
数据采集
十、正则表达式详解:掌握强大的文本处理工具(二)
十、正则表达式详解:掌握强大的文本处理工具(二)
|
数据采集 监控 数据处理
九、正则表达式详解:掌握强大的文本处理工具(一)
九、正则表达式详解:掌握强大的文本处理工具(一)
|
数据采集 搜索推荐 算法
十一、正则表达式详解:掌握强大的文本处理工具(三)
十一、正则表达式详解:掌握强大的文本处理工具(三)
|
机器学习/深度学习 自然语言处理 搜索推荐
基本文本处理 1|学习笔记
快速学习基本文本处理 1
基本文本处理 1|学习笔记
|
自然语言处理 开发者 数据格式
基本文本处理 3|学习笔记
快速学习基本文本处理 3
基本文本处理 3|学习笔记
|
自然语言处理 定位技术 开发者
基本文本处理 2|学习笔记
快速学习基本文本处理 2
基本文本处理 2|学习笔记
|
弹性计算 网络协议 NoSQL
Linux指令入门-文本处理
云起冬季实战营第二期:Linux操作系统实战入门。参加复习一下Liunx命令,并简单写一下在日常工作中已开发视角,那些命令比较常用。 第一节Linux指令入门-文本处理。
233 0
Linux指令入门-文本处理
|
Linux 开发工具
Linux指令入门-文本处理,学习有感
Linux指令入门-文本处理
87 0
|
监控 Linux C#
文本处理命令 | 学习笔记
快速学习文本处理命令。
104 0
|
监控
文本处理工具
时间:2017.11.21 作者:李强 参考:man,info,magedu讲义 声明:以下英文纯属个人翻译,英文B级,欢迎纠正,以下内容纯属个人理解,并没有对错,只是参考,盗版不纠,才能有限,希望不误人子弟为好。
594 0