Big data Doc Analyze

简介: 本文介绍了文本分析的基本概念、应用场景及技术细节,涵盖了结构化、半结构化和非结构化数据的概述,重点探讨了中文分词工具如jieba、SnowNLP等,以及中文关键词提取和相似度计算的方法,最后提出了文本分析的架构图和实施步骤,强调了NLP在文本数据处理中的重要性和应用前景。

1 文本分析

1.1文本分析简介

文本分析文本分析是指对文本的表示及其特征项的选取;文本分析是文本挖掘、信息检索的一个基本问题,它把从文本中抽取出的特征词进行量化来表示文本信息。文本(text),与 讯息(message)的意义大致相同,指的是由一定的符号或符码组成的信息结构体,这种结构体可采用不同的表现形态,如语言的、文字的、影像的等等。文本是由特定的人制作的,文本的语义不可避免地会反映人的特定立场、观点、价值和利益。因此,由文本内容分析,可以推断文本提供者的意图和目的。

关键词:文本的表示,文本特征,文本分词,文本情感,文本语义

1.2结构、半结构、非结构数据概述

数据按照结构一般分为三种:结构化数据、非结构化数据和半结构化数据

1.结构化数据

定义:业界指关系模型数据,即以关系数据库表形式管理的数据

简析:虽然专业角度上看,结构化就是关系模型的说法并不准确,但针对目前业内现状,还是定义为关系模型最为妥善,因为它准确的代表了我们传统上最熟悉的企业业务数据。

结构化的数据是指可以使用关系型数据库表示和存储,表现为二维形式的数据。一般特点是:数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。

举个例子:成绩单就是结构化数据

2.半结构化数据

定义:非关系模型的、有基本固定结构模式的数据,例如日志文件、XML文档、JSON文档、Email等。

举个例子

<person>

<name>A</name>

<age>13</age>

<gender>female</gender>

</person>

3.非结构化数据

定义:没有固定模式的数据,如WORD、PDF、PPT、EXL,各种格式的图片、视频等。

简析:区分半结构化与非结构化的意义在于,对两者的处理方法是不同的,非结构化数据大多采用内容管理方法,而半结构化数据基本没有有效的管理方法。

举个例子:文本文件:文字处理、电子表格、演示文稿、电子邮件、日志。

社交媒体:来自新浪微博、微信、QQ、Facebook,Twitter,LinkedIn等平台的数据。

网站: YouTube,Instagram,照片共享网站。

移动数据:短信、位置等。

通讯:聊天、即时消息、电话录音、协作软件等。

媒体:MP3、数码照片、音频文件、视频文件。

业务应用程序:MS Office文档、生产力应用程序。

典型的机器生成的非结构化数据包括:

卫星图像:天气数据、地形、军事活动。

科学数据:石油和天然气勘探、空间勘探、地震图像、大气数据。

数字监控:监控照片和视频。

总结
(1)结构化、半结构化、非结构化其实是按照数据格式分类。

(2)严格讲,结构化与半结构化数据都是有基本固定结构模式的数据

(3)半结构与非结构化数据与目前流行的大数据之间只是有领域重叠的关系,本质讲两者并无必然联系。

(4)业界有将大数据认同为半结构/非结构化数据,是因为大数据技术最初是在半结构化数据领域发挥作用,其本质是将数据处理技术与数据格式混淆,是不正确的。

结构化数据,简单来说就是数据库。结合到典型场景中更容易理解,比如企业ERP、财务系统;医疗HIS数据库;教育一卡通;政府行政审批;其他核心数据库等。这些应用需要哪些存储方案呢?基本包括高速存储应用需求、数据备份需求、数据共享需求以及数据容灾需求。

非结构化数据,包括视频、音频、图片、图像、文档、文本等形式。具体到典型案例中,像是医疗影像系统、教育视频点播、视频监控、国土GIS、设计院、文件服务器(PDM/FTP)、媒体资源管理等具体应用,这些行业对于存储需求包括数据存储、数据备份以及数据共享等。

半结构化数据,包括邮件、HTML、报表、资源库等等,典型场景如邮件系统、WEB集群、教学资源库、数据挖掘系统、档案系统等等。这些应用对于数据存储、数据备份、数据共享以及数据归档 等基本存储需求。

参考文献:

何小朝. 纵横大数据[M]. 电子工业出版社, 2014.
---------------------

参考文章:
https://blog.csdn.net/qq_25353433/article/details/81451310

1.3文本分析应用

文本分析的应用场景:词云,词频, 舆情分析,智能客服,情感分析,词语网路分析,信息分类,意见提取,文本聚类,知识图谱等等不一而足。

2 中文分词

中文分词工具:1 jieba

" 结巴"中文分词:做最好的Python中文分词组件 “Jieba”

更新时间:2020年

官网地址:https://github.com/fxsjy/jieba

特点:

支持三种分词模式:

精确模式,试图将句子最精确地切开,适合文本分析;

全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义

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

支持繁体分词

支持自定义词典

2 SnowNLP

SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的

更新时间:2017年

官网地址:https://github.com/isnowfy/snownlp

特点:

中文分词(Character-Based Generative Model)

词性标注(TnT 3-gram 隐马)

情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)

文本分类(Naive Bayes)

网友测试:特别慢

3 北京大学PKUse

官网有关于PKUse、THULAC、jieba的对比情况,可参考

pkuseg:一个多领域中文分词工具包

更新时间:2019年

官网地址:https://github.com/lancopku/pkuseg-python#%E8%AE%BA%E6%96%87%E5%BC%95%E7%94%A8

特点:

多领域分词。不同于以往的通用中文分词工具,此工具包同时致力于为不同领域的数据提供个性化的预训练模型

更高的分词准确率。

支持用户自训练模型。

支持词性标注。

4 清华大学THULAC

官网有关于LTP、THULAC、jieba、ICTCLAS的对比情况,可参考

THULAC清华大学:一个高效的中文词法分析工具包

更新时间:2018年

官网地址:https://github.com/thunlp/THULAC-Python

THULAC(THU Lexical Analyzer for Chinese)由清华大学自然语言处理与社会人文计算实验室研制推出的一套中文词法分析工具包,具有中文分词和词性标注功能。

THULAC具有如下几个特点:

能力强。利用我们集成的目前世界上规模最大的人工分词和词性标注中文语料库(约含5800万字)训练而成,模型标注能力强大。

准确率高。该工具包在标准数据集Chinese Treebank(CTB5)上分词的F1值可达97.3%,词性标注的F1值可达到92.9%,与该数据集上最好方法效果相当。

速度较快。同时进行分词和词性标注速度为300KB/s,每秒可处理约15万字。只进行分词速度可达到1.3MB/s。

5 HanLP

HanLP面向生产环境的多语种自然语言处理工具包,基于 TensorFlow 2.0,目标是普及落地最前沿的NLP技术

更新时间:2020年

官网地址:http://hanlp.com/

Github地址:https://github.com/hankcs/HanLP

特点:

HanLP具备功能完善、性能高效、架构清晰、语料时新、可自定义的特点。

6 FoolNLTK

FoolNLTK可能不是最快的开源中文分词,但很可能是最准的开源中文分词

更新时间:2018年

官网地址:https://github.com/rockyzhengwu/FoolNLTK/blob/master/README_CH.md

特点:

可能不是最快的开源中文分词,但很可能是最准的开源中文分词

基于BiLSTM模型训练而成

包含分词,词性标注,实体识别, 都有比较高的准确率

用户自定义词典

可训练自己的模型

批量处理

7 哈工大LTP

语言技术平台(Language Technology Platform,LTP)是哈工大社会计算与信息检索研究中心历时十年开发的一整套中文语言处理系统。

LTP制定了基于XML的语言处理结果表示,并在此基础上提供了一整套自底向上的丰富而且高效的中文语言处理模块(包括词法、句法、语义等6项中文处理核心技术),以及基于动态链接库(Dynamic Link Library, DLL)的应用程序接口、可视化工具,并且能够以网络服务(Web Service)的形式进行使用。

更新时间:2019年

官方网站:https://www.ltp-cloud.com/

GIthub地址:https://github.com/HIT-SCIR/ltp

特点:

主页上给过调用接口,每秒请求的次数有限制。

8 斯坦福分词器CoreNLP

Stanford CoreNLP提供了一组用Java编写的自然语言分析工具。

更新时间:2020年

Github地址:https://github.com/stanfordnlp/CoreNLP

特点:

斯坦福的各个工具都有相关文献可以深入学习原理,这点是一大优势。而且算法基本上都是最新或者最优的。java编写。

9 BaiduLac

Lexical Analysis of Chinese,简称 LAC,是一个联合的词法分析模型,在单个模型中完成中文分词、词性标注、专名识别任务。

更新时间:2019年

Github地址:https://github.com/baidu/lac

特点:

工程中使用

依赖Paddle v0.14.0版本。

定制化功能

参考文章:

https://blog.csdn.net/zzzzlei123123123/article/details/104227223

10 jcseg中文分词

jcseg 是使用 Java 开发的一款开源的中文分词器, 使用 mmseg 算法. 分词准确率高达
98.4%, 支持中文人名识别, 同义词匹配, 停止词过滤等。

地址:https://gitee.com/lionsoul/jcseg

jcseg 支持三种切分模式:
(1). 简易模式:FMM算法,适合速度要求场合。

(2). 复杂模式-MMSEG四种过滤算法,具有较高的岐义去除,分词准确率达到了98.41%。

(3). 检测模式:只返回词库中已有的词条,很适合某些应用场合。(1.9.4开始)
https://gitee.com/lionsoul/jcseg

特点:

就分词效率而言,简易模式速度最快

jcseg词库配置丰富,自我感觉功能最强大,详见jcseg开发文档;

3 中文关键词提取

文本关键词抽取,是对文本信息进行高度凝练的一种有效手段,通过3-5个词语准确概括文本的主题,帮助读者快速理解文本信息。目前,用于文本关键词提取的主要方法有四种:基于TF-IDF的关键词抽取、基于TextRank的关键词抽取、基于Word2Vec词聚类的关键词抽取,以及多种算法相融合的关键词抽取。笔者在使用前三种算法进行关键词抽取的学习过程中,发现采用TF-IDF和TextRank方法进行关键词抽取在网上有很多的例子,代码和步骤也比较简单,但是采用Word2Vec词聚类方法时网上的资料并未把过程和步骤表达的很清晰。因此,本文分别采用TF-IDF方法、TextRank方法和Word2Vec词聚类方法实现对专利文本(同样适用于其它类型文本)的关键词抽取,通过理论与实践相结合的方式,一步步了解、学习、实现中文文本关键词抽取。

具体详情本文不做赘述,具体可自行了解,本次采用Word2Ve进行词聚类的关键词抽取。

4 相似度计算

相似度度量(Similarity),即计算个体间的相似程度,相似度度量的值越小,说明个体间相似度越小,相似度的值越大说明个体差异越大。

对于多个不同的文本或者短文本对话消息要来计算他们之间的相似度如何,一个好的做法就是将这些文本中词语,映射到向量空间,形成文本中文字和向量数据的映射关系,通过计算几个或者多个不同的向量的差异的大小,来计算文本的相似度。下面介绍一个详细成熟的向量空间余弦相似度方法计算相似度

向量空间余弦相似度(Cosine Similarity)

余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近1,就表明夹角越接近0度,也就是两个向量越相似,这就叫"余弦相似性"。


上图两个向量a,b的夹角很小可以说a向量和b向量有很高的的相似性,极端情况下,a和b向量完全重合。如下图:

上图中:可以认为a和b向量是相等的,也即a,b向量代表的文本是完全相似的,或者说是相等的。如果a和b向量夹角较大,或者反方向。

如上图三: 两个向量a,b的夹角很大可以说a向量和b向量有很底的的相似性,或者说a和b向量代表的文本基本不相似。那么是否可以用两个向量的夹角大小的函数值来计算个体的相似度呢?

向量空间余弦相似度理论就是基于上述来计算个体相似度的一种方法。

参考文章:

https://www.jianshu.com/p/5619e73e1322

注:以后会详细介绍此方法,如果文本十分相似,只有几个字对不上,建议使用编辑距离。

5 文本分析架构图

思路:第一版本先使用无监督学习,将项目中PDF转换为TXT---->使用jcesg进行中文分析---->停用词维护---->中文关键词提取---->相似度计算---->输出文本相似度比值

第二版本使用有监督学习训练模型,将项目中PDF转换为TXT---->使用embedding进行文本提取---->bert文本模型预训练---->词义分析---->输出文本训练模型

6 文本分析感想

文本分析NLP(自然语言处理)是人工智能的一个领域,研究计算机和人类语言之间的交互,特别是如何编程计算机来处理和分析大量的自然语言数据。NLP经常被应用于文本数据的分类。文本分类是根据文本数据的内容给文本数据分配类别的问题。文本分类最重要的部分是特征工程:从原始文本数据为机器学习模型创建特征的过程。

最建议使用Python训练模型,各个项目情况不同,可以使用现有类库的情况下,微调模型。

现在提取文字embedding文本相似要得到好的结果基本离不开bert这类的预训练模型。

相关文章
|
4天前
|
人工智能 自动驾驶 大数据
预告 | 阿里云邀您参加2024中国生成式AI大会上海站,马上报名
大会以“智能跃进 创造无限”为主题,设置主会场峰会、分会场研讨会及展览区,聚焦大模型、AI Infra等热点议题。阿里云智算集群产品解决方案负责人丛培岩将出席并发表《高性能智算集群设计思考与实践》主题演讲。观众报名现已开放。
|
20天前
|
存储 人工智能 弹性计算
阿里云弹性计算_加速计算专场精华概览 | 2024云栖大会回顾
2024年9月19-21日,2024云栖大会在杭州云栖小镇举行,阿里云智能集团资深技术专家、异构计算产品技术负责人王超等多位产品、技术专家,共同带来了题为《AI Infra的前沿技术与应用实践》的专场session。本次专场重点介绍了阿里云AI Infra 产品架构与技术能力,及用户如何使用阿里云灵骏产品进行AI大模型开发、训练和应用。围绕当下大模型训练和推理的技术难点,专家们分享了如何在阿里云上实现稳定、高效、经济的大模型训练,并通过多个客户案例展示了云上大模型训练的显著优势。
|
24天前
|
存储 人工智能 调度
阿里云吴结生:高性能计算持续创新,响应数据+AI时代的多元化负载需求
在数字化转型的大潮中,每家公司都在积极探索如何利用数据驱动业务增长,而AI技术的快速发展更是加速了这一进程。
|
15天前
|
并行计算 前端开发 物联网
全网首发!真·从0到1!万字长文带你入门Qwen2.5-Coder——介绍、体验、本地部署及简单微调
2024年11月12日,阿里云通义大模型团队正式开源通义千问代码模型全系列,包括6款Qwen2.5-Coder模型,每个规模包含Base和Instruct两个版本。其中32B尺寸的旗舰代码模型在多项基准评测中取得开源最佳成绩,成为全球最强开源代码模型,多项关键能力超越GPT-4o。Qwen2.5-Coder具备强大、多样和实用等优点,通过持续训练,结合源代码、文本代码混合数据及合成数据,显著提升了代码生成、推理和修复等核心任务的性能。此外,该模型还支持多种编程语言,并在人类偏好对齐方面表现出色。本文为周周的奇妙编程原创,阿里云社区首发,未经同意不得转载。
11538 10
|
9天前
|
人工智能 自然语言处理 前端开发
100个降噪蓝牙耳机免费领,用通义灵码从 0 开始打造一个完整APP
打开手机,录制下你完成的代码效果,发布到你的社交媒体,前 100 个@玺哥超Carry、@通义灵码的粉丝,可以免费获得一个降噪蓝牙耳机。
3971 13
|
16天前
|
人工智能 自然语言处理 前端开发
用通义灵码,从 0 开始打造一个完整APP,无需编程经验就可以完成
通义灵码携手科技博主@玺哥超carry 打造全网第一个完整的、面向普通人的自然语言编程教程。完全使用 AI,再配合简单易懂的方法,只要你会打字,就能真正做出一个完整的应用。本教程完全免费,而且为大家准备了 100 个降噪蓝牙耳机,送给前 100 个完成的粉丝。获奖的方式非常简单,只要你跟着教程完成第一课的内容就能获得。
6640 10
|
27天前
|
缓存 监控 Linux
Python 实时获取Linux服务器信息
Python 实时获取Linux服务器信息
|
13天前
|
人工智能 自然语言处理 前端开发
什么?!通义千问也可以在线开发应用了?!
阿里巴巴推出的通义千问,是一个超大规模语言模型,旨在高效处理信息和生成创意内容。它不仅能在创意文案、办公助理、学习助手等领域提供丰富交互体验,还支持定制化解决方案。近日,通义千问推出代码模式,基于Qwen2.5-Coder模型,用户即使不懂编程也能用自然语言生成应用,如个人简历、2048小游戏等。该模式通过预置模板和灵活的自定义选项,极大简化了应用开发过程,助力用户快速实现创意。
|
2天前
|
机器学习/深度学习 人工智能 安全
通义千问开源的QwQ模型,一个会思考的AI,百炼邀您第一时间体验
Qwen团队推出新成员QwQ-32B-Preview,专注于增强AI推理能力。通过深入探索和试验,该模型在数学和编程领域展现了卓越的理解力,但仍在学习和完善中。目前,QwQ-32B-Preview已上线阿里云百炼平台,提供免费体验。
|
10天前
|
人工智能 C++ iOS开发
ollama + qwen2.5-coder + VS Code + Continue 实现本地AI 辅助写代码
本文介绍在Apple M4 MacOS环境下搭建Ollama和qwen2.5-coder模型的过程。首先通过官网或Brew安装Ollama,然后下载qwen2.5-coder模型,可通过终端命令`ollama run qwen2.5-coder`启动模型进行测试。最后,在VS Code中安装Continue插件,并配置qwen2.5-coder模型用于代码开发辅助。
689 4