【问题标题】:Machine Learning technique for learning string patterns用于学习字符串模式的机器学习技术
【发布时间】:2017-01-14 21:54:00
【问题描述】:

我是机器学习的新手,我正在寻找一种基于训练数据集学习字符串模式的技术。

我的问题: 我有不同类型的单词,属于不同的类别。每个类别都有自己的模式(例如,一个具有固定长度,只有特殊字符,另一个存在仅出现在该“单词”类别中的其他字符)。

例如:

"ABC" -> type1
"ACC" -> type1
"a8 219" -> type2
"c 827" -> type2
"ASDF 123" -> type2
...

我正在寻找一种机器学习技术,以根据训练数据自行学习这些模式。我已经尝试自己定义一些预测变量(例如字长、特殊字符的数量……),然后使用神经网络来学习和预测类别。但这实际上不是我想要的。我想要一种技术来自己学习每个类别的模式 - 甚至可以学习我从未想过的模式。

我想为算法提供学习数据(由单词类别示例组成),并希望它学习每个类别的模式,以便在以后的生产中从相似或相等的单词中预测类别。

有最先进的方法吗?

感谢您的帮助

【问题讨论】:

    标签: machine-learning pattern-matching weka mahout


    【解决方案1】:

    既然你有标签weka,那么这个过程就是

    1。创建 arff 文件的提要

    例子

    @relation weka_mymodel_model
    
    @attribute text string
    @attribute @@class@@ {type1,type2}
    
    @data
    'boy am I stupid. I mean, wow, that was a major oversight. let\'s blame it on monday.',type1
    ..... all your data
    

    2。在 weka 软件中加载文件

    在预处理选项卡中,您可以过滤(转换)数据;例如可以与J48 分类器等一起使用的StringToWordVector,但我们现在将保留它,只使用可以直接处理您的输入的分类器

    3。分类

    在“分类”选项卡中,选择属性@@class@@,然后选择一个可以直接支持文本的分类器,一个好的开始是NaiveBayesMultinominal

    在分类器的界面中,设置你的设置,Stemmer,StopWords,Tokenizer等。

    要使用的分类器以及使用哪些设置取决于数据,但您可以在“使用训练集”、“提供的测试集”或“交叉折叠”上测试运行分类器,以了解不同设置的结果.

    4 创建模型

    当您对设置感到满意时,导出模型(右键单击结果>>保存模型)。

    5 使用模型

    在 java 中加载模型,创建实例,将其传递给模型并检索结果。

    结论

    weka 软件可让您使用不同的设置测试不同的分类器算法,找到最佳分类器的最佳方法是在“提供的测试集”上使用不同的设置测试运行不同的分类器(使用过滤器、选择属性等)和检查结果。

    ]

    【讨论】:

    • 非常感谢您结构合理且清晰的回答。我已经用 weka GUI 试过了,但没有成功。我认为一个原因可能是我的词不是自然语言词,它们更像是单个随机文本标识符。
    猜你喜欢
    • 2011-07-23
    • 2012-08-12
    • 2015-01-16
    • 2011-05-27
    • 2018-09-26
    • 1970-01-01
    • 1970-01-01
    • 2013-11-07
    • 1970-01-01
    相关资源
    最近更新 更多