Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript PCFG(NLP)中的内外算法_Javascript_Algorithm_Math_Nlp - Fatal编程技术网

Javascript PCFG(NLP)中的内外算法

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-

我的教授要求我研究并实现PCFG(概率上下文无关语法)中的无监督内-外学习算法

当谈到无监督时,我的教授告诉我,唯一的输入是一些训练句子和非终端的数量。我的程序应该从中学习每个规则的概率(规则是从非终端生成的,实际上所有可能的匹配格式都是A->BC)

好的,现在我们有一个非常简单的情况,我们有一个句子“我爱你”,非终端的数量是2

我假设两个非终端为A和B。生成以下规则:

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算法,下面是一个很好的例子