Deadline:8月10号
实验要求:
(1)数据预处理:利用rainbow或Lucene将20 news group向量化。
(2)半监督学习:
第一,对所有的数据上分别利用谱图排序方法,Prank,RSVM,(KNN,Kmeans备用)进行排序,分析实验结果。
第二,当追加新的无标签数据(数据量递增如5,50,200等)时,重新进行排序,比较谱图排序与Prank,RSVM等的性能优劣,理论上应该好于其他算法。
对于数据的选取可以灵活,也可以利用全部数据剔除掉部分数据进行实验。
补充关于Prank和RSVM需要用到的数据格式说明:
郑楠整理出来的实际是所有的term,即遍历所有文档之后对每个term进行统计,得出的就是以文档数为行数,所有term数为列数,每篇文档中包含该term的tfidf为值的初始矩阵(这里暂且我这么称呼它,当然再进行换算,相邻相减得到郑楠rankprop输入的矩阵),而Prank和RSVM需要的是query和document交集term的单个特征之和。这样的话利用初始矩阵,计算query和document的交集,按照郑楠的说法query来自document的子集,那么也就是query中的所有term计算特征值。这个query的选取方式我再看一下。首先要得出query有哪些,每个query对应的document有哪些,进行Prank和RSVM实际想要的是每个query和document交集中的所有term的tfidf和。对每个query的具体操作如下:首先找出query和每个document的term的交集,然后在初始矩阵中找到这些term在该文档上对应的值,累加即可。输出格式如下:
2 qid:1 1:3.00000000
其中2表示类别,qid:1表示第一个query,1:3.00000000表示第一个向量的特征值为3.000000,#docid=40426表示文档的编号。当然前提是如果不麻烦的话,就转换为上述格式,这样的话郑楠的工作量加大,我就省事很多了呵呵,只需要跑一下就可以了。如果麻烦的话可以先输出我上面说的所谓的初始矩阵,剩下的格式转换工作我去做。