如何进行元素的随机嵌入括号

我正在编写一个自动成分括号化的学习算法。由于算法是从零开始的,括号化(嵌入式)最初应该是随机的。然后通过迭代进行改进。我在如何进行随机括号化上遇到了困难。您能否建议一个R或Python的代码,或者提供一些编程思路(伪代码)?我还需要关于如何检查随机括号化与正确括号化的正确性的想法。

这是我通过学习过程,最终希望达到的目标,从随机括号化开始。

这是一个句子。’他’ ‘追’ ‘那’ ‘狗。’

将每个元素替换为语法元素,N,V,D,N。

括号化(第一阶段)(D,N是成分):(N) (V) (D N)

括号化(第二阶段):(N) ((V) (D N))

括号化(第三阶段):((N) ((V) (D N)))

请帮助我。谢谢你。


回答:

根据提供的信息,我能说的就是这些:

一种简单的括号化方法是生成一些树(生成所有树很快就会变得非常占用空间),树的叶子数量与单词(或组件)数量相同,然后随机选择一个合适的树(或根据适当的分区选择),并将其应用为括号化模式。为了提高效率,可以寻找真正的随机树生成算法(目前我没有找到)。

此外,我建议阅读关于遗传算法/进化编程的资料,特别是适应度函数(这是“检查随机结果的正确性”部分)。据我理解,您希望程序能够检测解析方式,然后将它们作为“学习”内容保存在内存中。这与带有“最适合”模式记忆(且仅以变异作为变化因素)的遗传算法非常匹配。

一个非常详细(如果有效的话),但可能极其困难的方法是使用遗传编程。但这可能与您想要的相差太大。

最后,我认为检查括号化正确性的最简单方法是保持一个包含语法/句法规则的表格,并与之进行比较。您还可以通过将它们保存在树中,并测量实际模式((V D) N)与正确模式(V (D N))之间的距离,来改进这点以获得更好的适应度函数。(这只是一个随机的想法,我从未实际这样做过..)

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注