(4.2)基于LingPipe的文本基本极性分析【demo】
酒店评论情感分析系统(四)——
基于LingPipe的文本基本极性分析【demo】
(Positive (favorable) vs. Negative (unfavorable))
这篇文章为LingPipe官方网站对于Sentiment Ananlysis的学习所给出学习材料;
http://alias-i.com/lingpipe/demos/tutorial/sentiment/read-me.html
官方网站中的学习材料是通过使用逻辑回归分类器基于一定的语言模型对电影评论赋予一定的情感,其中包括两种常见的情感分类问题:
a) 主观性和客观性情感分析
b) 积极性和消极性情感分析
但是此处,我只学习了积极性和消极性情感分析。
下载语料库
此处使用Lilian Lee 和Bo Pang提供的已经完成了极性标注的电影评论语料库Movie Review Data的polarity dataset v2.0,其中包含1000个正面的文本和1000个负面文本,全英文的。如果语料库是中文版的话,则需要下载LingPipe中的Chinese Word Segmentation模块。
基本极性分析
我们以一个简单的分类练习作为开始,即基于布尔极性数据来训练和测试基本分类器,并使产生的分类器能够判断电影评论实质上是积极的或是消极的。
官方网站上的demo是通过命令行的形式读入语料库所在的目录位置,然后基于训练集训练出一个分类器,再基于测试集评估此分类器的正确性。此处我将其变更为以文件的形式读取语料库所在的位置。
1. 前提条件:
1) 在Eclipse中新建一个名为SentimentAnalysis工程,配置LingPipe开源包
2) 在SentimentAnalysis工程下创建一个目录POLARITY_DIR,里面放置语料库polarity dataset v2.0的解压缩文件txt_sentoken。
aaarticlea/png;base64,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" alt="" />
2. 极性分析代码
新建一个类名为PolarityBasic。
① Main函数
1 public static void main(String[] args) {
2 try {
3 new PolarityBasic().run();
4 } catch (Throwable t) {
5 System.out.println("Thrown: " + t);
6 t.printStackTrace(System.out);
7 }
8 }
② 元参数和构造函数
1 File mPolarityDir;
2 String[] mCategories;
3 DynamicLMClassifier<NGramProcessLM> mClassifier;
4
5 PolarityBasic() {
6 System.out.println("\nBASIC POLARITY DEMO");
7 mPolarityDir = new File("POLARITY_DIR/txt_sentoken"); //获取POLARITY_DIR/txt_sentoken中的语料集
8 mCategories = mPolarityDir.list(); //获取类别neg,pos
9 int nGram = 8;
10 mClassifier = DynamicLMClassifier.createNGramProcess(mCategories,nGram); //使用N-Gram分类方法
11 }
基本极性分析中分类器的构造直接使用的是LingPipe的DynamicLMClassifier。
③ 训练
1 //仅仅先调用训练函数,再调用评估函数
2 void run() throws ClassNotFoundException, IOException {
3 train();
4 evaluate();
5 }
6
7 //我们需要一份测试集和一个训练集,但是我们只有一个语料库,只有人为分割
8 //如果文件名的第2位为9就是训练集
9 boolean isTrainingFile(File file) { //是否是训练集
10 return file.getName().charAt(2) != '9'; // test on fold 9
11 }
12
13 //分类器训练
14 void train() throws IOException {
15 int numTrainingCases = 0; //训练文本数
16 int numTrainingChars = 0; //训练字符数
17 System.out.println("\nTraining.");
18 for (int i = 0; i < mCategories.length; ++i) {
19 String category = mCategories[i];
20 Classification classification = new Classification(category);
21 File file = new File(mPolarityDir,mCategories[i]);
22 File[] trainFiles = file.listFiles();
23 for (int j = 0; j < trainFiles.length; ++j) {
24 File trainFile = trainFiles[j];
25 if (isTrainingFile(trainFile)) { //判断一下是为了让一部分数据作为训练集、一部分作为测试集
26 ++numTrainingCases;
27 String review = Files.readFromFile(trainFile,"ISO-8859-1"); //文本类容
28 numTrainingChars += review.length();
29 Classified<CharSequence> classified =
30 new Classified<CharSequence>(review,classification); //指定内容和类别
31 mClassifier.handle(classified); //训练
32 }
33 }
34 }
35 System.out.println(" # Training Cases=" + numTrainingCases); //训练集文件数
36 System.out.println(" # Training Chars=" + numTrainingChars); //训练集字符总和
37 }
④ 评估
1 //评估
2 void evaluate() throws IOException {
3 System.out.println("\nEvaluating.");
4 int numTests = 0;
5 int numCorrect = 0;
6 for (int i = 0; i < mCategories.length; ++i) {
7 String category = mCategories[i];
8 File file = new File(mPolarityDir,mCategories[i]);
9 File[] trainFiles = file.listFiles();
10 for (int j = 0; j < trainFiles.length; ++j) {
11 File trainFile = trainFiles[j];
12 if (!isTrainingFile(trainFile)) { //测试集
13 String review = Files.readFromFile(trainFile,"ISO-8859-1");
14 ++numTests;
15 Classification classification = mClassifier.classify(review); //对测试集文本进行分类
16 if (classification.bestCategory().equals(category)){ //分类器决策文本所属类=文本原标注所属类,即正确
17 ++numCorrect;
18 }
19 }
20 }
21 }
22 System.out.println(" # Test Cases=" + numTests); //测试文件数
23 System.out.println(" # Correct=" + numCorrect); //正确数
24 System.out.println(" % Correct=" + ((double)numCorrect)/(double)numTests); //正确率
25 }
⑤ 运行结果
BASIC POLARITY DEMO Training.
# Training Cases=1800
# Training Chars=6989652 Evaluating.
# Test Cases=200
# Correct=163
% Correct=0.815
(4.2)基于LingPipe的文本基本极性分析【demo】的更多相关文章
- tensorflow实现基于LSTM的文本分类方法
tensorflow实现基于LSTM的文本分类方法 作者:u010223750 引言 学习一段时间的tensor flow之后,想找个项目试试手,然后想起了之前在看Theano教程中的一个文本分类的实 ...
- 一文详解如何用 TensorFlow 实现基于 LSTM 的文本分类(附源码)
雷锋网按:本文作者陆池,原文载于作者个人博客,雷锋网已获授权. 引言 学习一段时间的tensor flow之后,想找个项目试试手,然后想起了之前在看Theano教程中的一个文本分类的实例,这个星期就用 ...
- 基于 Spark 的文本情感分析
转载自:https://www.ibm.com/developerworks/cn/cognitive/library/cc-1606-spark-seniment-analysis/index.ht ...
- 文本相似度分析(基于jieba和gensim)
基础概念 本文在进行文本相似度分析过程分为以下几个部分进行, 文本分词 语料库制作 算法训练 结果预测 分析过程主要用两个包来实现jieba,gensim jieba:主要实现分词过程 gensim: ...
- 【新词发现】基于SNS的文本数据挖掘、短语挖掘
互联网时代的社会语言学:基于SNS的文本数据挖掘 python实现 https://github.com/jtyoui/Jtyoui/tree/master/jtyoui/word 这是一个无监督训 ...
- NLP之基于TextCNN的文本情感分类
TextCNN @ 目录 TextCNN 1.理论 1.1 基础概念 最大汇聚(池化)层: 1.2 textCNN模型结构 2.实验 2.1 实验步骤 2.2 算法模型 1.理论 1.1 基础概念 在 ...
- 基于情感词典的python情感分析
近期老师给我们安排了一个大作业,要求根据情感词典对微博语料进行情感分析.于是在网上狂找资料,看相关书籍,终于搞出了这个任务.现在做做笔记,总结一下本次的任务,同时也给遇到有同样需求的人,提供一点帮助. ...
- 文本离散表示(三):TF-IDF结合n-gram进行关键词提取和文本相似度分析
这是文本离散表示的第二篇实战文章,要做的是运用TF-IDF算法结合n-gram,求几篇文档的TF-IDF矩阵,然后提取出各篇文档的关键词,并计算各篇文档之间的余弦距离,分析其相似度. TF-IDF与n ...
- 基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#)
基于虎书实现LALR(1)分析并生成GLSL编译器前端代码(C#) 为了完美解析GLSL源码,获取其中的信息(都有哪些in/out/uniform等),我决定做个GLSL编译器的前端(以后简称编译器或 ...
随机推荐
- bash 基础
bash是一些基本的命令组成,要想学好bash脚本,基本命令是必须要记住 红色标记为着重点 1执行命令,利用状态返回值来判断 0 : 成功 1-255:失败 2: 测试表达式 [ expressio ...
- PAT 甲级 1050 String Subtraction
https://pintia.cn/problem-sets/994805342720868352/problems/994805429018673152 Given two strings S~1~ ...
- matlab 图像Mat类型矩阵中的值(uint8)类型转换,防止溢出
a=[50,60,70; 80,90,50; 100,55,40] 假设a是一个灰度图的mat形式(当然实际的size肯定比这大,我只是举例子),如果需要对这个矩阵的像素进行加减处理,很可能会产生溢出 ...
- break,continue,return 的区别
(1)break 跳出当前循环体 (2)continue 跳过当前循环体continue后面的代码,继续执行下一个循环 (3)return 和循环没关系,就是跳出该函数
- 【C++】指针和引用
引用: 引用(reference)是为对象起了另外一个名字,引用类型应用(refers to)另外一种类型.通过将声明符写成&d的形式来定义引用类型,其中d是声明的变量名. 一般初始化变量时, ...
- Android应用流量测试
工具 GT(中文产品名称:随身调):是腾讯出品的开源调试工具,本次测试中用其进行手机的流量统计和抓包.请在Android手机上安装GT应用(可以通过官网或应用宝下载). Wireshark:抓包的分析 ...
- UVALive - 4975_Casting Spells
题意很简单,给你一个字符串,要求你求出一个最长的形似于w(wr)w(wr)的最长连续子串的长度.wr表示w的逆序串. 在这里大家很容易就能想到Manacher算法求回文串.没有错,就是这个. 算法的详 ...
- dom变成jquery对象 先获取dom对象 然后通过$()转换成jquery对象
dom变成jquery对象 先获取dom对象 然后通过$()转换成jquery对象
- 【uoj#282】长度测量鸡 结论题
题目描述 给出一个长度为 $\frac{n(n+1)}2$ 的直尺,要在 $0$ 和 $\frac{n(n+1)}2$ 之间选择 $n-1$ 个刻度,使得 $1\sim \frac{n(n+1)}2$ ...
- 洛谷P1352 没有上司的舞会——树形DP
第一次自己写树形DP的题,发个博客纪念`- 题目来源:P1352 没有上司的舞会 题目描述 某大学有N个职员,编号为1~N.他们之间有从属关系,也就是说他们的关系就像一棵以校长为根的树,父结点就是子结 ...