标签: sentiment-analysis

参数的列数不匹配

我使用这个例子对R中的txt文档集合进行情感分析。代码是:

library(tm)
library(tidyverse)
library(tidytext)
library(glue)
library(stringr)
library(dplyr)
library(wordcloud)
require(reshape2)

files <- list.files(inputdir,pattern="*.txt")

GetNrcSentiment <- function(file){

    fileName <- glue(inputdir, file, sep = "")
    fileName <- trimws(fileName)
    fileText <- glue(read_file(fileName))
    fileText <- gsub("\\$", "", fileText) 

    tokens <- data_frame(text = fileText) %>% unnest_tokens(word, text)

    # get the sentiment from the first text: 
    sentiment <- tokens %>%
        inner_join(get_sentiments("nrc")) %>% # pull out only sentiment words
        count(sentiment) %>% # count the # of positive & negative words
        spread(sentiment, n, fill = 0) %>% …
Run Code Online (Sandbox Code Playgroud)

r sentiment-analysis tidyverse tidytext

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

在 nltk for python 中编辑 Vader_lexicon.txt 以添加与我的域相关的单词

我正在使用vaderinnltk来查找文件中每一行的情绪。我有两个问题:

  1. 我需要添加单词,vader_lexicon.txt但其语法如下:

攻击 -2.5 0.92195 [-1, -3, -3, -3, -4, -3, -1, -2, -2, -3]

-2.5和代表什么0.92195 [-1, -3, -3, -3, -4, -3, -1, -2, -2, -3]

我应该如何为新单词编码?假设我必须添加类似'100%',的内容'A1'

  1. 我还可以在文件夹中看到积极和消极的单词txt nltk_data\corpora\opinion_lexicon。这些如何被利用?我也可以在这些 txt 文件中添加我的话吗?

python nlp nltk python-3.x sentiment-analysis

5
推荐指数
1
解决办法
3316
查看次数

如何从 Bloomberg API 获取有关特定证券(股票)和日期范围的新闻提要?

我正在开发一个项目,该项目要求我从 Bloomberg API 获取有关特定日期范围内特定证券(例如 Netflix)的新闻文章。我想在 Python 中执行此操作并获取结构 (JSON/XML) 格式的新闻文章。我相信这可以通过使用 Bloomberg Terminal 使用 EDTF(事件驱动交易源)来完成,但我想使用 Bloomberg API 来完成此操作。

我需要这些新闻文章来对文章进行情感分析。

我读了这个问题的答案:Scrape News feed from Bloomberg Terminal

我知道我确实可以访问 EDTF feed,但不知道如何在 Python 中以编程方式获取 feed,因为围绕它的文档实际上很少甚至没有。如果我可以使用 PDBLP(https://matthewgilbert.github.io/pdblp/api.html),那就更好了!

请链接一些文档、代码示例来了解如何解决此问题。如果您在 Bloomberg 上从事过类似的项目,那么如果您能分享一些代码示例,那就太好了。谢谢你!

python nlp bloomberg python-3.x sentiment-analysis

5
推荐指数
0
解决办法
3208
查看次数

带有 tfidf 和计数向量化器的 gridsearchcv

我想使用 GridSearchCV 进行参数调整。是否还可以使用 GridSearchCV 检查 CountVectorizer 还是 TfidfVectorizer 效果最好?我的想法:

pipeline = Pipeline([
           ('vect', TfidfVectorizer()),
           ('clf', SGDClassifier()),
])
parameters = {
'vect__max_df': (0.5, 0.75, 1.0),
'vect__max_features': (None, 5000, 10000, 50000),
'vect__ngram_range': ((1, 1), (1, 2), (1,3),  
'tfidf__use_idf': (True, False),
'tfidf__norm': ('l1', 'l2', None),
'clf__max_iter': (20,),
'clf__alpha': (0.00001, 0.000001),
'clf__penalty': ('l2', 'elasticnet'),
'clf__max_iter': (10, 50, 80),
}

grid_search = GridSearchCV(pipeline, parameters, n_jobs=-1, verbose=1, cv=5)
Run Code Online (Sandbox Code Playgroud)

我的想法:CountVectorizer 与 TfidfVectorizer 相同,其中 use_idf=False 且 normalize=None。如果 GridSearchCV 给出这些参数的最佳结果,那么 CountVectorizer 是最佳选择。那是对的吗?

先感谢您 :)

python machine-learning sentiment-analysis scikit-learn gridsearchcv

5
推荐指数
1
解决办法
5900
查看次数

微调 BERT 情感分析时过度拟合

总的来说,我是机器学习的新手。我目前正在尝试使用 BERT 和 Transformers 进行情感分析的教程https://curiousily.com/posts/sentiment-analysis-with-bert-and-hugging-face-using-pytorch-and-python/

然而,当我训练模型时,模型似乎过度拟合 训练/验证损失和准确性

我不知道如何解决这个问题。我尝试过减少纪元数量、增加批量大小、重新整理我的数据(已排序)并增加验证拆分。到目前为止还没有任何效果。我什至尝试过改变不同的学习率,但我现在使用的是最小的。

下面是我的代码:

PRE_TRAINED_MODEL_NAME = 'TurkuNLP/bert-base-finnish-cased-v1'
tokenizer = BertTokenizer.from_pretrained(PRE_TRAINED_MODEL_NAME)

MAX_LEN = 40

#Make a PyTorch dataset
class FIDataset(Dataset):

  def __init__(self, texts, targets, tokenizer, max_len):

    self.texts = texts

    self.targets = targets

    self.tokenizer = tokenizer

    self.max_len = max_len

  def __len__(self):

    return len(self.texts)

  def __getitem__(self, item):

    text = str(self.texts[item])

    target = self.targets[item]

    encoding = self.tokenizer.encode_plus(

      text,

      add_special_tokens=True,

      max_length=self.max_len,

      return_token_type_ids=False,

      pad_to_max_length=True,

      return_attention_mask=True,

      return_tensors='pt',

    )

    return {

      'text': text,

      'input_ids': encoding['input_ids'].flatten(),

      'attention_mask': encoding['attention_mask'].flatten(),

      'targets': torch.tensor(target, dtype=torch.long)

    }

#split test …
Run Code Online (Sandbox Code Playgroud)

python sentiment-analysis bert-language-model huggingface-transformers overfitting-underfitting

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

如何通过 HuggingFace 的文本分类管道获取模型的 logits?

我需要使用它pipeline来从数据集上的模型中获得标记化和推理distilbert-base-uncased-finetuned-sst-2-english

我的数据是一个句子列表,出于娱乐目的,我们可以假设它是:

texts = ["this is the first sentence", "of my data.", "In fact, thats not true,", "but we are going to assume it", "is"]

在使用之前pipeline,我从模型输出中获取 logits,如下所示:

with torch.no_grad():
     logits = model(**tokenized_test).logits
Run Code Online (Sandbox Code Playgroud)

现在我必须使用管道,所以这就是我获取模型输出的方式:

 selected_model = "distilbert-base-uncased-finetuned-sst-2-english"
 tokenizer = AutoTokenizer.from_pretrained(selected_model)
 model = AutoModelForSequenceClassification.from_pretrained(selected_model, num_labels=2)
 classifier = pipeline('sentiment-analysis', model=model, tokenizer=tokenizer)
 print(classifier(text))
Run Code Online (Sandbox Code Playgroud)

这给了我:

[{'label': 'POSITIVE', 'score': 0.9746173024177551}, {'label': 'NEGATIVE', 'score': 0.5020197629928589}, {'label': 'NEGATIVE', 'score': 0.9995120763778687}, {'label': 'NEGATIVE', 'score': 0.9802979826927185}, {'label': 'POSITIVE', 'score': 0.9274746775627136}]

我再也找不到“logits”字段了。

有没有办法得到 thelogits …

python sentiment-analysis huggingface-transformers huggingface large-language-model

5
推荐指数
1
解决办法
1360
查看次数

情感分析(意见挖掘)中最具挑战性的问题是什么?

意见挖掘/情感分析是自然语言处理的一个近期的子任务.有些人将其与文本分类进行比较,有些人对此采取了更为深刻的立场.您如何看待情感分析(意见挖掘)中最具挑战性的问题?你能说出几个名字吗?

nlp sentiment-analysis

4
推荐指数
1
解决办法
8498
查看次数

亚马逊机器学习用于情绪分析

亚马逊机器学习平台对情绪分析和文本分析的灵活性或支持性如何?

nlp machine-learning amazon-web-services sentiment-analysis amazon-machine-learning

4
推荐指数
1
解决办法
3720
查看次数

如何将每一行作为参数传递给Tableau计算字段中的R脚本

我正在尝试对我拥有的桌子进行情绪分析.

我希望每行字符串数据都传递给R脚本,但问题是Tableau只接受汇总数据作为参数:

SCRIPT_STR(
  'output <- .arg1; output', [comments]
)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误信息:

# All fields must be aggregate or constant.
Run Code Online (Sandbox Code Playgroud)

r sentiment-analysis tableau-api

4
推荐指数
1
解决办法
1486
查看次数

对于拥有数百万粉丝的用户,请使用tweepy获取所有Twitter提及

我有一个项目在哪里,我会下载过去一年发送给名人的所有推文,并对他们做一个情绪分析,并评估谁是最积极的粉丝.

然后我发现你可以使用tweepy/twitter API在最近7天内检索twitter提及.我清理了网络,但在过去的一年里找不到任何下载推文的方法.

无论如何,我决定仅在过去7天内完成该项目的数据并编写以下代码:

try:
    while 1:
        for results in tweepy.Cursor(twitter_api.search, q="@celebrity_handle").items(9999999):
            item = (results.text).encode('utf-8').strip()
            wr.writerow([item, results.created_at])  # write to a csv (tweet, date)
Run Code Online (Sandbox Code Playgroud)

我正在使用Cursor搜索api,因为获取提及的一种方式(更准确的方法)仅限于检索最后800条推文.

无论如何,在一夜之间运行代码之后,我只能下载32K的推文.其中约90%是转推.

是否有更好的方法来获取数据?

请记住:

  1. 我想为多个名人做这件事.(拥有数百万粉丝的着名人物).
  2. 我不关心转推.
  3. 他们每天都有成千上万的推文发送给他们.

任何建议都会受到欢迎,但在目前这一刻,我的想法不合时宜.

python twitter tweepy sentiment-analysis

4
推荐指数
1
解决办法
5089
查看次数