15

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

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

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

例如:当我在推特上显示音乐播放器 >iPod< 时,有人写道:“这是糟糕的一天,但至少我的 iPod 让我快乐”或者更难:“这是糟糕的一天,但至少我的 iPod 弥补了这一天"

哪个软件足够聪明,可以理解重点是 iPod 而不是天气?

还有哪个软件是可扩展的/资源高效的(我想分析几条推文,不想花数千美元)?

机器学习和数据挖掘

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

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

自然语言处理工具

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

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

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

OpenFST - 用于操作加权有限状态自动机的包。这些通常用于表示概率模型。它们用于为语音识别、OCR 纠错、机器翻译和各种其他任务的文本建模。该库由 Google Research 和 NYU 的贡献者开发。它是一个 C++ 库,旨在快速且可扩展。

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

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

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

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

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

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

...

附带说明:您会推荐 twitter 流式传输还是 get API?

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

非常感谢你的帮助!!!

4

1 回答 1

4

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

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

有一些规则可以帮助识别复数,但也有很多例外。当然,我在这里说的是英语,我很差的德语口语并不能帮助我理解我害怕的语法。

于 2012-09-07T02:29:39.453 回答