标签: sentiment-analysis

针对Java的情感分析api /工具

我正在编写一个Java程序,需要分析一小段文本(3-4个句子,新闻文章的释义),以表达他们的观点.我只需要知道这篇文章是否总体上是积极的,消极的或中立的.

例如,理想情况下,以下内容将被归类为正面:

亚马逊的Kindle电子书销量飙升.亚马逊表示,它的Kindle电子阅读设备销售的电子书数量超过了平装版和精装版

我只需要一个非常简单快速的第三方解决方案,我可以在我的程序中使用它.它不一定非常准确.许可证等不是问题,只要有可能追踪解决方案.

到目前为止,我已经找到了一个潜在的好解决方案,AlchemyAPI,但我正在努力实际使用它.


如果有人之前遇到过这个问题并且知道一个特别好/简单的解决方案,或者一个非常好的教程,我将非常感激:-)


(我也为这个问题缺乏代码而道歉.)

java sentiment-analysis

7
推荐指数
1
解决办法
8520
查看次数

我如何开始为土耳其语建立wordnet以用于情感分析

虽然我持有EE背景,但我没有机会参加自然语言处理课程.

我想为土耳其语建立情绪分析工具.我认为最好创建一个土耳其语wordnet数据库,而不是将文本翻译成英语,并使用提供的工具用错误的翻译文本进行分析.(是吗?)

那你们有什么建议我做的?首先从公开课网站上学习NLP课程?我真的不知道从哪里开始.你能帮助我,也许可以一步一步向我提供指导吗?我知道这是一个学术项目,但我有兴趣将技能作为该领域的业余爱好.

提前致谢.

wordnet sentiment-analysis

7
推荐指数
1
解决办法
1925
查看次数

现有的情感分析算法是什么?

我和一群人正在开发一种情感分析算法.我想知道现有的是什么,因为我想比较它们.是否有任何文章在这方面有主要算法?

提前致谢

蒂亚戈

sentiment-analysis

7
推荐指数
1
解决办法
8256
查看次数

良好的情绪分析算法

我尝试了天真的贝叶斯分类器,它的工作非常糟糕.SVM工作得更好但仍然很糟糕.大多数关于SVM和朴素贝叶斯的文章都有一些变化(n-gram,POS等),但所有这些都给出了接近50%的结果(文章的作者谈论80%和高,但我不能得到同样的准确在真实数据上).

除了lexixal分析之外,还有更强大的方法吗?SVM和贝叶斯认为单词是独立的.这些方法称为"词袋".如果我们假设单词是相关的怎么办?

例如:使用apriory算法来检测如果句子包含"糟糕和可怕",那么70%的概率就是句子是否定的.我们也可以使用单词之间的距离等.

这是好主意还是我发明自行车?

algorithm sentiment-analysis

7
推荐指数
2
解决办法
2万
查看次数

情感分析java库

我有一些未贴标签的微博帖子,我想创建一个情绪分析模块.

要做到这一点,我尝试了斯坦福图书馆Alchemy Api网络服务,但结果不是很好.现在我不想训练我的分类器.

所以我想建议一些图书馆或一些网络服务.我更喜欢经过测试的图书馆.这篇文章的语言是英语.预处理也已完成.

PS

我使用的编程语言是Java EE

java machine-learning data-mining text-mining sentiment-analysis

7
推荐指数
2
解决办法
2万
查看次数

NLTK将标记化句子转换为synset格式

我希望使用NLTK获得单个单词和句子中每个单词之间的相似性.

NLTK可以获得两个特定单词之间的相似性,如下所示.这个方法要求给出对该单词的特定引用,在这种情况下它是'dog.n.01',其中dog是名词,我们想要使用第一个(01)NLTK定义.

dog = wordnet.synset('dog.n.01')
cat = wordnet.synset('cat.n.01')
print  dog.path_similarity(cat)
>> 0.2
Run Code Online (Sandbox Code Playgroud)

问题是我需要从句子中的每个单词中获取词性信息.NLTK包能够获得句子中每个单词的词性,如下所示.但是,这些语音部分('NN','VB','PRP'...)与synset用作参数的格式不匹配.

text = word_tokenize("They refuse to permit us to obtain the refuse permit")
pos_tag(text)
>> [('They', 'PRP'), ('refuse', 'VBP'), ('to', 'TO'), ('permit', 'VB'), ('us', 'PRP'), ('to', 'TO'), ('obtain', 'VB'), ('the', 'DT'), ('refuse', 'NN'), ('permit', 'NN')]
Run Code Online (Sandbox Code Playgroud)

是否可以从pos_tag()获取synset格式的数据导致NLTK?通过synset格式化我的意思是格式dog.n.01

python nltk sentiment-analysis

7
推荐指数
1
解决办法
2588
查看次数

是否可以使用word2vec模型对未标记的文本进行情感分析?

我有一些文本数据需要进行情感分类。我对此数据没有正面或负面标签(未标记)。我想使用 Gensim word2vec 模型进行情感分类。
是否有可能做到这一点?因为到目前为止我找不到任何可以做到这一点的东西?每个博客和文章都使用某种标记数据集(例如 imdb 数据集)来训练和测试 word2vec 模型。没有人进一步预测自己的未标记数据。

有人可以告诉我这种可能性(至少理论上)吗?

提前致谢!

sentiment-analysis gensim word2vec python-3.7

7
推荐指数
1
解决办法
9464
查看次数

情绪分析 - wordNet,sentiWordNet词典

我需要与正面和负面的单词的列表的权重根据他们是多么的强大和周分配给的话.我有 :

1.)WordNet - 它为每个单词提供+或 - 分数.

2.)SentiWordNet - 给出[0,1]范围内的正负值.

我用几句话检查了这些,

爱 - wordNet给出了名词和动词的0.0,我不知道为什么我认为它至少应该是积极的因素.

压制 - wordNet给出-9.93
- SentiWordNet给出了pos和neg的0.0.(应该是否定的)

休息 - wordNet - 2.488
- SentiWordNet - {pos - 0.125,neg - 0.5}(应为正)

我需要一些帮助来决定使用哪一个.

谢谢.

nlp text-mining wordnet sentiment-analysis

6
推荐指数
1
解决办法
1万
查看次数

如何在blob中计算情绪分析

我使用以下来计算200个短句的情绪.我没有使用训练数据集:

for sentence in textblob.sentences: print(sentence.sentiment)

分析返回两个值:极性和主观性.根据我在网上看到的,极性分数是在[-1.0,1.0]范围内的浮点数,其中0表示中性,+1表示非常积极态度,-1表示非常消极态度.主观性是在[0.0,1.0]范围内的浮点数,其中0.0是非常客观的,1.0是非常主观的.

那么,现在我的问题是:这些分数是如何计算的?

对于几乎一半的短语的极性分数,我有一些零,我想知道零是否表示中立,或者更确切地说这个短语不包含具有极性的单词这一事实.我想知道另一个情绪分析器的相同问题:NaiveBayesAnalyzer.

谢谢您的帮助!
玛丽

python sentiment-analysis

6
推荐指数
1
解决办法
6137
查看次数

加快CoreNLP情绪分析

谁能想到加快我的CoreNLP情绪分析的方法(下图)?

我在服务器启动时初始化CoreNLP管道:

// Initialize the CoreNLP text processing pipeline
public static Properties props = new Properties();
public static StanfordCoreNLP pipeline;

// Set text processing pipeline's annotators
props.setProperty("annotators", "tokenize, ssplit, pos, parse, sentiment");
// Use Shift-Reduce Constituency Parsing (O(n),
// http://nlp.stanford.edu/software/srparser.shtml) vs CoreNLP's default
// Probabilistic Context-Free Grammar Parsing (O(n^3))
props.setProperty("parse.model", "edu/stanford/nlp/models/srparser/englishSR.ser.gz");
pipeline = new StanfordCoreNLP(props);
Run Code Online (Sandbox Code Playgroud)

然后我从我的控制器调用管道:

String text = 'A sample string.'
Annotation annotation = pipeline.process(text);
List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
for (CoreMap sentence : sentences) {
    Tree tree = sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class); …
Run Code Online (Sandbox Code Playgroud)

java optimization performance stanford-nlp sentiment-analysis

6
推荐指数
1
解决办法
526
查看次数