如何通过调用python中的另一个函数以特定的方式写入文件?

时间:2014-10-22 02:22:10

标签: python nlp

我在python中编写了日志概率函数,它从句子中取2个单词作为输入,并返回日志概率。所以,对于例如:句子是:STOP to be or not to be STOP,我将单次出现的单词转换为<unk>得到:STOP to be <unk> <unk> to be STOP,然后我得到它的双字母:

['STOP,to', 'to,be', 'be,<unk>', '<unk>,<unk>', '<unk>,to', 'to,be', 'be,STOP']

我的对数概率函数如下:

def logprob(self,context,event):
        str = context + " " + event
        list=[]
        list.append(str)
        c1 = self.m.count(str)
        v=len(self.l2)

        c2=self.trainfiles.count(context)
        c3=(c1+1.0)/(c2+v)
        self.prob=math.log(c3,2)
        return self.prob

因此,如果我们logprob('STOP','to'),我们会得到log(2/5)

现在,我想编写另一个函数来写入这样的文件:

STOP: STOP Log(1/5) to Log(2/5)  be Log(1/5)  <unk> Log(1/5)
to: STOP Log(1/6) to Log(1/6) be Log(3/6) <unk> Log(1/6)
be: STOP Log(2/6) to Log(1/6) be Log(1/6) <unk> Log(2/6)
<unk>: STOP Log(1/6) to Log(2/6) be Log(1/6) <unk> Log(2/6)

我最关心的是我无法弄清楚如何以及在何处调用logprob以传递其中的单词。如果我在main中调用那么它只会计算该特定单词的logprob值,但我想用所有可能事件的logprobs编写一个上下文。我该怎么做?

0 个答案:

没有答案