gpt4 book ai didi

python - NLTK WordNetLemmatizer 中的多线程?

转载 作者:行者123 更新时间:2023-11-28 18:11:44 25 4
gpt4 key购买 nike

我正在尝试使用多线程来加快进程。我正在使用 wordnetlemmatizer 对单词进行词形还原,sentiwordnet 可以进一步使用这些单词来计算文本的情感。我使用 WordNetLemmatizer 的情感分析功能如下:

import nltk
from nltk.corpus import sentiwordnet as swn

def SentimentA(doc, file_path):
sentences = nltk.sent_tokenize(doc)
# print(sentences)
stokens = [nltk.word_tokenize(sent) for sent in sentences]
taggedlist = []
for stoken in stokens:
taggedlist.append(nltk.pos_tag(stoken))
wnl = nltk.WordNetLemmatizer()
score_list = []
for idx, taggedsent in enumerate(taggedlist):
score_list.append([])
for idx2, t in enumerate(taggedsent):
newtag = ''
lemmatized = wnl.lemmatize(t[0])
if t[1].startswith('NN'):
newtag = 'n'
elif t[1].startswith('JJ'):
newtag = 'a'
elif t[1].startswith('V'):
newtag = 'v'
elif t[1].startswith('R'):
newtag = 'r'
else:
newtag = ''
if (newtag != ''):
synsets = list(swn.senti_synsets(lemmatized, newtag))

score = 0
if (len(synsets) > 0):
for syn in synsets:
score += syn.pos_score() - syn.neg_score()
score_list[idx].append(score / len(synsets))
return SentiCal(score_list)

运行 4 个线程后,前 3 个线程出现以下错误,最后一个线程运行正常。

AttributeError: 'WordNetCorpusReader' object has no attribute '_LazyCorpusLoader__args'

我已经尝试按照此 NLTK issue 中的说明在本地导入 NLTK 包并尝试了此 page 上给出的解决方案.

最佳答案

快速破解:

import nltk
from nltk.corpus import sentiwordnet as swn
# Do this first, that'll do something eval()
# to "materialize" the LazyCorpusLoader
next(swn.all_senti_synsets())

# Your other code here.

更多详细信息稍后......仍在输入

关于python - NLTK WordNetLemmatizer 中的多线程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50611148/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com