Hashmap 单键保存一个类。计算密钥并检索计数器

2024-04-18

我正在开发一个数据库自我项目。我有一个来自以下位置的输入文件:http://ir.dcs.gla.ac.uk/resources/test_collections/cran/ http://ir.dcs.gla.ac.uk/resources/test_collections/cran/

处理成1400个单独的文件后,每个文件命名为00001.txt,... 01400.txt...)以及申请后Stemming在它们上,我将它们单独存储在一个特定的文件夹中,我们称之为茎文件夹格式如下:

in 茎文件夹:00001.txt 包括:

investig
aerodynam
wing
slipstream
brenckman
experiment
investig
aerodynam
wing

in 茎文件夹:00756.txt 包括:

remark
eddi
viscos
compress
mix
flow
lu
ting

等等....

我编写的代码执行以下操作:

  1. get the 茎文件夹, 计算唯一单词
  2. 按字母顺序排序
  3. 添加文档的ID
  4. 将每个文件保存到新文件 00001.txt 到 01400.txt,如下所述

{I can 提供我的代码对于这 4 个部分,以防有人需要查看实施、更改或任何编辑情况}


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

in 频率文件夹:00001.txt 包括:

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

in 频率文件夹:00999.txt 包括:

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

in 频率文件夹: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]]

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


您可以使用Map of List.

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

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

class FileInformation {
    int occurrenceCount;
    String fileName;

    //getters and setters
}

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

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

一旦你拥有了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
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Hashmap 单键保存一个类。计算密钥并检索计数器 的相关文章

随机推荐

  • CSS 中的鼠标按下选择器是什么?

    我注意到按钮和其他元素具有默认样式 并按 3 个步骤运行 普通视图 悬停 焦点视图和鼠标按下 单击视图 在 CSS 中我可以更改普通视图和悬停视图的样式 如下所示 button background 333 color FFF button
  • ngResource 将 POST 参数附加到 url

    我有一个看起来像这样的角度服务 我在这里发出 POST 请求 factory Apples function resource HOST return resource HOST apples create method POST para
  • 使用 XPath 排序 - 不是 XSL

    XPath DOM 编程中有什么方法可以使用System Xml to run selectNodes XPATH 带有排序参数 例如 对于以下 XML 程序按照与文档相同的顺序 降序 写入值 有没有办法使用 XPath 来按升序获取值 笔
  • 是否可以使用计时器为 JButton 创建淡入效果?

    我想在我的程序按钮上添加一些效果 当我按下button the button应该淡入 Using a timer改变的值Opaque in new Color 是一种方式 但是可以应用于JButton还有 因为JButton有边界 所以我想
  • 分配后列表被意外清除[重复]

    这个问题在这里已经有答案了 class ListHolder public List
  • 应用程序中所有国家/地区的城市和邮政编码

    有没有一种方法可以将所有国家 州 城市的邮政编码存储在一个数据库中 我一直在到处寻找 我发现地名网 http www geonames org 我猜其中包含了所有内容 但无法直接获取该数据 我正在使用导轨 如果有任何助手或插件就太好了 如果
  • 更改 iOS 中的应用程序语言设置而不是整个设备

    我希望在我的应用程序中可以选择更改我的应用程序语言 只是应用程序语言而不是整个系统 请给我一些提示好吗 提前致谢 我知道本地化 您可以使用从 Xcode 设置的自定义构建标志来完成此操作 这样您就可以在本地化下运行应用程序 而无需更改设备的
  • 当我单击数据表中的下一页时,我的 jquery 选择器不再工作

    我在用着数据表 http www datatables net jquery 插件在页面上显示我的数据 当有人单击一行时 我有这个选择器 myTable tr class tableHeader click function alert c
  • 多线程程序中的 std::string

    鉴于 1 C 03标准没有以任何方式解决线程的存在 2 C 03 标准将其留给实现来决定是否std string应该在其复制构造函数中使用 Copy on Write 语义 3 写时复制语义通常会导致多线程程序中不可预测的行为 我得出以下看
  • 为什么要使用Promise.resolve().then()?

    在阅读 Angular 指令的代码时路由器链路激活 https github com angular angular blob master packages router src directives router link active
  • 释放 GCD 调度队列属性的正确方法是什么?

    我正在使用一个dispatch queue 它是通过其所有者的属性访问的 如下所示 property nonatomic assign dispatch queue t queue 请注意assign关键词 队列在对象的整个生命周期中使用
  • 嵌套属性未以简单形式显示

    鉴于以下情况 Models class Location lt ActiveRecord Base has many games end class Game lt ActiveRecord Base validates presence
  • 如何获取 BTreeSet 中元素的下界和上限?

    正在阅读BTreeSet文档 我似乎无法弄清楚如何从 a 中获取大于元素的最小值或小于元素的最大值BTreeSet在对数时间内 我看到有一个range https doc rust lang org std collections stru
  • 将 Elmah 与 WebApi 结合使用时,错误会记录两次

    我正在尝试使用 elmah 记录我的 asp net web api 项目中的异常 我遇到的问题是每个错误都会记录两次 我正在使用 Elmah Contrib Web Api 我的应用程序类如下 public class WebApiApp
  • 用 R 计算年龄

    我在 R 中有两个数据帧 其中一个数据帧包含一个人的出生年份 YEAR 1931 1924 然后另一列显示最近的时间 RECENT 09 08 2005 11 08 2005 我想做的是减去年份 以便我可以计算他们的年龄 但我不知道如何处理
  • Rails respond_with:它是如何工作的?

    我到处读到关于它有多酷的内容respond with方法在 Rails 3 中 但我什至无法在 Rails API 中或通过搜索源代码找到对它的引用 任何人都可以向我解释它是如何工作的 您可以使用哪些选项等 或者向我指出它实际实现的位置 以
  • 在事务结束时发送事件

    我有一个服务对象的接口 如下所示 为简洁起见进行了简化 public interface ItemService public Item getItemById String itemId int version public void c
  • 部署到 Docker 时外部化 Spring Boot 属性

    在我的 Spring Boot 应用程序中 我想将属性外部化以在 Docker 容器中运行 首次部署时 当前的属性my server src main resources application yml由应用程序按预期加载和使用 一切正常
  • 如何修复这个已有 8 年历史的 VBA 64 位编译器错误?

    所以这就是错误 64 BitVBA主机 例如Access 365 64位或Excel 2016 64位 创建类模块SomeClass this needs to be here to trigger the bug Private Sub
  • Hashmap 单键保存一个类。计算密钥并检索计数器

    我正在开发一个数据库自我项目 我有一个来自以下位置的输入文件 http ir dcs gla ac uk resources test collections cran http ir dcs gla ac uk resources tes