项目场景描述:要在图书馆计算机系统中搜索和文章,需要结合布尔运算符,例如‘和’(&)和()。例如,如果要搜索涉及到纳米技术和桥构造的文章和书籍,查询将是nanotechnology &桥构造。为了正确检索图书和艺术品,每个文档都使用一组表示文档内容的关键字表示。
假设每一份文件(书籍、文章等)由唯一的文档编号表示。您将得到一组文档,它们的编号和关键字包含在该文档中,如下所示。
887 5
nanotechnology
bridge construction
carbon fiber
digital signal processing
wireless上面的数字887对应于文档编号,5是为文档给定的关键字数。每个关键字将位于单独的行上。项目的输入将包含一组文档编号和每个文档的关键字。输入的第一行将包含一个整数,该整数对应于要处理的文档记录的数量。
倒排列表数据结构是为每个关键字存储一组包含关键字的文档编号的位置。例如,对于关键字碳纤维,我们将有以下内容:
大桥施工887,117,665,900碳纤维887,1098,654,665,117
编号为887、1098、654、665和117的文件都将包含关键字碳纤维,关键字桥结构可在编号为887、117、665和900的文件中找到。
这个项目有两个主要方面,:
布尔查询如下面的示例所示进行处理。为了获得包含关键词&碳纤维的文档,我们执行了一组交叉操作,得到了887、117和665个文档。布尔查询桥接构造\碳纤维将导致设置联合操作,此查询的文档为887、1098、654、665和900。
好的,我的问题是:
如何读取文档,因为我的第一个类是存储一组文档号的setClass?
我的问题是,所有文档都在一个文本文件中,例如:
25 //first document number
329 7 //second document number
ARAMA
ROUTING ALGORITHM
AD-HOC
CSMA
MAC LAYER
JARA
MANET
107 4 //third document number
ANALYSIS
CROSS-LAYER
GEOGRAPHIC FORWARDING
WIRELESS SENSOR NETWORKS,那么我如何读取文档编号,因为它们都有不同数量的关键字呢?
发布于 2009-03-17 04:57:02
第一行的"25“实际上是文件中的文档数量吗?我将遵循这个假设(如果不是,只需阅读文档直到你点击EOF)
下面是一些用于读取文件的伪代码:
int numDocs = readLine // assuming first number is number of docs
for (int i = 0; i < numDocs; ++i)
{
string line = readLine
int docNumber = getFirstNumber(line)
int numKeywords = getSecondNumber(line)
for (int j = 0; j < numKeywords; ++j)
{
string keyword = readline
associate keyword with docNumber // however this works
}
}https://stackoverflow.com/questions/652993
复制相似问题