Я часто сталкиваюсь с данными (электронными таблицами, настройками и т. Д.), Которые мне приходится анализировать, чтобы попытаться выяснить, что может быть причиной событий.Иногда хорошие вещи, но обычно плохие и часто в срочном порядке в данных, которые я никогда раньше не изучал, и, возможно, вообще незнакомы с ними.
Я пытался найти инструмент для расширенного анализа, который будет искать повторные фразы илидругие вещи, которые могли бы облегчить общее понимание тенденций в данных, но ничего не могли найти.
Я публикую сообщения по двум причинам
- Я надеюсь нарекомендация относительно какого-либо программного обеспечения, которое может выполнять такой анализ
- Я написал сценарий PowerShell, который выполняет очень простой анализ, я хотел поделиться им и надеюсь на его усовершенствования (включая инкапсуляцию вфункция).
Приведенный мною код просто подсчитывает количество раз, которое каждая запись отображается в каждом столбце, сортирует на основе этого количества и выводит отформатированные результаты.
#Before You Begin, Set the following
$SourceFile = Get-ChildItem ".\SomeFile.csv"
$OutputFile = &{$d=$SourceFile.Directory; $n=$SourceFile.BaseName; $e=$SourceFile.Extension; "$d\$n"+"_Stats"+"$e"} #This just appends _Stats to the source filename
#$Data = gci . #For Testing
$Data = Import-Csv $SourceFile
$ColumnList = $Data|Get-Member|where-object{$_.MemberType -eq "NoteProperty"}|ForEach-Object{$_.Name}
$CountedData = $ColumnList|ForEach-Object{
$ThisColumn = $_;
$Data|Group-Object $ThisColumn|Select-Object @{
n="ColumnName";
e={$ThisColumn}
},Count, @{
n="Value";
e={$_.Name}
}
}|Sort -Descending Count,ColumnName,Value #ColumnName, Count, Value
$Results=""
$CountedData|Group-Object ColumnName|ForEach-Object{
$ThisColumn=$_.name;
$ThisGroup=$_.Group;
$Results="$Results`n$ThisColumn";
$ThisGroup|ForEach-Object{
$ThisCount=$_.Count;
$ThisValue=$_.Value;
$Results=$Results+",($ThisCount) $ThisValue"
}
}
$Results|Out-File $OutputFile
start $SourceFile.Directory