如何从句子中删除没有正面或负面情绪的词?
How to remove words from a sentence that carry no positive or negative sentiment?
我正在尝试对 youtube 评论进行基于情感分析的方法,但评论中很多时候都有 mrbeast、tiger/'s、lion/'s、pewdiepie、james 等词,这些词不会在句子中添加任何感觉.我已经完成了 nltk 的 average_perception_tagger,但效果不佳,因为它给出的结果是
我的输入:
"mrbeast james lion tigers bad sad clickbait fight nice good"
我句子中需要的单词:
"bad sad clickbait fight nice good"
我使用 average_perception_tagger 得到了什么:
[('mrbeast', 'NN'),
('james', 'NNS'),
('lion', 'JJ'),
('tigers', 'NNS'),
('bad', 'JJ'),
('sad', 'JJ'),
('clickbait', 'NN'),
('fight', 'NN'),
('nice', 'RB'),
('good', 'JJ')]
所以你可以看到,如果我删除了 mrbeast,即 NN,clickbait、fight 等词也会被删除,而不是最终从该句子中删除表达式。
好的,这就是我为在伦敦证券交易所报告的公司所做的。你可以用你的话做类似的事情。
# define what you consider to be positive, negative or neutral keywords
posKeyWords = ['profit', 'increase', 'pleased', 'excellent', 'good', 'solid financial', 'robust', 'significantly improved', 'improve']
negKeyWords = ['loss', 'decrease', 'dissapoint', 'poor', 'bad','decline', 'negative', 'bad', 'weather', 'covid' ]
neutralKeyWords = ['financial']
keyWords = posKeyWords + neutralKeyWords + negKeyWords
接下来您将获得文本形式的数据(来自您选择的任何来源)。将数据(单词)放入列表(数组)中。
dataTest = []
dataText = resp.text # or whatever source you are reading from
我的是来自网络查询的响应,但你的可能来自文本文件或其他来源。
接下来创建一个空字典,将关键字计入字典(散列速度很快)。
keyWordSummary = {} # dictionary of keywords & values
最后循环遍历关键字放入dict
# look for some keywords
for kw in keyWords:
kwVal = re.findall(kw, dataText)
#print('keyword count:', kw, len(kwVal))
# put into a dict
keyWordSummary[kw] = len(kwVal)
你现在有了一个词频列表,你可以在数据框中进行分析(这超出了这个特定问题的范围)。
我正在尝试对 youtube 评论进行基于情感分析的方法,但评论中很多时候都有 mrbeast、tiger/'s、lion/'s、pewdiepie、james 等词,这些词不会在句子中添加任何感觉.我已经完成了 nltk 的 average_perception_tagger,但效果不佳,因为它给出的结果是
我的输入:
"mrbeast james lion tigers bad sad clickbait fight nice good"
我句子中需要的单词:
"bad sad clickbait fight nice good"
我使用 average_perception_tagger 得到了什么:
[('mrbeast', 'NN'),
('james', 'NNS'),
('lion', 'JJ'),
('tigers', 'NNS'),
('bad', 'JJ'),
('sad', 'JJ'),
('clickbait', 'NN'),
('fight', 'NN'),
('nice', 'RB'),
('good', 'JJ')]
所以你可以看到,如果我删除了 mrbeast,即 NN,clickbait、fight 等词也会被删除,而不是最终从该句子中删除表达式。
好的,这就是我为在伦敦证券交易所报告的公司所做的。你可以用你的话做类似的事情。
# define what you consider to be positive, negative or neutral keywords
posKeyWords = ['profit', 'increase', 'pleased', 'excellent', 'good', 'solid financial', 'robust', 'significantly improved', 'improve']
negKeyWords = ['loss', 'decrease', 'dissapoint', 'poor', 'bad','decline', 'negative', 'bad', 'weather', 'covid' ]
neutralKeyWords = ['financial']
keyWords = posKeyWords + neutralKeyWords + negKeyWords
接下来您将获得文本形式的数据(来自您选择的任何来源)。将数据(单词)放入列表(数组)中。
dataTest = []
dataText = resp.text # or whatever source you are reading from
我的是来自网络查询的响应,但你的可能来自文本文件或其他来源。
接下来创建一个空字典,将关键字计入字典(散列速度很快)。
keyWordSummary = {} # dictionary of keywords & values
最后循环遍历关键字放入dict
# look for some keywords
for kw in keyWords:
kwVal = re.findall(kw, dataText)
#print('keyword count:', kw, len(kwVal))
# put into a dict
keyWordSummary[kw] = len(kwVal)
你现在有了一个词频列表,你可以在数据框中进行分析(这超出了这个特定问题的范围)。