Java入门基础笔记-8
学习如何写TF-IDF的代码(1)
通过以上的学习,我们来具体完成一个任务,就是写出一个程序的代码。我们写代码不是凭空自己去写程序,对于一些解决方案,我们通过网络进行搜索,然后自己通过已经学到的知识进行修改,自己写的话太过于困难。具体任务如下:
数据描述:压缩文件中包含三类文件(夹):
hotweibo:微博数据,是一个文件夹,里面是一串数字字母命名的文件,文件包含该类别下获取的热门微博内容
hotweibo_classification.txt:微博代号对应的分类文件,名字是,有三列,第一列是hotweibo文件夹下文件的名称,第二列是细分类别,第三列是大类别。
stopWords:停用词库,里面是所有的停用词
作业一:相同类别文件的合并操作
作业描述:按照hotweibo_classification.txt文件描述,请将相同大类别的文件内容合并到一起,保存到一个新的文件夹中。合并后每个文件的名字就是大类的名称。
作业二:数据预处理之文本初步清理
作业描述:将作业一中生成的数据的所有html标签数据(即<>括起来的内容)替换成“HTML”这个词,并将结果保存的新的文件夹中,每个文件名字不变。比如:
@微博校园
清理后:
HTML@微博校园HTML
作业三:数据预处理之中文文本分词
作业描述:请按照如下地址的教学情况导入NLPIR分词软件,对讲作业二处理的文件内容进行分词操作,并将分词结果对应存入新的文件夹的文件中,名字不变。
教学地址:http://www.datalearner.com/blog/1051461066435555
作业四:数据预处理之去除停用词
作业描述:针对作业三的分词结果,去除其中所有的停用词(即删除停用词),存入新文件中。
作业五:使用TF-IDF计算词权重
作业描述:针对作业四的结果,对每个类别文件中每个不同的词语计算其权重,计算单词t在当前类别下的权重公式如下:
Wt=[1+log(f(t,d) )]*log(N/N_t)
其中,f_(t,d)表示当前类别下单词t的出现次数,N表示所有文档数量,N_t表示包含单词t的文档数量。
今天具体完成的是作业1 ,按照hotweibo_classification.txt文件描述,请将相同大类别的文件内容合并到一起,保存到一个新的文件夹中。合并后每个文件的名字就是大类的名称。
具体数据集可以私信获取。以下代码是我自己写的,最后会放上我的大神的代码。
首先第一步就是判断文件的行数。
然后得出文件中所有文件的名字。
然后将文本设置成数组文件,数组文件中的元素为第一行和第三行中的元素对应,按照一定的分割符号进行分割数组。
接下来介绍如何读取文件,读入文件与写入文件,这个方法要记住,可能后续还会使的,在后面加上true的目的是为了接着上面读的内容继续往下写,防止将上面读写的内容进行了覆盖。
最后一步就是调用上面的方法,代码自己具体理解,这个任务就是要自己做。
欢迎大家关注DataLearner官方微信,接受最新的AI技术推送
