Java 在不丢失重音的情况下,将.txt文件(ANSI编码)转换为.Arff
我很难找到如何将ANSI编目中的.txt文件转换为weka中的.arff文件,而不会在转换过程中丢失一些重音和单词的含义。我在读西班牙语的文章,问题是有重音的单词转换不好,因为有重音的字母是这样转换的 我的原始.txt |.arff文件转换结果 矿工�a 字母“í”在这个过程中丢失了 我现在的代码是这个(代码由weka大学提供)Java 在不丢失重音的情况下,将.txt文件(ANSI编码)转换为.Arff,java,netbeans,weka,ansi,Java,Netbeans,Weka,Ansi,我很难找到如何将ANSI编目中的.txt文件转换为weka中的.arff文件,而不会在转换过程中丢失一些重音和单词的含义。我在读西班牙语的文章,问题是有重音的单词转换不好,因为有重音的字母是这样转换的 我的原始.txt |.arff文件转换结果 矿工�a 字母“í”在这个过程中丢失了 我现在的代码是这个(代码由weka大学提供) public Instances createDataset(String directoryPath)引发异常{ FastVector atts=新的FastVect
public Instances createDataset(String directoryPath)引发异常{
FastVector atts=新的FastVector(2);
atts.addElement(新属性(“filename”,(FastVector)null));
atts.addElement(新属性(“contents”,(FastVector)null));
实例数据=新实例(“文本文件中的文件”+目录路径,附件,0);
文件目录=新文件(目录路径);
String[]files=dir.list();
对于(int i=0;i
}
我正在使用Netbeans从计算机中的文件强制转换文件。
你可能会认为我在这一页的其他帖子上问了同样的问题,但实际上我不是这样,因为我真正需要的是一个能正确转换西班牙语口音的转换器
我曾尝试将Netbeans中的编码更改为UTF-8和ANSI,但没有一个解决方案对我有效(我转到Netbeans8.1-->etc-->Netbeans.conf中的配置文件,并在那里添加了-J-Dfile.encoding=UTF-8,在Netbeans\u default\u options=..行中,但仍然不起作用).我对这个问题感到有点沮丧
在我失去理智后,我找到了一个部分解决方案。事实上,这个解决方案不是真正的解决方案,所以我希望有一天有人会回答一些可能拯救数据挖掘世界的问题。解决方案包括将文本保存在UTF-8中而不使用BOM(UTF-8 sin BOM)。您还必须配置Netbeans以读取UTF8,正如我上面所解释的。我遇到了这个问题,我的解决方案是编码到ANSI 我用记事本++ 步骤:
- 打开你的文件
- 转到顶部面板
- 在ANSI中编码->编码
- 打开你的文件
- 转到顶部面板
- 在ANSI中编码->编码
- 我遇到了这个问题,我的解决方案是编码到ANSI
我用记事本++
步骤:
public Instances createDataset(String directoryPath) throws Exception {
FastVector atts = new FastVector(2);
atts.addElement(new Attribute("filename", (FastVector) null));
atts.addElement(new Attribute("contents", (FastVector) null));
Instances data = new Instances("text_files_in_" + directoryPath, atts, 0);
File dir = new File(directoryPath);
String[] files = dir.list();
for (int i = 0; i < files.length; i++) {
if (files[i].endsWith(".txt")) {
try {
double[] newInst = new double[2];
newInst[0] = (double)data.attribute(0).addStringValue(files[i]);
File txt = new File(directoryPath + File.separator + files[i]);
// meto codigo nuevo aqui dentro
// hasata aqui
InputStreamReader is;
is = new InputStreamReader(new FileInputStream(txt));
StringBuffer txtStr = new StringBuffer();
int c;
while ((c = is.read()) != -1) {
txtStr.append((char)c);
// s pstir de aqui contamino yo el codigo
// System.out.println("Sale " + is.toString();
}
newInst[1] = (double)data.attribute(1).addStringValue(txtStr.toString());
data.add(new Instance(1.0, newInst));
} catch (Exception e) {
//System.err.println("failed to convert file: " + directoryPath + File.separator + files[i]);
}
}
}
return data;