我在 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 ie NN 像 clickbait 這樣的詞,fight 也會被洗掉,而不是最終從那個句子中洗掉運算式。
uj5u.com熱心網友回復:
好的,這就是我為報告 LSE 的公司所做的。你可以用你的話做類似的事情。
# 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
最后,遍歷關鍵字并將它們放入字典中。
# 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)
您現在有一個詞頻串列,您可以在資料框中進行分析(例如,這超出了這個特定問題的范圍)。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/434770.html
