我目前正在跨文本信息的大型数据库(大约分布在307个文本文件中的大约108MB)中显示词和词组的频率。我的目标是想方设法快速查看哪些文件是最相关的,并且具有视觉吸引力的格式(尽管此项目可能还会证明只是具有文本表示总是更清楚)。使用BarChart []工具提示来说明数据来自何处
现在我有以下:
SetDirectory["/MYMATHEMATICADIRECTORY/"];
filelist = FileNames[];
viewerCount1 = {0};
viewerCount2 = {0};
word1 = "freedom";
word2 = "liberty";
Do[
searchDB = StringSplit[Import[filename]];
AppendTo[viewerCount1, Count[searchDB, word1]];
AppendTo[viewerCount2, Count[searchDB, word2]];
, {filename, filelist}]
list3 = Take[viewerCount1, {2, -1}]
list4 = Take[viewerCount2, {2, -1}]
文件名[]产生一个列表,诸如:{ “001ABbenevolat.txt-cleaned.txt”, “002abnature.txt-cleaned.txt”,“ 003aboriginaldocs.txt-cleaned.txt“,”004ABpresse.txt-cleaned.txt“,”005acadian.txt-cleaned.txt“,”006acadiedelile.txt-cleaned.txt“,”007acfa.txt-cleaned.txt“} [除了307个条目,全部编号]。
项目list3生成列表,例如:{0,0,10,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, 0,0,2,0,0,0,2,0,0,0,1,0,0,0,0,0,0,0,0,100 2,0,0,0,10, 1,7,0,0,0,0,23,3,0,0,0,0,0,0,0,0,2,0,0,0,9,0,1,0,1, 0,5,0,13,0,0,0,0,0,0,0,0,0,0,1,0,2,0,4,0,0,0,1,11,0, 2,0,0,2,7,1,4,1,0,0,0,0,0,0,0,0,13,...}等等。
命令:
BarChart3D[{list3, list4}, BarSpacing -> {0.5, 0}, ChartLayout -> "Grid"]
生成一些接近我想要的(想象它们作为文件夹竖起)。但是,我想添加有意义的工具提示。默认情况下,它出现频率。会不会有一种快捷的方法来包含频率所附的文件名以及频率?即一个提示'007acfa.txt-cleaned.txt - 32'的工具提示,其中32个出现在文件7中?
是否有一个字符的'sortedfrequency'计算中的第二个参数'Sort'失踪?另外,如果用'{}'初始化'viewerCount#',则不需要'Take'来构造'list3'等... –
因此,list3中的* i * th数字对应于* i * th文件中的单词? –
@BrettChampion'sortedfrequency'是一个多余的命令 - 我编辑删除它。感谢“Take”建议,我知道肯定有比我更好的方法。 –