有没有办法在python中加速此代码?我需要使用超过500k的字符串来运行它,而且花费的时间太长。
每个词都必须放在匹配的字典中。
example_sent_words = 50万个字符串列表
EmojiPos =表情符号列表
EmojiNeg =表情符号列表
其他表情符号=表情符号列表
emoji_pos=dict()
emoji_neg=dict()
emoji_others=dict()
for w in example_sent_words:
if w in s_EmojiPos:
remove_username_url.remove(w)
if w in emoji_pos:
emoji_pos[w] += 1
else:
emoji_pos[w] = 1
elif w in s_EmojiNeg:
remove_username_url.remove(w)
if w in emoji_neg:
emoji_neg[w] += 1
else:
emoji_neg[w] = 1
elif w in s_OthersEmoji:
remove_username_url.remove(w)
if w in emoji_others:
emoji_others[w] += 1
else:
emoji_others[w] = 1
编辑:我按照建议写了:
s_AdditionalEmoji = set(AdditionalEmoji)
s_EmojiNeg = set(EmojiNeg)
s_EmojiPos = set(EmojiPos)
答案 0 :(得分:1)
要减少内存使用量并加快检查速度,并确保检查每个单词,我建议:
word_count = len(example_sent_words)
for i in range(word_count) :
w = example_sent_words[0]
if w in EmojiPos:
example_sent_words.pop(0)
try:
emoji_pos[w] += 1
except:
emoji_pos[w] = 1
elif w in EmojiNeg:
example_sent_words.pop(0)
try:
emoji_neg[w] += 1
except:
emoji_neg[w] = 1
elif w in OthersEmoji:
example_sent_words.pop(0)
try:
emoji_others[w] += 1
except:
emoji_others[w] = 1