武汉大学信息管理学院实验报告
一、 实验目的
1. 根据理论课所讲的信息检索的主要思想好关键技术来进行实验测试,以培养在信息检索
相关领域的知识运用能力。
2. 主要理解文档的分词过程,和其中关键技术
二、 实验内容与实验步骤
1、 实验内容:
读取文档并分词。要求给定一篇.txt 英文文档,计算机读入并统计该篇文章由哪些词组成,
按字母顺序输出出现过的词以及每个词的出现频率。
2、 实验步骤:
1. 预习老师所给的参考资料
2. 理解分析实验内容的关键步骤
3. 写代码并调试;
三、 实验代码与结果
实验思路:统计一篇给定的英文文章中各个单词出现的次数并按照字母顺序排列。因为
要存放两个变量,用 treeMap 来存放数据, Key 是要统计的单词,Value 是
单词出现的次数。在分词的过程中使用的是 StringTokenizer 方法。最后再按照 Key 的升
序排列出来。
具体代码和注释:
import java.util.*;
import java.io.*;
public class fenci {
public static void main(String[] args) throws Exception {
Map treeMap = new TreeMap();
// 构造一个 treemap 类,key 是 string 类,value 是 integer 类,用于存放单词数据
第 1 页 共 4 页
武汉大学信息管理学院实验报告
BufferedReader infile = null;
StringTokenizer st = null;
String filename = "Test.txt"; //打开一篇文章,名字是 Test.txt .
String string;
String file = null;
infile = new BufferedReader(new FileReader(filename)); //读取文档
while ((string = infile.readLine()) != null) {
file += string;
}//读出整篇文章,存入 file 中。
file= file.toLowerCase();
//这里将所有的英文字母变成小写,如果不是这样,结果中大写字母开头的单词会排在最前面
// 取出文章中的单词,"," "." "!" " " 为各个单词的分界符。用 StringTokenizer 方法将文档
分词
st = new StringTokenizer(file, " ,.!");
while (st.hasMoreTokens()) {
String key = st.nextToken();//当 st 中还有词的时候,从 tokenizer 中
返回下一个 token,把值赋予 Key
int value = 0;
if (treeMap.get(key) != null) {
value=treeMap.get(key);
value++;
treeMap.put(key, value);
} //treeMap.get(key)方法的返回值是 value(整型类,如果不是空
值,那么 value 加一,然后将此时的 key=单词,value=词频,写入
treeMap 中。
else {
}
treeMap.put(key, new Integer(1));
第 2 页 共 4 页
武汉大学信息管理学院实验报告
}
//按照单词的字母次序输出。
Set entrySet = treeMap.entrySet();
Iterator iterator = entrySet.iterator();
while (iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
实验结果:
采用的文档:
My father was a self-taught mandolin player. He was one of the best
string instrument players in our town. He could not read music, but
if he heard a tune a few times, he could play it. When he was
younger, he was a member of a small country music
词频统计结果:
a=5
best=1
but=1
could=2
country=1
father=1
few=1
he=6
heard=1
if=1
in=1
instrument=1
it=1
mandolin=1
member=1
music=2
not=1
of=2
one=1
our=1
play=1
player=1
players=1
read=1
第 3 页 共 4 页
武汉大学信息管理学院实验报告
self-taught=1
small=1
string=1
the=1
times=1
town=1
tune=1
was=4
when=1
younger=1
第 4 页 共 4 页