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

简介: 快速学习基本文本处理 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 分词和词性标注。

相关文章
|
应用服务中间件 nginx
流媒体技术学习笔记之(十四)FFmpeg进行笔记本摄像头+麦克风实现流媒体直播服务
FFmpeg推送视频流,Nginx RTMP模块转发,VLC播放器播放,实现整个RTMP直播 查看本机电脑的设备 ffmpeg -list_devices true -f dshow -i dummy 红色标记表示视频设备和麦克风设备 看到乱码了吧!来这里查看哦   FFmpeg编码推送到R...
3912 0
|
10月前
|
机器学习/深度学习 文字识别 自然语言处理
分析对比大模型OCR、传统OCR和深度学习OCR
OCR技术近年来迅速普及,广泛应用于文件扫描、快递单号识别、车牌识别及日常翻译等场景,极大提升了便利性。其发展历程从传统方法(基于模板匹配和手工特征设计)到深度学习(采用CNN、LSTM等自动学习高级语义特征),再到大模型OCR(基于Transformer架构,支持跨场景泛化和少样本学习)。每种技术在特定场景下各有优劣:传统OCR适合实时场景,深度学习OCR精度高但依赖大量数据,大模型OCR泛化能力强但训练成本高。未来,大模型OCR将结合多模态预训练,向通用文字理解方向发展,与深度学习OCR形成互补生态,最大化平衡成本与性能。
|
8月前
|
存储 缓存 固态存储
C盘清理终极指南:释放宝贵空间的有效技巧
C盘空间不足?别担心!本文《C盘清理终极指南》为你提供从基础到深度的全方位清理技巧。通过系统自带工具、手动删除无用文件、专业软件分析,再到系统设置优化与应用程序管理,助你高效释放磁盘空间,提升电脑性能。特别提示:清理前请备份重要数据,避免误删。按此指南操作,轻松解决C盘臃肿问题,让电脑重焕活力!
3819 0
|
11月前
|
存储 编解码 算法
基于FPGA的直接数字频率合成器verilog实现,包含testbench
本项目基于Vivado 2019.2实现DDS算法,提供完整无水印运行效果预览。DDS(直接数字频率合成器)通过数字信号处理技术生成特定频率和相位的正弦波,核心组件包括相位累加器、正弦查找表和DAC。相位累加器在每个时钟周期累加频率控制字,正弦查找表根据相位值输出幅度,DAC将数字信号转换为模拟电压。项目代码包含详细中文注释及操作视频。
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
在40岁老架构师尼恩的读者交流群中,近期有小伙伴在面试一线互联网企业时遇到了关于Redis分布式锁过期及自动续期的问题。尼恩对此进行了系统化的梳理,介绍了两种核心解决方案:一是通过增加版本号实现乐观锁,二是利用watch dog自动续期机制。后者通过后台线程定期检查锁的状态并在必要时延长锁的过期时间,确保锁不会因超时而意外释放。尼恩还分享了详细的代码实现和原理分析,帮助读者深入理解并掌握这些技术点,以便在面试中自信应对相关问题。更多技术细节和面试准备资料可在尼恩的技术文章和《尼恩Java面试宝典》中获取。
美团面试:Redis锁如何续期?Redis锁超时,任务没完怎么办?
|
easyexcel API 数据库
EasyExcel复杂excel导入
EasyExcel复杂excel导入
1413 1
|
达摩院 API C#
阿里达摩院MindOpt优化求解器-月刊(2024年1月)
MindOpt优化求解器 V1.1.0 发布,LP和MILP性能提升,新增C# API等多功能,详解如何使用这些新功能。新增旅行商TSP问题案例,假期如何旅游省路费, 主交通费¥900 内,就可跨5省游10城!TSP问题中MTZ消除子环的方法详解。公众号博文《四年求一解,一群达摩院数学家的极限挑战》讲解MindOpt团队成员的成长故事。
302 0
阿里达摩院MindOpt优化求解器-月刊(2024年1月)
NR PRACH(三)时域位置
由l0、N_RA_slot、N_RA_t和N_RA_dur,UE可以计算出所有RACH时机的起始符号l,公式为l = l0 + n_RA_t x N_RA_dur + 14 x n_RA_slot。其中的参数由table 6.3.3.2-2~4 得到,计算即可确定start symbol的位置,既然都这么说了,表中的starting symbol l0 肯定不是起始符号的索引,我最初犯的就是这个错误。
|
Web App开发 JavaScript 前端开发
强大的矢量图形库:Raphael JS 中文帮助文档及教程
  Raphael 是一个用于在网页中绘制矢量图形的 Javascript 库。它使用 SVG W3C 推荐标准和 VML 作为创建图形的基础,你可以通过 JavaScript 操作 DOM 来轻松创建出各种复杂的柱状图、饼图、曲线图等各种图表,还可以绘制任意形状的图形,可以进行图表或图像的裁剪和旋转等复杂操作。
3135 0
|
API PHP CDN
PHP实现随机小姐姐扭一扭、学英语短视频Api接口搭建详细教程
PHP实现随机小姐姐扭一扭、学英语短视频Api接口搭建详细教程
1356 0