人工智能,文本分类器

时间:2011-08-19 11:44:24

标签: c# winforms artificial-intelligence neural-network bayesian

我是AI的新手。我正在通过机器学习来处理文本分类的应用程序。应用程序需要对HTML文档的不同部分进行分类。例如,大多数网页都有头部,菜单,侧边栏,页脚,主要内容等。我想使用文本分类器对HTML文档的这些部分进行分类,并在页面上识别不同类型的表单。

  1. 如果有人能提供有关此主题的详细指导,将会非常有帮助。
  2. 类似应用的例子,也会非常有帮助。
  3. 我正在寻找更多与代码相关的技术建议。实施

    我可以为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(标签:“菜单”,值:“menu-1”,属性:“class”,位置在字符串中:“21%”,标签:“div”);

    输入

    1. “menu-1”(属性值)
    2. 列表项
    3. “class”(属性名称)
    4. “21”(字符串中的标记位置)
    5. “div”(标记名称)
    6. 输出

      1. “菜单”(分类为标签)
      2. 什么神经网络库可以采用上述输入,并将它们分类到标签(即菜单)。

        所有用户都无法创建正则表达式或xpath,他们需要更简单的方法,因此重要的是,要使软件智能化,用户可以使用webbrowser控件突出显示他/她需要的html文档部分,并培训软件直到它可以独立工作。

        但我不知道如何使用AI制作软件,

        我正在寻找的AI,就像它应该能够接受各种输入一样,并在此基础上进行分类,正如我已经说过AI的新内容,对此并不了解。

        如果我能回答我提出的问题,比如我应该使用哪个库,以及如何实现,答案提示Xpath或Regex或其他方法请不回答,那将对我有所帮助。你得到的所有建议都是你需要的。

3 个答案:

答案 0 :(得分:3)

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

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

    如果您想了解这些是如何工作的,请下载WEKA工具包:

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

    通常遵循的步骤如下:

    1. 确定尽可能多的属性/功能(以及一组标签)。
    2. 收集数据集{Label,Attribute1,A2,A3,...}
    3. 使用特征选择算法(也可在WEKA工具包中找到)
    4. 选择一组最小的重要属性
    5. 使用标准算法训练分类器
    6. 测试系统,直到您收到所需的准确度,召回或其他参数。
    7. 祝你好运!

答案 1 :(得分:2)

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

在进行任何类型的分类之前,您需要执行受监督的培训。为了让ANN了解你所投入的内容,你需要弄清楚如何解析HTML以获得你想要的结果。

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

你的问题并不容易。

答案 2 :(得分:0)

如果您有必须为其分配标签的数据,

分类可以帮助您。不是这种情况。你最好手动写出XPath规则来拆开你的文件。