|
|
1
3
我认为你从错误的角度来看待这个问题。从你的描述来看,听起来你在建造一个 分级机 . 一个好的分类器需要区分不同的类;它不需要精确地估计输入和最可能的类之间的对应关系。 实际上:你的分类器不需要精确地评估C++的某个输入的接近程度,它只需要确定输入是否更像C而不是C++。这让你的工作变得容易多了——你目前的大多数“未知”案例将接近一种或两种语言,即使它们没有超过你的基本门槛。
现在,一旦您意识到这一点,您还将看到您的分类器需要什么:不是样本文件的一些随机方面,而是将两种语言区分开来的原因。因此,当您解析了C样本和C++样本时,您将看到
这还标识了另一个分类规则:SQL通常具有
|
|
|
2
2
使用谷歌代码搜索来学习关键词集的权重:C++中包含的672个命中,在Python中只有5000个。 您可以通过查看语言的结果总数来规范化结果: C++提供了大约770个文件,而Python返回了120个文件。 因此,“y-包含”在Python文件中非常罕见,但几乎存在于所有C++文件中。(当然,现在你仍然需要学习区分C++和C。)剩下的就是对概率进行正确的推理。 |
|
|
3
1
您需要在查找数据中获得一些独占性。
|
|
|
4
0
在回答你的另一个问题时,有人推荐了一个
naïve Bayes classifier
. 你应该执行这个建议,因为这项技术善于根据不同的特征进行分离。你提到了
问题的一个有趣部分是如何标记未知程序。以空格分隔的块是一个相当粗糙的开始,但要有意义地超越它将是一个棘手的问题。 |
|
|
Carsten · 使用最近的搜索模式更改文本块 1 年前 |
|
|
A.Ellett · 测试-t STDIN与-t<STDIN> 1 年前 |
|
|
con · 如何跳转到foreach迭代的特定点? 1 年前 |