ft。居然设置了只能连续回复三次,所以只好结贴发个新帖了,请斑竹多担待,java菜鸟。
上次的帖子中,简单的说了下功能:就是调用opennlp工具包,对文件下的所有文件(摘要文件)进行分句,并输出到新建的文件夹下,新建文件下的文件,文件名为原文件,
简单的代码如下:import java.io.*;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;import opennlp.tools.chunker.ChunkerME;
import opennlp.tools.dictionary.Dictionary;
import opennlp.tools.lang.english.PosTagger;
import opennlp.tools.lang.english.SentenceDetector;
import opennlp.tools.lang.english.Tokenizer;
import opennlp.tools.lang.english.TreebankChunker;
import opennlp.tools.lang.english.TreebankParser;
import opennlp.tools.parser.Parse;
import opennlp.tools.parser.Parser;
import opennlp.tools.postag.POSTaggerME;
import opennlp.tools.sentdetect.SentenceDetectorME;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.util.InvalidFormatException;
public class FileProcess {
//声明部分
private SentenceDetectorME sdetector;
private TokenizerME tokenizer;
private POSTaggerME posTagger;
private ChunkerME chunker;
private Parser parser;
public FileProcess()
{
构造函数体 }
//分句
public String[] getSentence(String para)
{
String[] sents = sdetector.sentDetect(para);
return sents;
}
//将文件读取成一个字符串
public String readFileToString(String filename)
{
String result = "";
try {
BufferedReader fread = new BufferedReader(new FileReader(filename));
String line = fread.readLine();
while(line!=null)
{
result+=line+" ";
line=fread.readLine();
}
fread.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
//创建单个文件 public static boolean CreateFile(String destFileName) {
创建文件
}
// 创建目录 public static boolean createDir(String destDirName) {
创建目录 }
public static void main(String[] argements) throws FileNotFoundException, IOException{
FileProcess FP=new FileProcess();
String tempstream=null;
String[] tempsentence=null;
String DirName="D:\\SenFile";
BufferedWriter outputFile=null;
FP.createDir(DirName);
try
{
File file = new File("D:\\interactions");
if (!file.isDirectory())
{
System.out.println("It is not an directory!");
}
else if (file.isDirectory())
{
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++)
{
//读入一个文件,调用getSentence函数获得分句
tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);
tempsentence=FP.getSentence(tempstream); //函数返回值为null,怀疑这里不能进行赋值,
//根据所读入文件名,创建所对应的结果文件
String DirFileName=DirName+"\\"+filelist[i];
FP.CreateFile(DirFileName);
//将分句结果读入到结果文件中
try
{
outputFile=new BufferedWriter(new FileWriter(DirFileName));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file!");
}
for(int j=0;j<tempsentence.length;i++)
{
outputFile.write(tempsentence[i]);
outputFile.newLine();
}
} } }
catch (Exception e) {
System.out.println("readfile() Exception:" + e.getMessage());
}
outputFile.close();
}
}程序debug时,
tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);应该是读入了文件
tempsentence=FP.getSentence(tempstream);但是函数返回为null值,
同时抛出异常,System.out.println("readfile() Exception:" + e.getMessage());请高手指点,感激:)
上次的帖子中,简单的说了下功能:就是调用opennlp工具包,对文件下的所有文件(摘要文件)进行分句,并输出到新建的文件夹下,新建文件下的文件,文件名为原文件,
简单的代码如下:import java.io.*;import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.FileReader;import opennlp.tools.chunker.ChunkerME;
import opennlp.tools.dictionary.Dictionary;
import opennlp.tools.lang.english.PosTagger;
import opennlp.tools.lang.english.SentenceDetector;
import opennlp.tools.lang.english.Tokenizer;
import opennlp.tools.lang.english.TreebankChunker;
import opennlp.tools.lang.english.TreebankParser;
import opennlp.tools.parser.Parse;
import opennlp.tools.parser.Parser;
import opennlp.tools.postag.POSTaggerME;
import opennlp.tools.sentdetect.SentenceDetectorME;
import opennlp.tools.tokenize.TokenizerME;
import opennlp.tools.util.InvalidFormatException;
public class FileProcess {
//声明部分
private SentenceDetectorME sdetector;
private TokenizerME tokenizer;
private POSTaggerME posTagger;
private ChunkerME chunker;
private Parser parser;
public FileProcess()
{
构造函数体 }
//分句
public String[] getSentence(String para)
{
String[] sents = sdetector.sentDetect(para);
return sents;
}
//将文件读取成一个字符串
public String readFileToString(String filename)
{
String result = "";
try {
BufferedReader fread = new BufferedReader(new FileReader(filename));
String line = fread.readLine();
while(line!=null)
{
result+=line+" ";
line=fread.readLine();
}
fread.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return result;
}
//创建单个文件 public static boolean CreateFile(String destFileName) {
创建文件
}
// 创建目录 public static boolean createDir(String destDirName) {
创建目录 }
public static void main(String[] argements) throws FileNotFoundException, IOException{
FileProcess FP=new FileProcess();
String tempstream=null;
String[] tempsentence=null;
String DirName="D:\\SenFile";
BufferedWriter outputFile=null;
FP.createDir(DirName);
try
{
File file = new File("D:\\interactions");
if (!file.isDirectory())
{
System.out.println("It is not an directory!");
}
else if (file.isDirectory())
{
String[] filelist = file.list();
for (int i = 0; i < filelist.length; i++)
{
//读入一个文件,调用getSentence函数获得分句
tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);
tempsentence=FP.getSentence(tempstream); //函数返回值为null,怀疑这里不能进行赋值,
//根据所读入文件名,创建所对应的结果文件
String DirFileName=DirName+"\\"+filelist[i];
FP.CreateFile(DirFileName);
//将分句结果读入到结果文件中
try
{
outputFile=new BufferedWriter(new FileWriter(DirFileName));
}
catch(FileNotFoundException e)
{
System.out.println("Error opening the file!");
}
for(int j=0;j<tempsentence.length;i++)
{
outputFile.write(tempsentence[i]);
outputFile.newLine();
}
} } }
catch (Exception e) {
System.out.println("readfile() Exception:" + e.getMessage());
}
outputFile.close();
}
}程序debug时,
tempstream=FP.readFileToString("D:\\interactions\\"+filelist[i]);应该是读入了文件
tempsentence=FP.getSentence(tempstream);但是函数返回为null值,
同时抛出异常,System.out.println("readfile() Exception:" + e.getMessage());请高手指点,感激:)
eclipse调试时,出现这样的问题
FileProcess at localhost:1215 contains absolete methods:
Reason:
the virtual machine was unable to remove all stack frames running old code from the call stack.谢谢