2

首先这是很难解决的问题,到目前为止我还没有想出一个很好的例子,但我希望这里有人能解决这个问题。我希望有解决这类问题的已知方法,或者一种晦涩难懂的算法。

设想:

  • 在我的应用程序中,我对同一个网页做了几个请求
  • 网页中有动态和随机的内容,例如(日期时间和当天的报价等,理论上可以是任何内容)
  • 此应用程序的响应有 2 种情况,我们称它们为“TRUE”和“FALSE”。例如,有时响应会返回“True Text”,有时会返回“False Text”。
  • 我的应用程序知道 3 个“TRUE”案例样本和 3 个“FALSE”案例样本,但这些也包括“时间”等随机内容。

挑战

  • 现在,当我的应用程序收到新响应时,我如何了解此响应是“TRUE”还是“FALSE”案例的示例?

我试过的

  • 逐行处理TRUE case的第一个样本,并根据字符的值生成一个整数数组
  • 对第二个 TRUE 样本做同样的事情
  • 对第三个 TRUE 样本做同样的事情
  • 分析这些存储的 TRUE 案例之间的差异并创建一个新数组
  • 现在,我知道哪些行是动态的(例如日期时间),现在我创建了一个新的最终 TRUE 案例数组,它只将静态行存储到最终的 TRUE 案例数组中。
  • 现在,当我得到一个新案例时,我创建了一个类似的数组,然后将其与之前存储的最终 TRUE 案例进行比较,如果匹配(过滤行除外),如果其他行发生大量更改(存在容差值),那么它是 TRUE 案例错误的。

该算法的局限性和弱点非常明显。虽然我在某些情况下取得了一些不错的结果,但它并没有一直按预期工作。

我目前的课程是这样的:

Dim Analyser AS NEW ContentAnalyzer()
Analyser.AddTrueCase(True1Html)
Analyser.AddTrueCase(True2Html)
Analyser.AddTrueCase(True3Html)

'This will return True if the UnknownHtml is similar to TRUE case, otherwise False
Analyser.IsThisTrue(UnknownHtml) 

对不起,标题没有多大意义,我找不到描述它的好方法。

4

3 回答 3

2

听起来您正在做相当简单的文档分类。这是一个深入研究的领域,尤其是最近由于垃圾邮件过滤器。使用您选择的语言查看文档分类库。

Classifier4j看起来像是在 Java VM 上运行并已移植到 .NET 的流行库。

于 2009-04-02T22:31:22.973 回答
1

要么这真的是错误的,要么我没有得到任何东西:

应用程序请求网页并获取它,并且必须确定它是另一个“真”还是“假”,对吗?这就是说,Web 请求的一部分不是在开头返回真或假,这是我第一个困惑的地方。

其次,您为什么不对错误案例进行类似的比较,看看是否有足够的相似性来为请求的某些随机页面创建 3 个结果桶:

1) 页面更类似于真实,因此被视为真实。

2) page 更类似于 false,因此被视为 false。

3) 页面与两者都不太相似,因此结果类似于 null 或异常情况,因为无法辨别哪个结果有意义。

第三种情况可能发生的示例:假设页面包含一个整数,如果为正,则结果为真,如果为负,则结果为假。如果结果为 0 怎么办?0 等于其绝对值,因此算作正数,还是由于某种原因算作负数?

或者我在你在这里想要做的事情上有所偏离?

于 2009-04-02T22:25:29.867 回答
0

也许您的意思是贝叶斯过滤之类的东西?你可以看看 Paul Graham 对垃圾邮件做了什​​么:http: //www.paulgraham.com/better.html

于 2009-04-02T22:49:21.400 回答