0
我試圖在Python中創建一個情感分析器,它下載文本並根據負面和正面的單詞列表進行分析。對於文本內每一個匹配的文字,在poswords.txt應該有一個+1
得分和文本內的每一個匹配negwords.txt應該有一個-1
得分,文本的總體得分將是情緒評分。這是我試圖做到這一點,但我一直在剛開評價爲0。將下載的字符串與Python中的列表進行比較
下面的答案似乎不工作,我不斷收到的0
我試圖在Python中創建一個情感分析器,它下載文本並根據負面和正面的單詞列表進行分析。對於文本內每一個匹配的文字,在poswords.txt應該有一個+1
得分和文本內的每一個匹配negwords.txt應該有一個-1
得分,文本的總體得分將是情緒評分。這是我試圖做到這一點,但我一直在剛開評價爲0。將下載的字符串與Python中的列表進行比較
下面的答案似乎不工作,我不斷收到的0
poswords
景氣指數和你的代碼中的negwords
只是文件句柄,你不會讀這些文件中的單詞。
這裏:
split = text.split()
poswords = open('poswords.txt','r')
pos = []
for line in poswords:
pos.append(line.strip())
for word in split:
if word in pos:
sentimentScore +=1
poswords.close()
negwords = open('negwords.txt','r')
neg = []
for line in negwords:
neg.append(line.strip())
for word in split:
if word in neg:
sentimentScore -=1
negwords.close()
如果文件是巨大的,上面的是不是一個最佳的解決方案。創建字典正反字:
input_text = text.split() # avoid using split as a variable name, since it is a keyword
poswords = open('poswords.txt','r')
pos_dict = defaultdict(int)
for line in poswords:
pos_dict[line.strip()] += 1
poswords.close()
negwords = open('negwords.txt','r')
neg_dict = defaultdict(int)
for line in negwords:
neg_dict[line.strip()] += 1
negwords.close()
sentiment_score = 0
for word in input_text:
if word in pos_dict:
sentiment_score += 1
elif word in neg_dict:
sentiment_score -=1
嗨Warunsl,感謝您的快速回復,然而,這段代碼似乎沒有工作,我仍然在所有的「INPUT_TEXT」得到的0景氣指數我正在通過分析儀 – user3482449