关于情感分析的自然语言处理工具列表 - 您推荐哪一种?

时间:2012-09-06 12:05:15

标签: twitter nlp nltk sentiment-analysis

首先抱歉我的英语不太完美......我来自德国;)

因此,对于我的研究项目(学士论文),我需要分析关于某些公司和品牌的推文的情绪。为此,我需要编写自己的程序脚本/使用某种经过修改的开源代码(没有API' - 我需要了解正在发生的事情)。

下面你会找到我找到的一些NLP应用程序的列表。我现在的问题是你推荐哪一种方法?哪一个不需要长时间调整代码?

例如:当我为音乐播放器> iPod<有人写道:"这是一个糟糕的一天,但至少我的iPod让我开心#34;甚至更难:"这是一个糟糕的一天,但至少我的iPod弥补了它"

哪种软件足够聪明才能理解专注于iPod,而不是天气?

哪种软件具有可扩展性/资源效率(我想分析几条推文并且不想花费数千美元)?

机器学习和数据挖掘

Weka - 是用于数据挖掘的机器学习算法的集合。它是最流行的文本分类框架之一。它包含各种算法的实现,包括朴素贝叶斯和支持向量机(SVM,在SMO下列出)[注意:其他常用的非Java SVM实现是SVM-Light,LibSVM和SVMTorch]。一个相关项目是Kea(Keyphrase Extraction Algorithm)一种从文本文档中提取关键短语的算法。

Apache Lucene Mahout - 一个孵化器项目,用于在Hadoop map-reduce框架之上创建高度可扩展的通用机器学习算法分布式实现。

NLP工具

LingPipe - (技术上并不是开源,见下文)Alias-I的Lingpipe是一套用于文本语言处理的java工具,包括实体提取,语音标记(pos),聚类,分类等...它是业界最成熟,最广泛使用的开源NLP工具包之一。它以其速度,稳定性和可扩展性而闻名。其最好的功能之一是大量精心编写的教程,以帮助您入门。他们列出了竞争的链接,包括学术和工业工具。一定要看看他们的博客。 LingPipe是在包含源代码的免版税商业许可下发布的,但它在技术上并不是开源的。

OpenNLP - 托管各种基于Java的NLP工具,这些工具执行句子检测,标记化,词性标注,分块和解析,命名实体检测以及使用共同参考分析Maxent机器学习包。

Stanford Parser和词性(POS)Tagger - 用于斯坦福NLP小组的句子解析和词性标注的Java包。它具有概率自然语言解析器的实现,包括高度优化的PCFG和词汇化依赖解析器,以及词汇化的PCFG解析器。它拥有完整的GNU GPL许可证。

OpenFST - 用于操纵加权有限状态自动机的包。这些通常用于表示可能性模型。它们用于模拟语音识别,OCR纠错,机器翻译和各种其他任务的文本。该图书馆由Google Research和纽约大学的贡献者开发。它是一个C ++库,意味着快速和可扩展。

NTLK - 自然语言工具包是用于教授和研究分类,聚类,语音标记和解析等的工具。它包含一组用于实验的教程和数据集。它由墨尔本大学的史蒂文伯德撰写。

Opinion Finder - 执行主观性分析的系统,自动识别文本中何时存在意见,情绪,推测和其他私人状态。具体而言,OpinionFinder旨在识别主观句子并标记这些句子中主观性的各个方面,包括主观性的来源(持有者)和表达正面或负面情绪的短语中包含的单词。

Tawlk / osae - 用于社交文本情感分类的python库。最终目标是拥有一个简单的库,只需工作"。它应该有一个容易进入的障碍,并有完整的文件记录。我们通过在negwords.txt和poswords.txt上收集的推文使用停用词过滤获得最佳准确度

GATE - GATE已超过15年,并且正在积极地用于涉及人类语言的所有类型的计算任务。 GATE擅长各种形状和大小的文本分析。从大型企业到小型创业公司,从数百万欧元的研究联盟到本科项目,我们的用户社区是这类系统中规模最大,最多样化的系统,并且遍布除了一个大陆之外的所有系统1。

textir - 一套用于文本和情感挖掘的工具。这包括'mnlm'函数,用于稀疏多项逻辑回归,'pls',简明偏最小二乘例程和'主题'函数,用于潜在主题模型中的有效估计和维度选择。

NLP Toolsuite - JULIE实验室提供了一个全面的NLP工具套件,用于语义搜索,信息提取和文本挖掘的应用程序。我们大多数不断扩展的工具套件都基于机器学习方法,因此与领域和语言无关。

...

旁注:您会推荐Twitter流媒体或获取API吗?

至于我,我是python和java的粉丝;)

非常感谢你的帮助!!!

1 个答案:

答案 0 :(得分:4)

我不确定我能提供多少帮助,但之前我曾使用过手动NLP。我想到了几个问题 - 并非所有产品都是语言不可知的(人类语言不是计算机语言)。如果您计划分析德语推文,那么您选择的产品能够处理德语非常重要。我知道很明显,但很容易忘记。然后就是这样的事实,即收缩和缩略词的推特很多,语言结构受到字符限制的约束,这意味着语法并不总是与语言的预期结构相匹配。

在英语中,如果您必须编写自己的代码,可以稍微简化从句子中提取名词。专有名词有首字母大写,一串这样的单词(可能包括“of”)是名词短语的一个例子。在“a / an / my / his / hers / the / this / these / these”之前的单词将是形容词或名词。不幸的是,在那之后变得更加困难。

有一些规则可以帮助识别复数,但也有很多例外。我当然在谈论英语,我非常糟糕的德语并不能帮助我理解我害怕的语法。