用于大型数据集分类的NLP软件 背景
多年来,我一直在使用我自己的类似贝叶斯的方法,根据一个不断更新的大型训练数据集,对来自外部来源的新项目进行分类 每个项目有三种类型的分类:用于大型数据集分类的NLP软件 背景,nlp,nltk,Nlp,Nltk,多年来,我一直在使用我自己的类似贝叶斯的方法,根据一个不断更新的大型训练数据集,对来自外部来源的新项目进行分类 每个项目有三种类型的分类: 30个类别,其中每个项目必须属于一个类别,最多两个类别 10个其他类别,其中每个项目仅在存在强匹配时与一个类别关联,并且每个项目可以属于与匹配相同的多个类别 4个其他类别,其中每个项目必须只属于一个类别,如果没有强匹配项,则将项目指定给默认类别 每个项目由大约2000个字符的英文文本组成。在我的培训数据集中,大约有265000个项目,其中包含10000000
- NLTK
- 廷布尔
然而,我的重点是主题建模,而不是分类本身
此外,请注意,对于许多NLP解决方案,您不需要自己输入“功能”(如N-gram,即问题中提到的三个单词短语和两个单词短语),而是依靠各种NLP函数生成自己的统计模型。MALLET有许多分类器(NB、MaxEnt、CRF等)。这是安德鲁·麦卡勒姆的团队写的。SVMLib是另一个不错的选择,但SVM模型通常比MaxEnt需要更多的调整。或者,在这种情况下,像K-means这样的在线集群可能并不坏 一旦您对模型进行了培训,SVMLib和MALLET就相当快了(C和Java)。不过,模特训练可能需要一段时间!不幸的是,找到示例代码并不总是那么容易。我有(还有斯坦福解析器,它速度很慢,而且对于您的目的来说可能有点过头了)。NLTK是一个很好的学习工具,非常简单,你可以将你在那里做的事情原型化,这很理想
NLP更多的是特性和数据质量,而不是您使用的机器学习方法。3克可能不错,但是在这些字符上的字符n克呢?也就是说,3克中的所有字符都要考虑拼写变化/词干等?命名实体可能也很有用,或者是某种词典。根据个人经验,我推荐。据说它拥有最快的文本分类算法之一 我推荐Mahout,因为它用于处理超大规模的数据集。 ML算法是在ApacheHadoop(map/reduce)上构建的,因此伸缩性是固有的 看看下面的分类部分,看看它是否有用。
我根据您的建议对Vowpal Wabbit进行了广泛的研究,但我不知道如何将其用于分类;它似乎只是回归(数字)和LDA。输入标签是一个浮点,与输出预测相同。VW肯定是一个分类器。它可以进行多类分类(v7+)。看一看: