NLP 文本分析

Used for self-study only; please inform us if the proper-usage is doubted.

The form of charging is not used for creating intrest but to alleviating its unrestricted  communication through open network.

文本分析或自然语言处理NLP的主要任务
文本索引与检索(Indexing and Search)
文本分类(Text Classification)
文本摘要(Document Summarization)
文本信息抽取(Text Information Extraction)
情感分析(Sentiment Analysis)

文本分类的定义(CLR)
文本分类是把文档集合中的每个文档,划分到一个预先定义的主题类别。
判断Email是正常邮件和垃圾邮件,二分类问题。
>> 新闻主题分类:判断新闻属于哪个类别,如财经、体育、娱乐等
>> 自动问答系统中的问句分类:问句类型 Chat-GPT(预训练模型+小样本学习)
>> 智慧司法: 基于案件事实描述文本的罚金等级分类(多分类)

文本分类系统的一般步骤:
1.预处理输入文本
2.特征提取,得到文本表示
3.分类器分类

对于分类器的设计,有包括k最近邻、朴素贝叶斯、支持向量机和决策树在内的许多算法。

信息抽取(IE, Information Extraction)
简称IE,即从自然语言文本中,抽取出特定的事件或事实信息,帮助我们将海量内容自动分类、提取和重构。这些信息通常包括指定类型的实体(entity)、关系(relation)、事件(event)
从新闻中抽取时间、地点、关键人物
从技术文档中抽取产品名称、开发时间、性能指标等
从自然语言中抽取用户感兴趣的事实信息,无论是在知识图谱、信息检索、问答系统还是在情感分析、文本挖掘中,信息抽取都有广泛应用。

信息抽取主要包含三大子任务
关系抽取:通常我们说的三元组(triple)抽取,主要用于抽取实体间的关系。
实体抽取与链指:也就是命名实体识别(named entity recognition, NER)
事件抽取:相当于一种多元关系的抽取。


关系信息抽取常用数据集
ACE关系抽取任务数据集:ACE2005关系抽取数据集包含599篇与新闻和邮件相关的文档,其数据集内包含7大类25小类关系。

SemEval2010 Task 8数据集:该数据集包含9种关系类型,分别是Compoent-Whole、Instrument-Agency、Member-Collection、Cause-Effect、Entity-Destination、Content-Container、Message-Topic、Product-Producer和Entity-Origin。考虑到实体之间关系的方向以及不属于前面9种关系的Other关系,共生成19类实体关系。其中训练数据 8000个,测试数据2717个。

NYT2010数据集:是Riedel等人在2010年将Freebase知识库中的知识“三元组”对齐到“纽约时报”新闻中得到的训练数据。该数据集中,数据的单位是句包,一个句包由包含该实体对的若干句子构成。其中,训练数据集从《纽约时报》2005-2006年语料库中获取,测试集从2007年语料库中获取。

Kaggle

天池大数据众智平台-阿里云天池

Datawhale

情感分析的定义
情感分析,是NLP领域的主要问题之一。主要研究人们针对实体(包括产品、服务、组织、机构、事件、话题等)表达出来的主观观点、情感、评价、态度和情绪。

情感分析任务:包括情感分类、观点抽取、观点问答以及观点摘要等。
其中情感分类是情感分析领域研究最广的问题。

情感分类是指根据文本所表达的含义和情感信息将文本划分成褒扬、贬义、中性或具体的类型。例如,“品牌M汽车的油耗很高”、“品牌J汽车的性价比相当的高”、“品牌Z汽车有1m多高”。
第一句表达了贬义的情感倾向
第二句表达了褒扬的情感倾向
第三句则表述了一个事实,没有情感倾向。

文本摘要
 指通过各种技术,对文本或者是文本集合,抽取、总结或精炼其中的要点信息,用以概括和展示原始文本(集合)的主要内容或大意

机器翻译
机器翻译是将一种语言的文本,转换为另一种语言的文本。

话题检测与跟踪(Topic Detection and Tracking, TDT) 舆情分析
指从新闻等数据流中,识别不同的事件,并且对其进行跟踪的自动化技术。在话题检测和跟踪任务中,“话题”也称为“事件”。

问答系统
问答系统是信息检索系统的一种高级形式。它能用准确、简洁的自然语言回答用户用自然语言提出的问题。

7.2 Python文本分析库
Jieba库 
Jieba是一款优秀的 Python 第三方中文分词库,可以对中文文本进行分词、词性标注、关键词抽取等功能,并支持自定义词典。

NLTK库
 Natural Language Toolkit,自然语言处理工具包。大概是NLP领域最为著名的一个Python库。

其它NLP库
HanLP:Han Language Processing,汉语言处理包。功能包括:中文分词、词性标注、命名实体识别、依存句法分析、关键词提取、新词发现、短语提取、自动摘要、文本分类、拼音简繁。地址: http:// https://github.com/hankcs/HanLP
Stanford NLP:提供一系列自然语言分析的工具,支持中文、英文、阿拉伯语、法语、德语、西班牙语等多种语言。地址:http:// https://stanfordnlp.github.io/CoreNLP/
Gensim:可以用来从文档中自动提取语义主题,含众多非监督学习算法:TF/IDF,潜在语义分析(Latent Semantic Analysis,LSA) 等。还支持Word2Vec,Doc2Vec等模型。 地址:https://radimrehurek.com/gensim/

Jieba库的安装
Jieba库为优秀的中文分词第三方库,没有被集成在Anaconda中,
需额外安装,安装方式:pip install jieba

Jieba分词
Jieba分词有三种不同的分词模式:精确模式、全模式和搜索引擎模式
精确模式是最常用的分词方法。

全模式将句子中所有可能的词都列举出来。

搜索引擎模式则适用于搜索引擎使用。

#函数    描述
jieba.cut(s)    #精确模式,返回一个可迭代的数据类型
jieba.cut(s,cut_all=True)    #全模式,输出文本s中所有可能单词
jieba.cut_for_search(s)    #搜索引擎模式,适合搜索引擎建立索引的分词结果
jieba.lcut(s)    #精确模式,返回一个 列表类型,建议使用
jieba.lcut(s,cut_all=True)    #全模式,返回一个列表类型,建议使用
jieba.lcut_for_search(s)    #搜索引擎模式,返回一个列表类型,建议使用
jieba.add_word(w)    #向分词词典中增加新词W
jieba.del_word(w)    #从分词词典中删除词汇W

jieba关键词抽取
基于 TF-IDF 算法的关键词抽取以及基于 TextRank 算法的关键词抽取


NLTK (Natural Language Toolkit)
包含分词、词干提取、语法树分析、词性标注、命名实体识别、短语识别以及文本分类等文本处理功能。主要应用于英文数据,历史悠久。

语料库安装:Anaconda已集成nltk。进行“import nltk” 测试,是否会报错?
然而,nltk需配置大量语料库,尝试nltk.download()下载至本地,但很可能报错!

若无法通过nltk.download()自动下载,可尝试从github下载至本地: https://github.com/nltk/nltk_data/tree/gh-pages获得nltk_data-gh-pages.zip文件,解压后将文件中packages文件夹的全部子目录放置在nltk搜索的任意一个路径下,如‘E:\\nltk_data’ (若还不存在,则创建):

Case 1: 分句与分词
注:运行以上程序可能还会出现右图所示的报错提醒。解决办法: 解压语料库文件夹“nltk_data\tokenizers”中的punkt.zip文件即可

Case 2: 词性标注
进行词性标注,需要使用nltk.pos_tag(tokens)函数,其中tokens是句子分词后的结果。词性标注是句子级的标注。

Case 3: 命名实体识别(Named Entity Recognition,简称NER)
NER任务的目标是识别出待处理文本中指定的实体类别:
三大类(实体类、时间类和数字类)
七小类(人名、机构名、地名、时间、日期、货币和百分比)命名实体。
九小类
PERSON: 人名,如President Obama
ORGANIZATION机构名,如WHO、ISRO
LOCATION:地点,如Murray River
DATE: 日期,如June、2008-06-29
TIME时间,如12:30:00 AM
MONEY货币,如Twenty dollars,100 GBP
PERCENT百分比,如20%, twenty pct.
FACILITY设施,如Washington Monument
GPE: 地缘政治实体,如 South East Asia, North America

Case 3: 命名实体识别(Named Entity Recognition,简称NER)
通过调用nltk.ne_chunk函数,可以进行命名实体识别。
需要把参数tags,即句子词性标注的结果,传递给ne_chunk函数。

命名实体识别(多个句子情形)

Case 4: 去除停用词(Stopwords)
停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言数据(或文本)之前或之后会自动过滤掉某些字或词,这些字或词即被称为Stop Words(停用词)。

Case 5: 情感分析
使用NLTK,可以对文本进行情感分析,确定其情感倾向。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值