语法错误:定义函数的参数无效



在此处输入图像描述我正在尝试运行一个函数,该函数定义两组之间共同的单词数之间的重叠。我有一个 Python 2.0 的代码,我正在尝试在 Python 3.x 中复制相同的代码:

def computeOverlap(self, target, pos, (defn,examples,wordnetints), pre_words, post_words):
# relevant words = words with same pos
context_overlap = 0
def_overlap = 0
consecutive_overlap = 0
def_words = defn.split(' ')
# put all examples into the definition too. # CHANGE. no.
for example in examples:
if example.find(target) != -1:
lst = example.split(target)
example = lst[0] + lst[1]
def_words.extend(example.split(' '))
# put wordnet int senses into defn
for wnint in wordnetints:
wnstring = target + "." + pos + "."
if wnint < 10: wnstring += "0" + str(wnint)
else: wnstring += str(wnint)
try:
wndef = utilities.cleanString(wn.synset(wnstring).definition)
def_words.extend(wndef.split(' '))
except: pass

当它尝试以

#print list_of_senses
for sense in list_of_senses: # sense is int. length list_of_senses is approx 5
#print "Senses:n", sense, list_of_senses[sense]
overlap = self.computeOverlap(word, pos, list_of_senses[sense], pre_words, post_words)
#print "overlap for sense", sense, ":", overlap
#print "!!!!", sense, "Overlap:", overlap
scores[sense] = overlap+alpha
#print "Best Sense is: ", best_sense
if softScoring:
values = []
total = sum(scores.values())
for key in scores:
scores[key] = scores[key] / float(total)
return scores, alpha

但它给了我以下错误:

File "<ipython-input-13-e08e748435b4>", line 91
def computeOverlap(self, target, pos, (defn , examples, wordnetints), pre_words, post_words):
SyntaxError: invalid syntax

我错过了什么吗?

将列表作为参数,稍后将其解压缩为元组:

喜欢这个:

def computeOverlap(self, target, pos, temp_list, pre_words, post_words):
(defn, examples, wordnetints) = temp_list

试试这个:

def computeOverlap(self, target, pos, defn , examples, wordnetints, pre_words, post_words):
context_overlap = 0
def_overlap = 0
consecutive_overlap = 0

相关内容

最新更新