有人用java写过文本分类系统吗

Python014

有人用java写过文本分类系统吗,第1张

文本分类的重点不在分类,而在怎么样描述文本模型和提取文档中的terms并把它数字化,转化为分类器可以使用的输入类型。这前面的处理直接关系到后面分分类效果。就文本模型而言,现在普遍使用的还是Salton 和 McGill的Vector Space Model, 通过TF-IDF统计,如果是英文的话,要进行语义层次的抽象, 这方面可以使用WordNet,网上可以找到JAVA wordnet 的API,,个人认为比较好的是JWNL 如果是中文的话,涉及到分词, 中科院计算所分词系统ICTCLAS, 可到其网站上下载免费版。

至于JAVA写的分类器很多,常用的比如说Weka, RapidMiner(这个相当不错,有专门的Web data Mining的扩展包,是我的最爱),这些都可以自己调用其接口实现新的算法。个人强烈推荐使用RapidMiner,功能相当强大,几乎实现了当前的所有机器学习的算法,并且操纵简便。

学习提示:不要刚开始就希望效果很好,急躁是做学问的大敌,肯定会出现一些意想不到的问题,最主要是勤于思考,善于查找问题,慢慢改进,一个问题,如果比较难,回到它最原始最简单的问题上去。祝你学业进步。

public static void main(String[] args) throws Exception{

File file=new File("D:\\output.txt")

BufferedReader reader=new BufferedReader(new FileReader(file))

String r=null

int one=0,two=0,three=0

String [] temp=null

while((r=reader.readLine())!=null)

{

if(r.contains("one"))

{

temp=r.split(":", r.length())

if(temp!=null)

{

if(!" ".equals(temp[1]))

{

one+=Integer.valueOf(temp[1])

}

else{

one+=0

}

}

}

else if(r.contains("two"))

{

temp=r.split(":", r.length())

if(temp!=null)

{

if(!" ".equals(temp[1]))

{

two+=Integer.valueOf(temp[1])

}

else{

two+=0

}

}

}

else if(r.contains("three"))

{

temp=r.split(":", r.length())

if(temp!=null)

{

if(!" ".equals(temp[1]))

{

three+=Integer.valueOf(temp[1])

}

else{

three+=0

}

}

}

}

System.out.println("One="+one+" Two="+two+" Three="+three)

}

自己测试一下:这是我的输出结果

Console:

One=190 Two=0 Three=410