默认:已下载openXBOW源码。
- 获取所有可用参数的列表:
java -jar openXBOW.jar
-
直接上使用示例:
-
示例1(基础操作):对每个音频/图像文档,给定一定数量的特征向量,即数字低级描述符(LLD),如MFCC,SIFT等。从属于一个文档/样本的所有LLD中,应创建一个词袋表示。
-
根据数据、标签生成词袋模型的三种方式:
(1)java -jar openXBOW.jar -i examples/example1/llds.arff -l examples/example1/labels.csv -o bow.arff (2)java -jar openXBOW.jar -i examples/example1/llds.csv -l examples/example1/labels.csv -o bow.arff (3)java -jar openXBOW.jar -i examples/example1/llds_labels.arff -o bow.arff
-
如果需要生成codebook大小为1000,且每个输入LLD有10个分配的字包表示形式:在上述指令中增加参数:-size 1000 -a 10
-
对输入文件中所有LLD进行随机抽样生成codebook,当没有目标(类标签)情况下生成单词袋输出:
java -jar openXBOW.jar -i examples/example1/llds.csv -o bow2.arff
-
使用 kmeans++ 聚类学习大小为 200 的codebooks,然后将其存储在文件中:
java -jar openXBOW.jar -i examples/example1/llds_labels.arff -o bow.arff -a 5 -c kmeans++ -size 200 -B codebook
-
加载学习的codebook并将其应用与相同的输入数据:java -jar openXBOW.jar -i examples/example1/llds_labels.arff -o bow.arff -a 5 -b codebook
-
生成词袋表示形式后,可进行的进一步处理:
-
对数项频率加权:适用于袋中的每个项频率(TF),可在加载相应的codebook时使用。
-
逆文档频率(IDF)转换:将每个词项频率乘上(样本总数与存在相应词项/单词的实例数)之比的对数,可在加载相应的codebook时使用。
-
直方图归一化:在基础指令中增加:(1,2,3择一个数字即可)一般用于不同输入文档/样本之间的输入LLD数量不同时:
-norm 1/2/3
-
标准化/规范化的参数:(以下择1即可)
-standardizeInput -normalizeInput -standardizeOutput -normalizeOutput
-
-
- 示例2:
- 从与时间相关的数值低级描述符生成与时间相关的词袋表示形式
- 对应场景:对音频中说话人特征(如情绪)的时间依赖性(离散时间连续)预测。
- 袋子是在特征的段或块上创建的
- 在参数中设置窗口大小和跃点大小(均以秒为单位):此处使用的是5.0s的块大小来生成袋子,有跃点大小0.5s指定每个时间戳周围2.5s 的周期:
java -jar openXBOW.jar -i examples/example2/llds.csv -l examples/example2/labels.csv -t 5.0 0.5 -o bow.arff -a 1 -c kmeans++ -size 200 -B codebook java -jar openXBOW.jar -i examples/example2/llds.csv -l examples/example2/labels.csv -t 5.0 0.5 -o bow.arff -a 1 -b codebook
- 将输入的LLD拆分为两个或多个子集,对于每个子集训练一个单独的codebook。为每个LLD子集独立生成袋子,并最终融合,实际操作:
java -jar openXBOW.jar -i examples/example2/llds.csv -attributes nt1[5]2[5] -l examples/example2/labels.csv -t 5.0 0.5 -o bow.arff -a 1 -c kmeans++ -size 50,100 -B codebook -writeName -writeTimeStamp
- 示例3:
- 从交叉模式(数字和符号)输入数据生成词袋表示形式
- 在使用声学特征和文本的实际设置中,声学特征的速率将远远高于单词的速率。所以很多的文本是空的。
- 将相同属性的所有输入都转为词袋表示形式:
java -jar openXBOW.jar -i examples/example3/crossmodal.arff -o bow.arff -c kmeans++ -size 4 -B codebook -writeName
- 生成的codebook中所有文本会自动转换为大写。文本输入通常来自自动语音识别系统(该系统主要以大写形式输出)
- 后期融合:(即先数字和符号分别生成codebook,后续进行融合):
java -jar openXBOW.jar -i examples/example3/crossmodal.arff -attributes n1[4]rc -o bowNumeric.arff -c kmeans++ -size 4 -B codebookNumeric -writeName java -jar openXBOW.jar -i examples/example3/crossmodal.arff -attributes nr[4]0c -o bowText.arff -B codebookText -writeName
-