这是发的第二篇博客,之前那篇还没有通过审核呢,无所谓。
想说说这个题目,还在上大四,自然语言处理和信息检索的知识在我们学校是研究生的课程,而且这个实验室很NB哦,老那我不能保研,只能远远看着实验室门牌号拿着纸巾……擦眼泪了。好在是良心学院,大四没有什么基础课程了,却开了还好多专业限选课,就是各个实验室都能拿出来一些入门课程,派博士生或者直接教授上阵,拿到本科课堂来。
不多说了,这是课上老师留的作业:给定文本input.txt ,其中有750对英文句子,以" 句子1 + Tab + 句子2 +Enter "形式给出。现在要求用余弦向量法,求每对英文句子的相似度,并且输出到output.txt。 完成上一个任务后,老师还会给出一个针对上述750对句子,人工给出的相似度评分文件standardAnalysis.txt(750个数,人工写上去的?老师唬我,说,用了什么高端技术),现在又要求利用Pearson相关系数法,分析output.txt与standardAnalysis.txt中得到的语义相似度的相关性如何。
以上就是题目要求,听说,这应该是这项课程最入门的程序和思想了吧,思想去百度 “红字儿”,剩下的就是java的基本操作了,作为一个对java还没有入门我来说,这才是我的难题,好在两个下午给弄出来了,有些地方写的可能很可笑,可我还发现 不了,以后回来看的时候用来当茶余饭后吧。。。
废话少说,贴代码,注释写的还挺清楚的
/*
Author:Na
Data :2014/11/29
*/
import java.io.BufferedReader;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
class Similarity{
String sentence="";
String []part=new String[2];
String input,output,standardAnalysis;
List <String> comDataList=new ArrayList<String>();
List <String> userDataList=new ArrayList<String>();
static float[] comData=new float[1000];
static float[] userData=new float