Tag: 分类

错误在java代码中使用WEKA API时:类属性未设置?

我正在尝试在我的java代码中使用weka API。 我使用J48树分类来分类MySQL数据库中的数据集,但是我有这个错误: Trying to add database driver (JDBC): RmiJdbc.RJDriver – Error, not in CLASSPATH? Trying to add database driver (JDBC): jdbc.idbDriver – Error, not in CLASSPATH? Trying to add database driver (JDBC): com.mckoi.JDBCDriver – Error, not in CLASSPATH? Trying to add database driver (JDBC): org.hsqldb.jdbcDriver – Error, not in CLASSPATH? weka.core.UnassignedClassException: weka.classifiers.trees.j48.C45PruneableClassifierTree: Class attribute […]

Java:如何使用Weka生成的模型组装/创建单个实例进行分类?

我一直在寻找这个答案一段时间无济于事。 首先介绍一下:我正在尝试使用Weka为robocode创建一个AI。 我首先将手动机器人所需的数据记录到ARFF文件中,这是正常的。 然后使用Weka和创建的模型处理此数据,然后保存此文件。 我可以成功导入模型并对从另一个arff文件导入的数据集进行分类并使用结果。 我现在要做的是每次游戏状态更改都是组合一个实例并对其进行分类,以便使用我以前保存的模型来决定移动的方式等。 我试图在维基上查找: http : //weka.wikispaces.com/Programmatic+Use和这个ibm教程: http : //www.ibm.com/developerworks/opensource/library/os-weka3/举几个例子,我也一直在寻找API,但这并没有让我继续下去。 我尝试过的大部分内容都已弃用,例如创建一个带有属性和快速向量的原型,然后创建一个空数据集。 然后使用诸如inst.setvalue(attrib,value)之类的东西创建一个具有所需值的新实例,并将其添加到数据集中。 另外,在实例中,类索引或我预测的属性是否必须为空或设置为缺失或者某些东西,因为我试图预测它时,我不会知道该值? 那么我有什么想法可以解决这个问题吗? 任何帮助是极大的赞赏, 非常感谢你。

在Java中为Maxent类文件创建训练数据

我正在尝试为maxent分类器创建java实现。 我需要将句子分为n不同的类。 我在stanford maxent分类器中查看了ColumnDataClassifier 。 但我无法理解如何创建培训数据。 我需要训练数据的forms,其中训练数据包括句子单词的POS标签,以便用于分类器的function将像前一个单词,下一个单词等。 我正在寻找训练数据,其中包含POS TAGGING和句子类提到的句子。 例子: 我/(POS)名称/(POS)是/(POS)XYZ /(POS)CLASS 任何帮助将不胜感激。

使用LingPipe对朴素贝叶斯进行数据分类

我想根据内容将某些数据分类到不同的类中。 我使用朴素贝叶斯分类器做了它,我得到一个输出作为它所属的最佳类别。 但是现在我想将除了训练集之外的新闻分类为“其他”课程。 我不能手动将除训练数据之外的每个/每个数据添加到某个类中,因为它有大量其他类别。那么有没有办法对其他数据进行分类? private static File TRAINING_DIR = new File(“4news-train”); private static File TESTING_DIR = new File(“4news-test”); private static String[] CATEGORIES = { “c1”, “c2”, “c3”, “others” }; private static int NGRAM_SIZE = 6; public static void main(String[] args) throws ClassNotFoundException, IOException { DynamicLMClassifier classifier = DynamicLMClassifier.createNGramProcess(CATEGORIES, NGRAM_SIZE); for (int i = 0; i […]

我如何在名称,数字,金钱,日期等内容中对文字进行分类?

我在一周前做了一些关于文本挖掘的问题,但我有点困惑,但现在我知道我想做什么。 情况:我有很多带有HTML内容的下载页面。 例如,其中一些可以是来自博客的文本。 它们不是结构化的,来自不同的网站。 我想做什么:我将用空白分割所有单词,我想在一些预先定义的内容中对每个单词或一组单词进行分类,如姓名,号码,电话,电子邮件,url,日期,金钱,温度等。 我所知道的:我知道有关自然语言处理,命名实体重新接收器,POSTagging,NayveBayesian,HMM,培训和许多要做分类的事情的概念/听说过,但是有一些不同的NLP库有不同的分类器和这样做的方法,我不知道有什么用途或做什么。 我需要什么:我需要一些来自分类器,NLP的代码示例,无论如何,它可以对文本中的每个单词进行分类,而不是整个文本。 像这样的东西: //This is pseudo-code for what I want, and not a implementation classifier.trainFromFile(“file-with-train-words.txt”); words = text.split(” “); for(String word: words){ classifiedWord = classifier.classify(word); System.out.println(classifiedWord.getType()); } 有人可以帮帮我吗? 我对各种API,分类器和算法感到困惑。

如何使用WordNet或与wordnet相关实现基于类别的文本标记?

如何使用wordnet的类别(java作为接口)使用wordnet标记文本? 例 考虑句子: 1)计算机需要键盘,监视器,CPU才能工作。 2)汽车使用齿轮和离合器。 现在我的目标是,例句必须被标记为 第一句话 电脑/电子 键盘/电子 CPU /电子 第二句话 汽车/机械 齿轮/机械 离合/机械 一些额外的例子…… “使用微芯片监控离合器和齿轮” – >离合器/机械,齿轮/机械,微芯片/电子 “此处用于监测氢气水平的软件” – >软件/计算机,氢/化学.. 我想在java上实现上面提到的目标,即通过技术,机械,电气等相关类别来标记名词。 如何使用wordnet执行此操作。 我以前的作品 为了实现我的目标,我在每个类别的文本文件中创建了一个术语索引,并将其与标题匹配..如果它在文本文件中包含一个单词,则标题将被分类。 例如 Automobile.txt有car , gear , wheel , clutch 。 networking.txt有server,IP Address,TCP , RIP 这是算法: String Classify (String title) { String area; if (compareWordsFrom (“Automobile.txt”,title) == true ) area = […]

用于商业用途的Java机器学习库?

有谁知道我可以用于商业产品的好的Java机器学习库? 不幸的是,Weka和Rapidminer不允许这样做。 我已经找到了Apache Mahout和Java Data Mininng Package 。 有没有人经历过这些并提供一些决策支持? 该任务需要聚类和分类算法。

什么是最好的开源Java贝叶斯垃圾邮件filter库?

在Stackoverflow的其他答案中,有人建议Weka很好,但还有其他( Classifier4j , jBNC , Naiban )。 有没有人有这些实际经验?

用lucene提取tf-idf向量

我使用lucene索引了一组文档。 我还为每个文档内容存储了DocumentTermVector。 我写了一个程序并为每个文档得到了术语频率向量,但是如何获得每个文档的tf-idf向量? 这是我的代码,在每个文档中输出术语频率: Directory dir = FSDirectory.open(new File(indexDir)); IndexReader ir = IndexReader.open(dir); for (int docNum=0; docNum<ir.numDocs(); docNum++) { System.out.println(ir.document(docNum).getField("filename").stringValue()); TermFreqVector tfv = ir.getTermFreqVector(docNum, "contents"); if (tfv == null) { // ignore empty fields continue; } String terms[] = tfv.getTerms(); int termCount = terms.length; int freqs[] = tfv.getTermFrequencies(); for (int t=0; t < termCount; t++) […]

weka.core.UnassignedDataset在创建未标记的实例时发生exception

我训练了一个IBK分类器,其中包含我手动创建的一些训练数据,如下所示: ArrayList atts = new ArrayList(); ArrayList classVal = new ArrayList(); classVal.add(“C1”); classVal.add(“C2”); atts.add(new Attribute(“a”)); atts.add(new Attribute(“b”)); atts.add(new Attribute(“c”)); atts.add(new Attribute(“d”)); atts.add(new Attribute(“@@class@@”, classVal)); Instances dataRaw = new Instances(“TestInstances”, atts, 0); dataRaw.setClassIndex(dataRaw.numAttributes() – 1); double[] instanceValue1 = new double[]{3,0,1,0,0}; dataRaw.add(new DenseInstance(1.0, instanceValue1)); double[] instanceValue2 = new double[]{2,1,1,0,0}; dataRaw.add(new DenseInstance(1.0, instanceValue2)); double[] instanceValue3 = new double[]{2,0,2,0,0}; […]