Javascript PCFG(NLP)中的内外算法
我的教授要求我研究并实现PCFG(概率上下文无关语法)中的无监督内-外学习算法 当谈到无监督时,我的教授告诉我,唯一的输入是一些训练句子和非终端的数量。我的程序应该从中学习每个规则的概率(规则是从非终端生成的,实际上所有可能的匹配格式都是A->BC) 好的,现在我们有一个非常简单的情况,我们有一个句子“我爱你”,非终端的数量是2 我假设两个非终端为A和B。生成以下规则:Javascript PCFG(NLP)中的内外算法,javascript,algorithm,math,nlp,Javascript,Algorithm,Math,Nlp,我的教授要求我研究并实现PCFG(概率上下文无关语法)中的无监督内-外学习算法 当谈到无监督时,我的教授告诉我,唯一的输入是一些训练句子和非终端的数量。我的程序应该从中学习每个规则的概率(规则是从非终端生成的,实际上所有可能的匹配格式都是A->BC) 好的,现在我们有一个非常简单的情况,我们有一个句子“我爱你”,非终端的数量是2 我假设两个非终端为A和B。生成以下规则: A->AA; A->AB; A->BA; A->BB; A->I; A->love; A-
A->AA; A->AB; A->BA; A->BB; A->I; A->love; A->you;
B->AA; B->AB; B->BA; B->BB; B->I; B->love; B->you;
所有具有不同左值的规则的和概率为1,在本例中,p(a->AA)+p(a->AB)+p(a->BA)+p(a->BB)+p(a->I)+p(a->love)+p(a->you)=1。
我的第一个问题是:不同的右值之和也应该是1吗?例如,下面的语句是否为真
p(A->AB)+p(B->AB)=1
p(A->love)+p(B->love)=1
我不需要精确的数学推导,但如果你能给我一个解释,让我明白我的意思,那就太好了
我的第二个问题是:我想用JavaScript实现这个算法,但我的同行都在尝试使用Java或Python。我认为js比python更快,而且可以很容易地嵌入到web应用程序中
但是我没有这种复杂算法的经验,所以我不确定在这里使用JavaScript可以吗?有什么优点或缺点吗
谢谢大家抽出时间 对于第一个问题: 我已经和我的教授确认过,概率与单个左值之和应该是一。像这样:
P(A->AA)+P(A->AB)+P(A->BA)+P(A->BB)+P(A->I)+P(A->爱)+P(A->你)=1。
但是概率与单个正确值之和可能不是一,p(a->AB)+p(B->AB)!=1
对于第二个问题:
实际上,我已经使用node.js完成了我的nlp暑期项目,它实际上比我认为的python快得多。“我们有一句话“我爱你”,非终端的数量是2。”->“我”、“爱”?如果你使用node.js,你可能会比普通python获得巨大的性能提升。查看我在研究该主题时发现的这篇文章:毕竟,决定取决于你个人对JS的到期时间和截止日期。@guest271314“我”、“爱”、“你”是终端,非终端代表..ehh我看像动词或名词。在这里,我只有两个非终端,以便于see@halfzebra我没有java和python方面的经验。我有一些js编码,所以我想使用js。你是说js适合NLP?因为我可以从git获得的所有NLP代码都是java或python的。。。所以我想知道js不适合NLP吗?@Summer Sun的人确实使用Node.js来实现NLP算法,下面是一个很好的例子