首先,这是一个很难解决的问题,到目前为止我还没有想到一个好的例子,但我希望这里有人能解决这个问题。我希望有已知的方法来解决这类问题,或者某种晦涩的算法。
场景:
- 在我的应用程序中,我向同一个网页发出多个请求。
- 网页包含动态和随机内容,例如(日期时间,每日名言等,理论上可以是任何东西)。
- 此应用程序的响应有两种情况,我们称之为“TRUE”和“FALSE”。例如,有时响应会返回“True Text”,有时会返回“False Text”。
- 我的应用程序知道“TRUE”情况的3个样本和“FALSE”情况的3个样本,但这些样本也包含随机内容,例如“时间”。
挑战
- 现在,当我的应用程序收到一个新的响应时,我如何判断此响应是“TRUE”还是“FALSE”情况的示例?
我尝试过的方法
- 逐行处理TRUE情况的第一个样本,并从字符的值生成一个整数数组。
- 对第二个TRUE样本执行相同的操作。
- 对第三个TRUE样本执行相同的操作。
- 分析这些存储的TRUE情况之间的差异,并创建一个新数组。
- 现在,我知道哪些行是动态的(例如日期时间),现在我创建一个新的最终TRUE情况数组,该数组仅将静态行存储到最终TRUE情况数组。
- 现在,当我得到一个新的情况时,我创建一个类似的数组,然后将其与先前存储的最终TRUE情况进行比较,如果匹配(除去过滤掉的行),则为TRUE情况,如果其他行发生了大量更改(存在容差值),则为FALSE情况。
此算法的局限性和弱点非常明显。尽管我在某些情况下获得了一些好的结果,但它并不总是按预期工作。
我当前的类的工作方式如下:
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)
抱歉,标题不太合理,我找不到一个好方法来描述它。
回答:
听起来你正在做相当简单的文档分类。这是一个被大量研究的领域,尤其是最近由于垃圾邮件过滤器。在您选择的语言中查找用于文档分类的库。
Classifier4j 看起来是一个流行的库,它在 Java VM 上运行并且已被移植到 .NET。