乐趣区

关于数据挖掘:R语言自然语言处理NLP情感分析上市公司文本信息知识发现可视化

全文链接:http://tecdat.cn/?p=31702

原文出处:拓端数据部落公众号

情感剖析,就是依据一段文本,剖析其表白情感的技术。比较简单的情感剖析,可能分别文本内容是踊跃的还是消极的(贬义 / 贬义);比较复杂的情感剖析,可能晓得这些文字是否流露出恐怖、怄气、狂喜等细致入微的情感。此外,情感的二元个性还能够表白为是否含有较大的感情稳定。也就是说,狂喜和暴怒都属于感情稳定,而宠辱不惊则属于稳固的情感状态。

钻研目标

本文基于 R 语言的自然语言解决技术,针对企业的财务信息、产品质量等文本信息,帮忙客户对企业和产品进行情感剖析和情感分类,并将这些数据可视化出现。本文抉择了 A 股上市公司相干数据,通过构建 R 语言的文本情感分析模型对文本情感进行剖析,并以此为根底对企业进行情感分类。
 
附件阐明:其中根底词典是要通过文本开掘的后果扩大的词典了,也是钻研的次要目标(分词的时候能够用到);

语料库资源是要进行文本开掘的数据源。

钻研的目标就是在文本剖析后果的根底上扩大用户词典,这些须要在文本开掘的根底上进行扩大。其中语料库一共是 10 个文件,须要的是一个文件出一个后果。最初是要比照这 10 个文件的。还有就是语料库是 pdf 格局。

呈现的后果应该是相似这种的:

 

中文财务关键词 05 年 06 年 07 年 08 年
负面词 184 107    
侧面词 48 66    
不确定词 22 19    
诉权词 57 31

读取词库数据


Litigious=read.table("Litigious Words.txt")  
Strong=read.table("Modal Words Strong.txt")  
Weak=read.table("Modal Words Weak .txt")  
Positive=read.table("Positive Words.txt")  
Uncertainty=read.table("Uncertainty Words.txt")  
Negative=read.table("Negative Words .txt")

文本清理和分词


qrxdata=gsub("\n","",qrxdata)  
words= lapply(X=qrxdata, FUN=segmentCN) ;

初始化统计后果

x=words  
pwords=positive  
nwords=negative  
Litigious=Litigious  
Strong=Strong  
Weak=Weak  
Uncertainty=Uncertainty  
  
  
npwords=0  
nnwords=0  
nLitigious=0  
nStrong=0  
nWeak=0  
nUncertainty=0
emotionType <-numeric(0)  
xLen <-length(x)  
emotionType[1:xLen]<- 0  
index <- 1

词法剖析

词法剖析。它的原理非常简单,事先须要定义一个情感词典。比方“喜爱”这个词咱们定义为 1 分。那么“我喜爱你”这句话,“我”和“你”都是中性词,均为 0 分,“喜爱”为 1 分,这句话的总分就是 1 分。“我喜爱你,但厌恶他”,这样一句话中有“厌恶”这个词,在情感词典中分数为“-1”,那么整句话的得分就是 0。这样,咱们就能够对每一个文本进行分词,而后应用内连贯(inner join)来提取其中的情感词语,并依据情感词语的得分,来评估这段文本的情感得分。


for(index in 1: xLen){x[[index]]=unique(x[[index]])  
  yLen <-length(x[[index]])  
  index2 <- 1  
  for(index2 in 1 :yLen){if(length(pwords[pwords==x[[index]][index2]]) >= 1){i=pwords[pwords==x[[index]][index2]]  
      npwords=npwords+length(pwords[pwords==x[[index]][index2]])  
      if(length(i)==0)next;  
      duanluo=substr(qrxdata[index],regexpr(i,qrxdata[index])[1]-20,regexpr(i,qrxdata[index])[1]+20)  
      if(regexpr(i,duanluo)[1]<0 )next;  
      cat(studentID,"\t",i,"\t","DOC",index,"\t","pos","\t",duanluo,"\t",length(pwords[pwords==x[[index]][index2]])/length(x[[index]])," \

按年份和词性分类汇总成表格

1=data.frame("侧面词"=npwords,"负面词"=nnwords,"不确定词"=nUncertainty,"诉权词"=nLitigious,  
                "强语气词"=nStrong,"弱语气词"=nWeak)  
  


 =rbind(,1)  
  
  

ggplot 可视化

将每个文档的词性输入,并依照词性和年份绘制变化趋势:


最受欢迎的见解

1.Python 主题建模 LDA 模型、t-SNE 降维聚类、词云可视化文本开掘新闻组

2.R 语言文本开掘、情感剖析和可视化哈利波特小说文本数据

3.r 语言文本开掘 tf-idf 主题建模,情感剖析 n -gram 建模钻研

4. 游记数据感知游览目的地形象

5. 疫情下的新闻数据察看

6.python 主题 lda 建模和 t -sne 可视化

7.r 语言中对文本数据进行主题模型 topic-modeling 剖析

8. 主题模型:数据凝听人民网留言板的那些“网事”

9.python 爬虫进行 web 抓取 lda 主题语义数据分析

退出移动版