7

我是人工智能新手。我正在开发一个通过机器学习进行文本分类的应用程序。应用程序需要对 HTML 文档的不同部分进行分类。例如,大多数网页都有标题、菜单、侧边栏、页脚、主要内容等。我想使用文本分类器对 HTML 文档的这些部分进行分类,并识别页面上不同类型的表单。

  1. 如果有人可以提供有关此主题的详细指导,那将非常有帮助。
  2. 类似应用的例子,也会很有帮助。

我正在寻找更多与代码和实现相关的技术建议。

我可以将标签分配给 html 标签属性,例如 class 或 id

<div class="menu-1">
<div id="entry">
<div id="content">
<div id="footer">
<div id="comment-12">
<div id="comment-title">

喜欢第一项:

TrainClassifier(label: "Menu", value: "menu-1", attribute: "class", position-in-string: "21%", tag: "div");

输入:

  1. “menu-1”(属性值)
  2. 项目清单
  3. “类”(属性名称)
  4. “21”(字符串中的标记位置)
  5. “div”(标签名称)

输出

  1. “菜单”(分类为标签)

什么神经网络库,可以把上面的输入,分类成标签(即菜单)。

所有用户都不能创建正则表达式或xpath,他们需要更简单的方法,所以让软件变得智能很重要,用户可以突出显示他/她需要的html文档部分,使用webbrowser控制,并训练软件直到它可以自己工作。

但我不知道如何使用人工智能让软件训练,

我正在寻找的人工智能是,它应该能够接受各种输入,并在此基础上进行分类,正如我已经说过的人工智能新手,对它了解不多。

如果我能回答我所问的问题,例如我应该使用什么库,以及如何实现,建议 Xpath 或 Regex 或其他方法的答案,请不要回答,这对我会有帮助,你经常会得到所有建议,但你需要的。

4

3 回答 3

3

我建议你先研究简单易懂的算法,我可以指点一些。

  1. 朴素贝叶斯(你会发现很多实现,但你可以自己做,算法很容易实现,但非常强大)。
  2. 最大熵(例如 SharpMaxEnt - 开源)。
  3. SVM(例如用于 C# 端口的 LibSVM)。

    如果您想了解这些工作原理,请下载 WEKA 工具包:

    http://sourceforge.net/projects/weka/
    

    通常遵循的步骤通常如下:

    1. 识别尽可能多的属性/特征(和一组标签)。
    2. 收集一组数据 { Label, Attribute1, A2, A3, ... }
    3. 使用特征选择算法选择一组最小的重要属性(也可在 WEKA 工具包中获得)
    4. 使用标准算法训练分类器
    5. 测试系统,直到您收到所需的准确度、召回率或其他参数。

    祝你好运!

于 2011-08-24T06:51:24.180 回答
2

这是一个非常广泛的话题。有一些用于 C# 的神经网络库,只需在 Stack Overflow 上搜索即可。

在进行任何类型的分类之前,您需要执行监督训练。为了让 ANN 了解您向它抛出的内容,您需要弄清楚如何解析 HTML 以获得您正在寻找的结果。

例如,大多数网站将使用 CSS 在浏览器上呈现内容。其他站点可能会使用表格。您将需要为两者进行训练。

你的问题并不容易。

于 2011-08-20T02:21:20.190 回答
0

如果您有必须为其分配标签的数据,分类可以帮助您。不是这种情况。您最好手动编写 XPath 规则来拆分文档。

于 2011-08-19T19:42:54.480 回答