gpt4 book ai didi

java - Hashmap单键持有一个类。计算 key 并检索计数器

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:59:20 25 4
gpt4 key购买 nike

我正在做一个数据库自主项目。我有一个输入文件来自:http://ir.dcs.gla.ac.uk/resources/test_collections/cran/

在处理成 1400 个单独的文件后,每个文件名为 00001.txt,... 01400.txt...)并在应用词干分析 关于它们,我会将它们单独存储在一个特定的文件夹中,我们将其命名为 StemmedFolder,格式如下:

StemmedFolder: 00001.txt 中包括:

investig
aerodynam
wing
slipstream
brenckman
experiment
investig
aerodynam
wing

StemmedFolder: 00756.txt 中包括:

remark
eddi
viscos
compress
mix
flow
lu
ting

等等....

我写的代码是:

  1. 获取 StemmedFolder,计算唯一字数
  2. 按字母顺序排序
  3. 添加文档ID
  4. 将每个文件保存到新文件 00001.txt 到 01400.txt,如下所述

{我可以为这 4 个部分提供我的代码,以防有人需要查看实现、更改或任何编辑情况


每个文件的输出将结果到一个单独的文件。 (1400,每个都命名为 00001.txt00002.txt...)在一个特定的文件夹中让我们称之为 FrequenceyFolder 格式如下:

FrequenceyFolder: 00001.txt 中包括:

00001,aerodynam,2
00001,agre,3
00001,angl,1
00001,attack,7
00001,basi,4
....

FrequenceyFolder: 00999.txt 中包括:

00999,aerodynam,5
00999,evalu,1
00999,lift,3
00999,ratio,2
00999,result,9
....

FrequenceyFolder: 01400.txt 中包括:

01400,subtract,1
01400,support,1
01400,theoret,1
01400,theori,1
01400,.....

__________

现在我的问题:

我需要再次合并这1400个文件,通过一些计算输出一个类似这种格式的txt文件:

'aerodynam' totalFrequency=3docs: [[Doc_00001,5],[Doc_01344,4],[Doc_00123,3]]
'book' totalFrequncy=2docs: [[Doc_00562,6],[Doc_01111,1]
....
....
'result' totalFrequency=1doc: [[Doc_00010,5]]
....
....

'zzzz' totalFrequency=1doc: [[Doc_01235,1]]

感谢您花时间阅读这篇长文

最佳答案

您可以使用 MapList .

Map<String,List<FileInformation>> statistics = new HashMap<>()

在上面的映射中,键是单词,值是 List<FileInformation>。描述包含单词的单个文件的统计信息的对象。 FileInformation类可以声明如下:

class FileInformation {
int occurrenceCount;
String fileName;

//getters and setters
}

要填充上面的 map ,请使用以下步骤:

  1. 阅读FrequencyFolder中的每个文件
  2. 当你第一次遇到一个词时,把它作为关键字放在 Map 中。 .
  3. 创建 FileInformation对象并设置 occurrenceCount找到的出现次数并设置 fileName添加到找到它的文件的名称。将此对象添加到 List<FileInformation> 中对应于步骤 2 中创建的 key 。
  4. 下次您在另一个文件中遇到同一个词时,创建一个新的 FileInfomation对象并将其添加到 List<FileInformation>对应于单词在 map 中的条目。

一旦你有了 Map人口稠密,打印统计数据应该是小菜一碟。

for(String word : statistics.keySet()) {
List<FileInformation> fileInfos = statistics.get(word);
for(FileInformation fileInfo : fileInfos) {
//sum up the occureneceCount for the word to get the total frequency
}
}

关于java - Hashmap单键持有一个类。计算 key 并检索计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30523883/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com