符号化数据集Weka中缺少标签- JAVA

4dc9hkyq  于 2023-03-11  发布在  Java
关注(0)|答案(1)|浏览(114)

我正在实现情感分析,当我对dataset.arff进行标记化以将其用作训练模型时,我注意到它缺少“Positive”标签
数据集.arff文件头:
关系情感分析
@attribute文本字符串@attribute classValues {正、负、中性、“非常正”、“非常负”}
@data“一些文本”、肯定“一些文本”、否定“一些文本”、中性[...]
标记化数据:

@relation 'SentimentAnalysis-weka.filters.unsupervised.attribute.StringToWordVector-R1-W5000-prune-rate-1.0-N0-stemmerweka.core.stemmers.NullStemmer-stopwords-handlerweka.core.stopwords.Null-M1-tokenizerweka.core.tokenizers.WordTokenizer -delimiters \" \\r\\n\\t.,;:\\\'\\\"()?!\"'

@attribute classValues {Positive,Negative,Neutral,'Very positive','Very negative'}

设置为@attribute numeric的文本中的所有单词
然后我有@data部分

{0 Negative,20 1,220 1,228 [...] }
{0 Neutral,22 1,169 [...] }
{22 1,169 1,272 [...] }

########################################

这只是几行例子我有更多类似的,我不明白为什么是失踪的积极,
这是我的标记器代码

public static void Tokenizer(){
           
            
            ArffLoader loader = new ArffLoader();
            String filename = "dataset.arff";
            File file = new File(filename);
            
            //checking if the file exist

            if (file.exists()){
                try {
                    loader.setFile(new File(filename));
                    Instances data = loader.getDataSet();
                    if (data.classIndex() == -1){
                        data.setClassIndex(data.numAttributes()- 1);
                    }

                    String[] options = new String[] {"-R", "1", "-W", "5000", "-prune-rate", "-1.0"};
                    StringToWordVector filter = new StringToWordVector();
                    filter.setOptions(options);
                    filter.setInputFormat(data);
                    
                    Instances filteredData = Filter.useFilter(data, filter);
                    
                    File tokenizedFile = new File("tokenizeDataSet.arff");

                    ArffSaver saver = new ArffSaver();
                    saver.setInstances(filteredData);
                    saver.setFile(tokenizedFile);
                    saver.writeBatch();

                    System.out.println("tokenized text saved properly");
                } catch (Exception e) {
                    System.out.println("Error in reloading the Arff file:"+ e.getMessage());
                    e.printStackTrace();
                }
                
            }    
    }

我希望在tokenize数据集中也有阳性标签!

flvlnr44

flvlnr441#

它们没有丢失。当使用稀疏ARFF格式时,第一个位置的标称值只会被抑制。请参阅Weka wiki上的稀疏ARFF格式。

相关问题