#!/usr/bin/env perl

# Copyright 2018 Jarvan Wang

if (@ARGV != 1) {

#print STDERR "Usage: keyword_summarize.pl text utt2dur\n";

print STDERR "Usage: keyword_summarize.pl <data>\n";

exit(1);

}

my $text_file="$ARGV[0]/text";

my $utt2dur_file="$ARGV[0]/utt2dur";

unless(-e $text_file && -e $utt2dur_file )

{

print STDERR "$text_file or $utt2dur_file does not exist!";

exit(1);

}

my %text_hash;

my %dur_hash;

my %sumdur_hash;

my %count_hash;

# read text

open(TEXT,$text_file);

while(<TEXT>){

my $temp=$_;

chomp $temp;

@line=split(/ /,$temp,2);

$text_hash{$line[0]}=$line[1];

}

# read utt2dur

open(DUR,$utt2dur_file);

while(<DUR>){

my $temp=$_;

chomp $temp;

@line=split(/ /,$temp,2);

$dur_hash{$line[0]}=$line[1];

}

# summarize text duration

for my $key (keys %text_hash)

{

$sumdur_hash{$text_hash{$key}}+=$dur_hash{$key};

$count_hash{$text_hash{$key}}+=1;

}

#for my $key (sort keys %sumdur_hash) {

#printf("文本@语句数@秒@小时\n");

printf("文本@语句数@小时\n");

my $count_sum,$sec_sum,$hour_sum;

foreach my $key (sort { $sumdur_hash{$a} <=> $sumdur_hash{$b} or $a cmp $b } keys %sumdur_hash)

{

my $value=sprintf("%.2f",$sumdur_hash{$key});

$count_sum+=$count_hash{$key};

$sec_sum+=$value;

$hour_sum+=$value/3600;

if($value>1000)

{

#printf("%s@%d@%.2f@%.2f\n",$key,$count_hash{$key},$value,$value/3600);

printf("%s@%d@%.2f\n",$key,$count_hash{$key},$value/3600);

}

}

#printf("总和@%d@%.2f@%.2f\n",$count_sum,$sec_sum,$hour_sum);

printf("总和@%d@%.2f\n",$count_sum,$hour_sum);

 

data_summarize.pl data目录文本时长汇总脚本的更多相关文章

  1. web自动化时,sendkeys输入长文本时浏览器响应慢或错误时处理

    在做某个测试时,要在文本框中输入大量的文本,文件内容如下: "-----BEGIN CERTIFICATE-----\nMIIBozCCAQwCAQEwDQYJKoZIhvcNAQEFBQA ...

  2. 解决真机调试时Eclipse DDMS上打不开/data目录的问题

    一般真机调试时DDMS里面的File Explorer是不能打开/data 目录的,不过也很容易解决. 1.首先手机要root.这个很简单,网上一大堆资料和软件. 2.仅仅root之后还不行,下载一个 ...

  3. vba根据部门分别汇总不同部门下的人员不同培训内容的时长总计,多条件求和

    Option Explicit Sub yy() Dim d, arr, s$, i&, m&, w$ Set d = CreateObject("Scripting.Dic ...

  4. JS的video获取时长,出现问题汇总

    <video id="my_video_1" controls="controls" style=" width: 700px; height: ...

  5. js读写Cookie问题(Cookie存储时长、Cookie存储域)汇总

    在采集网站用户行为数据/使用js对用户行为做交互时,经常会使用到Cookie,了解Js Cookie的读写,以及一些细节,非常重要.   什么是Cookie 所谓Cookie,只是一条极为短小的信息, ...

  6. docker部署postgresql时,data目录不生效的问题探究

    今天用docker部署postgresql,用的是官方的镜像.结果挂载完 /var/lib/postgresql/data目录后,和容器里的目录其实并没有挂载成功. 母机上的目录并没有成功挂载到容器里 ...

  7. 使用mediainfo工具统计每个视频文件(媒体文件)播放时长

    需求 1.运营那边需要统计大量视频文件的播放时长,并汇总记录到excel表中,问我有什么方法搞定 这边搜索了很多统计媒体文件时长的,主要有以下几种 1.使用java获取 2.使用python获取 3. ...

  8. 获取音、视频时长(NAudio,Shell32,FFmpeg)

    参考网址:https://blog.csdn.net/u013810234/article/details/57471780 以下为本次测试用到的音.视频格式: audio :”.wav;.mp3;. ...

  9. Android开发 获取视频中的信息(例如预览图或视频时长) MediaMetadataRetriever媒体元数据检索器

    前言 在Android里获取视频的信息主要依靠MediaMetadataRetriever实现 获取最佳视频预览图 所谓的最佳就是MediaMetadataRetriever自己计算的 /** * 获 ...

随机推荐

  1. 一脸懵逼学习Storm---(一个开源的分布式实时计算系统)

    Storm的官方网址:http://storm.apache.org/index.html 1:什么是Storm? Storm是一个开源的分布式实时计算系统,可以简单.可靠的处理大量的数据流.被称作“ ...

  2. Java中数组和集合的foreach操作编译后究竟是啥

    今天和同事在关于foreach编译后是for循环还是迭代器有了不同意见,特做了个Demo,了解一下. 是啥自己来看吧! public class Demo { public static void m ...

  3. Spring boot读取application.properties中文乱码

    解决方案 在IDEA环境下: File -> Settings -> Editor -> File Encodings 将Properties Files (*.properties ...

  4. Tomcat7 JDK8 Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000540000000, 5368709120, 0) failed; error='Cannot allocate memory' (errno=12)

    [root@crm-web- bin]# shutdown.sh bash: shutdown.sh: command not found [root@crm-web- bin]# sh shutdo ...

  5. [C++项目]2048控制台游戏

    #include <iostream> #include <windows.h> #include <ctime> using namespace std; ; ; ...

  6. Django-5 模板层

    Django 模板层 在之前的例子中,我们采用了硬编码的方式,来返回文本 def current_datetime(request): now = datetime.datetime.now() ht ...

  7. 极简Python DeBug工具——PySnooper

    DeBug Python 代码的方式有很多种?比如: (1)设置断点 (2)print函数 (3)... 本文要介绍的是一个新开源的项目PySnooper ,只要给有疑问的代码加上装饰器,各种信息一目 ...

  8. [转]html5监听任何App自带返回键javascript事件

    1.前言 如今h5新特性.新标签.新规范等有很多,而且正在不断完善中,各大浏览器商对它们的支持,也是相当给力.作为前端程序员,我觉得我们还是有必要积极关注并勇敢地加以实践.接下来我将和各位分享一个特别 ...

  9. System.IO.Pipelines: .NET上高性能IO

    System.IO.Pipelines是一个新的库,旨在简化在.NET中执行高性能IO的过程.它是一个依赖.NET Standard的库,适用于所有.NET实现. Pipelines诞生于.NET C ...

  10. 实习初步认识_1:部署renren-fast v2.0遇到的问题及解决方案

    部署renren-fast v2.0可参考官方文档https://www.renren.io/guide/#fornt(注意红色部分) 部署后台时一切正常,一下是官方文档内容: 2.1.后端部署 环境 ...