关于情感分析,我有一个需要帮助的问题。
现在,我已经通过Twitter搜索api收集了一堆推文。因为使用搜索词,所以我知道要查看的主题或实体(人名)。我想知道别人对这些人的看法。
首先,我下载了具有已知价/情感分数的英语单词列表,并根据推文中这些单词的可用性来计算情感(+/-)。问题在于情绪是通过这种方式计算的-实际上,我更多地关注推文的语气,而不是关于此人。
例如,我有这条推文:
Run Code Online (Sandbox Code Playgroud)"lol... Person A is a joke. lmao!"
该消息显然是正面的,但是人A应该得到负面的。
为了改善情绪分析,我可能可以考虑单词列表中的否定和修饰语。但是,我如何才能准确地进行情绪分析来查看消息的主题(甚至可能是讽刺)?
如果有人可以引导我获得一些资源,那就太好了。
我正在客户支持域中寻找带注释的数据集以进行情感分析,以训练我的朴素贝叶斯分类器.互联网上有没有这样的数据集?到目前为止我找不到任何东西.
我该如何解决这个问题.
我正在使用R来构建情感分析工具,我遇到了一些重复问题.数据的主要来源是Twitter,看起来许多人通过在每条推文的末尾添加一些随机文本来绕过Twitter自己的垃圾邮件过滤器.例如
Click xxxxx to buy the amazing xxxxx for FREE ugjh
Run Code Online (Sandbox Code Playgroud)
我在最后得到了大量带有不同随机字符串的精确推文.它们来自同一用户或来自不同用户.
是否有任何函数duplicated或者unique哪些函数返回2个字符串的接近程度,如果它们高于某个%,则忽略它们?
我知道这样做最终会删除那些说完全相同的人的真实推文,比如说
I love xxxx !
Run Code Online (Sandbox Code Playgroud)
但是我将来会处理这个问题.
任何正确方向的提示将非常感谢!
我正在使用SentiWordNet进行一些情绪分析,我在这里的帖子中提到了如何使用SentiWordNet.然而,尽管我尝试了各种输入,但我得到的分数为0.0.我有什么问题吗?谢谢!
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Set;
import java.util.Vector;
public class SWN3 {
private String pathToSWN = "C:\\Users\\Malcolm\\Desktop\\SentiWordNet_3.0.0\\home\\swn\\www\\admin\\dump\\SentiWordNet_3.0.0.txt";
private HashMap<String, Double> _dict;
public SWN3(){
_dict = new HashMap<String, Double>();
HashMap<String, Vector<Double>> _temp = new HashMap<String, Vector<Double>>();
try{
BufferedReader csv = new BufferedReader(new FileReader(pathToSWN));
String line = "";
while((line = csv.readLine()) != null)
{
String[] data = line.split("\t");
Double score = Double.parseDouble(data[2])-Double.parseDouble(data[3]);
String[] words = data[4].split(" ");
for(String w:words)
{
String[] w_n = …Run Code Online (Sandbox Code Playgroud) 我有兴趣用西班牙语做情绪分析.我已经在网上查找了一个意见字典,看起来似乎不可能找到与英语中现有类似的东西.例如,http://www.cs.uic.edu/~liub/FBS/sentiment-analysis.html#lexicon
我是这个领域的新手,对一些指导感兴趣,所以我愿意接受建议.例如,标准的西班牙语词典有多大用处?
研究对象是与政治有关的推特帖子.
谢谢你的帮助!
我想对一组句子执行依赖解析,并查看单个节点的情绪评级,如Stanford Sentiment Treebank(http://nlp.stanford.edu/sentiment/treebank.html).
我是CoreNLP API的新手,在摆弄后我仍然不知道如何获得排名节点的依赖解析.CoreNLP甚至可以实现这一点,如果是这样,有没有人有这方面的经验?
我正在寻找优化斯坦福CoreNLP情绪管道性能的方法.结果,想要得到句子的情感,但只有那些包含作为输入的特定关键词的句子.
我尝试了两种方法:
方法1:StanfordCoreNLP管道用情绪注释整个文本
我已经定义了一个注释器管道:tokenize,ssplit,parse,sentiment.我在整篇文章中运行它,然后在每个句子中查找关键字,如果它们存在,则运行返回关键字值的方法.虽然处理需要几秒钟,但我并不满意.
这是代码:
List<String> keywords = ...;
String text = ...;
Map<Integer,Integer> sentenceSentiment = new HashMap<>();
Properties props = new Properties();
props.setProperty("annotators", "tokenize, ssplit, parse, sentiment");
props.setProperty("parse.maxlen", "20");
props.setProperty("tokenize.options", "untokenizable=noneDelete");
StanfordCoreNLP pipeline = new StanfordCoreNLP(props);
Annotation annotation = pipeline.process(text); // takes 2 seconds!!!!
List<CoreMap> sentences = annotation.get(CoreAnnotations.SentencesAnnotation.class);
for (int i=0; i<sentences.size(); i++) {
CoreMap sentence = sentences.get(i);
if(sentenceContainsKeywords(sentence,keywords) {
int sentiment = RNNCoreAnnotations.getPredictedClass(sentence.get(SentimentCoreAnnotations.SentimentAnnotatedTree.class));
sentenceSentiment.put(sentence,sentiment);
}
}
Run Code Online (Sandbox Code Playgroud)
方法2:StanfordCoreNLP管道用句子注释整个文本,分离在感兴趣的句子上运行的注释器
由于第一个解决方案的性能较弱,我已经定义了第二个解决方案.我已经使用注释器定义了一个管道:tokenize,ssplit.我在每个句子中查找了关键字,如果它们存在,我只为这个句子创建了一个注释并在其上运行下一个注释器:ParserAnnotator,BinarizerAnnotator和SentimentAnnotator.
由于ParserAnnotator,结果真的不令人满意.即使我用相同的属性初始化它.在方法1中,有时花费的时间比整个管道在文档上运行的时间更长.
List<String> keywords = ...;
String text = ...;
Map<Integer,Integer> …Run Code Online (Sandbox Code Playgroud) 我正在使用NLTK设计Python中的文本分类器。每个句子中考虑的特征之一就是它的情感。我想对具有正面或负面情绪的句子比没有任何情绪(中性句子)的句子加权。将电影评论语料库与朴素贝叶斯分类器一起使用只会导致正面和负面的标签。我尝试在nltk.sentiment.utils中使用demo_liu_hu_lexicon,但是该函数不返回任何值,而是将其打印到输出中,并且非常慢。有谁知道图书馆根据情感对句子赋予某种权重?
谢谢!
正如标题清楚地描述的那样,我想知道消除英语中人物重复的正确方法是什么,这种重复在社交媒体中常用来夸大这种感觉.由于我正在开发一种软件解决方案以纠正错误的单词,我需要一种可应用于大多数英语单词的全局算法.那么,我要求专家学习如何在不使用基于学习的方法的情况下消除英语单词中的其他字母的正确方法?
PS.(1)我使用WordNet 3.0数据库以编程方式检查单词是否有效.到目前为止,除了一些例子,例如在WordNet 3.0中veery定义的单词之外,这么好tawny brown North American trush noted for its song.当在WordNet中找到该单词时,我会中断字母消除过程.那么有没有其他知识库可以用来代替WordNet?
PS.(2)其实我在英语语言和使用社区问了这个问题.但是他们引导我在这里问问题.
一些例子:
haappyy --> happy
amaaazzinng --> amazing
veeerry --> very
Run Code Online (Sandbox Code Playgroud)
正如你在例子中看到的那样,字母重复的地方各不相同.
在StanfordCore NLP网站上有以下演示:http : //nlp.stanford.edu : 8080/sentiment/rntnDemo.html
该演示为句子提供了详细的情感评分,范围从0到4。
我了解如何使用命令行获得“积极”或“消极”评估,类似于以下内容: corenlp.run的屏幕截图显示了积极的情绪分析
我已经看到了这个问题,但是我对如何创建所附屏幕快照中显示的分析感兴趣。使用Stanford Core NLP Java代码获取情感分析结果
在Stanford CoreNLP中,有没有一种方法可以返回给定句子的分数(即0-4),从而显示其阳性或阴性程度?
谢谢!
java ×3
nlp ×3
stanford-nlp ×3
twitter ×2
linguistics ×1
nltk ×1
parsing ×1
performance ×1
python ×1
python-3.x ×1
r ×1
text-parsing ×1