机器学习和字符串代码生成器

时间:2010-05-13 18:37:20

标签: code-generation machine-learning nlp classification decision-tree

问题:给定一组手分类字符串(或一组有序的字符串向量)生成分类函数以对更多输入进行分类。就我而言,这些数据(或大部分数据)不是自然语言。

问题:那里有什么工具可以做到吗?我正在考虑某种合理的打磨,下载,安装和去做一些事情,而不是某些图书馆或一个脆弱的学术计划。


(请不要因为真实的详细信息会限制对不那么普遍有用的回复的答案而且受到NDA的限制而不受限制。)

作为我正在看的内容的一个例子;我想要过滤的输入是从日志中提取的计算机生成的状态字符串。根据需要通知的人或需要采取的操作来过滤错误消息(作为示例)。

3 个答案:

答案 0 :(得分:3)

手动操作

如果自动生成错误消息,并且消息背后的异常列表不是非常大,您可能只想拥有一个表格,将每个错误消息 type 直接映射到那些人需要通知。

这可以让您轻松跟踪完全哪些/哪些组将获取哪些类型的消息,并在您确定某些消息被误导时更新消息路由。

通常,一小部分错误构成错误报告的很大一部分。例如,Microsoft注意到他们的软件中有80% of crashes were caused by 20% of the bugs。因此,为了获得有用的东西,您甚至不需要从覆盖每种类型的错误消息的完整表开始。相反,您可以从一个列表开始,该列表将最常见的错误映射到正确的人,并将其他所有内容路由到人员以进行手动路由。每次手动路由错误时,您都可以在路由表中添加一个条目,以便将来自动处理该类型的错误。

文件分类

除非错误消息由提交它们的人进行编辑,并且您希望在路由它们时使用此信息,否则我不建议将其视为文档分类任务。但是,如果这是你想要做的,这里是一个由编程语言组织的文档文档分类相当不错的包列表:

Python - 要使用基于Python的 Natural Language Toolkit (NLTK) 执行此操作,请参阅免费提供的Document Classification中的NLTK book部分。

Ruby - 如果您更喜欢Ruby,可以使用 Classifier gem。以下是检测 whether Family Guy quotes are funny or not-funny的示例代码。

C# - C#程序员可以使用 nBayes 。该项目的主页包含简单垃圾邮件/非垃圾邮件分类器的示例代码。

Java - Java人员 Classifier4J WekaLucene Mahout,adi92提及Mallet

使用Weka学习规则 - 如果规则符合您的要求,Weka可能会特别感兴趣,因为它包含rule set based learner。您将找到有关使用Weka进行文本分类here的教程。

答案 1 :(得分:1)

Mallet有一堆分类器,您可以从命令行完全训练和部署 Weka也很不错,因为它有大量的分类器和预处理器供你玩

答案 2 :(得分:0)

您是否尝试过垃圾邮件或电子邮件过滤器?通过使用已标记为适当类别的文本文件,您应该能够对其他文本输入进行分类。无论如何,这就是那些程序所做的,但不是将输出标记为“垃圾邮件”和“非垃圾邮件”,您可以执行其他类别。

您还可以尝试一些涉及AdaBoost的内容,以便采用更实际的方法来推广自己的方法。来自Google的This library看起来很有希望,但可能无法满足您的部署要求。

相关问题