“上下文关键字”KWIC(Key Word in Context,文本中的关键字)检索系统尝试

这篇博客介绍了如何使用Java实现KWIC(Key Word in Context)检索系统的两种不同体系结构风格:主/子程序和管道过滤器。实验包括从文件读取有序行集合,进行循环移位和排序,最后将结果按字母顺序输出。博主提供了每种风格的体系结构图、主要代码及运行结果截图,同时分享了在调试过程中遇到的问题和解决方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、实验目的

1.理解不同体系结构风格的具体内涵。

2.学习体系结构风格的具体实践。

二、实验环境

硬件: (依据具体情况填写)

软件:Java或任何一种自己熟悉的语言

三、实验内容

 

“上下文关键字”KWIC(Key Word in Context,文本中的关键字)检索系统接受有序的行集合:每一行是单词的有序集合;每一个单词又是字母的有序集合。通过重复地删除航中第一个单词,并把它插入行尾,每一行可以被“循环地移动”。KWIC检索系统以字母表的顺序输出一个所有行循环移动的列表。

尝试用不同的策略实现这个系统。选择2-3种体系结构风格来实现。

四、实验步骤:

     要求写具体实现代码,并根据实际程序,画出程序的总体体系结构图和算法结构图,以及运行结果截图。

 

 A.采用主/子程序的风格

1、体系结构图:

 

2、简述体系结构各部件的主要功能,实现思想。

 

读取文件:从本地读取文件

循环移位:对读取到的内容进行循环移位

排序:对移位后的结果进行排序

输出:输出到控制台

 

3、写出主要的代码

 1 import java.io.BufferedReader;
 2 import java.io.File;
 3 import java.io.FileReader;
 4 import java.util.ArrayList;
 5 import java.util.Comparator;
 6 import java.util.List;
 7 
 8 public class KWIC {
 9     public static void main(String[] args) {
10 
11         //读取文件
12         List<String[]> result = getContext(new File("fileTemp/context.txt"));
13         //循环移位
14         result = loopShift(result);
15         //排序
16         sort(result);
17         //输出
18         printf(result);
19     }
20 
21     private static List<String[]> getContext(File file) {
22 
23         List<String[]> strList = new ArrayList<>();
24         try
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值