LingPipe是一个自然语言处理的Java开源工具包。LingPipe目前已有很丰富的功能,包括主题分类(Top Classification)、命名实体识别(Named Entity Recognition)、词性标注(Part-of Speech Tagging)、句题检测(Sentence Detection)、查询拼写检查(Query Spell Checking)、兴趣短语检测(Interseting Phrase Detection)、聚类(Clustering)、字符语言建模(Character Language Modeling)、医学文献下载/解析/索引(MEDLINE Download, Parsing and Indexing)、数据库文本挖掘(Database Text Mining)、中文分词(Chinese Word Segmentation)、情感分析(Sentiment Analysis)、语言辨别(Language Identification)等API。
文本倾向性分析
文本倾向性分析(情感分析)是将用户的观点分为“正面”和“负面”,有时候会多出一个“中性”。文本倾向性分析一个比较直观的应用就是追踪用户对于一个事物的
观点和偏好,比如分析豆瓣上一个电影的评论进行分析。正因为如此情感分析又被称为观点挖掘。
linkpipe是alias公司开发的一款自然语言处理软件包。包含主题分类,句题检测,字符语言建模等十余个模块。而且文档完整。而且每一个算法都有论文参考。更难能可贵的
是它支持中文。
官方地址:http://alias-i.com/lingpipe/
下载地址:http://alias-i.com/lingpipe/web/download.html
LinkPipe分为两个大块,一块是LinkPipe核心文件,另外一块是LinkPipe的模型类。需要支持中文的话需要下载chinese word segmentation模块。
准备语料库
语料库在语言学上意指大量的文本,通过经过整理,具有既定格式与标记。
一般而言做情感分析有个最重要的步骤就是采集观点并进行整理,但由于应用场景不同,处理方法也不同。为了方便起见,这里使用已经处理好的语料库。
movie review data 的polarity dataset v2.0,包含1000个正面的观点和1000个负面观点。当然这个是英文的哈。
基本极性分析
基本极性是指事物从样本来看所处的整体倾向,比如:一本书,用户对其的情感倾向是正面的,这样的断言就是一个基本极性断言。
基本极性的分析直接使用lingpipe的dynamicLMClassifier即可。
大致上来讲分为两步,第一步训练,第二步进行分析。
新建一个类名为PolarityBasic
1 2 3 4 5 6 | public PolarityBasic(String basePath) { pDir = new File(basePath, "txt_sentoken"); //获取语料集 categories = pDir.list(); //获取类别 int nGram = 4; classifer = DynamicLMClassifier.createNGramProcess(categories, nGram); //新建动态分类器 } |