Şu makalemizde Linuxta Bash Shell Script ile Kelime ve Harf Analizi yaptığımız analizin, Powershell script ile düzenlenmiş hali aşağıdadır.
Diğer makalemizde olan tüm sonuçlar, aynı şekilde bu komutlarla da yapılabilmektedir.
#1) Elimizde büyük bir metin dosyası var, ilk önce dosyamızı yedekleyelim.
cp Nutuk.txt Analiz1.txt
#2) Tırnak işaretinden sonra gelen harfleri silelim (Örneğin <Ankara’nın> kelimesinde <‘nın> ekini silmek gibi)
$s = Get-Content .\Analiz1.txt -Encoding UTF8 $s -replace "['’‘]\w+","" | Set-Content Analiz1.txt -Encoding UTF8
#3) Tüm türkçe harfleri ingilizce harflerine dönüştürelim (ö -> o gibi)
$dil=@" turkce,ingilizce ı,i ğ,g ü,u ş,s ö,o ç,c I,i İ,i Ç,c Ş,s Ü,u Ğ,g "@ $dil | Set-Content dil.csv -Encoding UTF8 $s = Get-Content .\Analiz1.txt -Encoding UTF8 $harfler = Import-csv .\dil.csv foreach ($harf in $harfler) { $s -replace "$($harf.turkce)","$($harf.ingilizce)" | Set-Content Analiz2.txt -Encoding UTF8 $s = Get-Content .\Analiz2.txt -Encoding UTF8 } rm dil.csv
#4) Tüm boşlukları, virgülleri, noktaları >> satır başlarına dönüştürelim
$s = Get-Content .\Analiz2.txt $s -replace "[ ,\.:;]","`n" | Set-Content Analiz3.txt
#5) Tüm harfleri küçültelim
$s = Get-Content .\Analiz3.txt $s.ToLower() | Set-Content Analiz4.txt -Encoding UTF8
#6) Alfabedeki harfler haricinde tüm karakterleri kaldıralım
$s = Get-Content .\Analiz4.txt $s -replace "((?![a-z]|[A-Z]).)","" | Set-Content Analiz5.txt
#7) Boş satırları kaldıralım
$s = Get-Content .\Analiz5.txt $s | ? {$_.trim() -ne "" } | set-content Analiz6.txt
#8) Harflerine göre tüm kelimeleri sıralayalım
$s = Get-Content .\Analiz6.txt $s | Sort-Object | set-content Analiz7.txt
#9) Tüm kelimeleri, tekrar sayısına göre analiz edelim
$s = Get-Content .\Analiz7.txt $s | Group-Object | Select Name,Count | sort Count -Descending | Export-Csv Kelime_Sayilari.txt -NoTypeInformation
10) Tüm harfleri tekrar sayısına göre analiz edelim.
$Tekrarsiz = get-content Analiz7.txt | Get-Unique $Tekrarsiz.ToCharArray() | group | select Name,Count | sort Count -Descending >> Harf_Sayilari.txt
Tüm komutlar tek parça halinde aşağıdadır:
#1) Elimizde büyük bir metin dosyası var, ilk önce dosyamızı yedekleyelim. cp Nutuk.txt Analiz1.txt #2) Tırnak işaretinden sonra gelen harfleri silelim (Örneğin <Ankara'nın> kelimesinde <'nın> ekini silmek gibi) $s = Get-Content .\Analiz1.txt -Encoding UTF8 $s -replace "['’‘]\w+","" | Set-Content Analiz1.txt -Encoding UTF8 #3) Tüm türkçe harfleri ingilizce harflerine dönüştürelim (ö -> o gibi) $dil=@" turkce,ingilizce ı,i ğ,g ü,u ş,s ö,o ç,c I,i İ,i Ç,c Ş,s Ü,u Ğ,g "@ $dil | Set-Content dil.csv -Encoding UTF8 $s = Get-Content .\Analiz1.txt -Encoding UTF8 $harfler = Import-csv .\dil.csv foreach ($harf in $harfler) { $s -replace "$($harf.turkce)","$($harf.ingilizce)" | Set-Content Analiz2.txt -Encoding UTF8 $s = Get-Content .\Analiz2.txt -Encoding UTF8 } rm dil.csv #4) Tüm boşlukları, virgülleri, noktaları >> satır başlarına dönüştürelim $s = Get-Content .\Analiz2.txt $s -replace "[ ,\.:;]","`n" | Set-Content Analiz3.txt #5) Tüm harfleri küçültelim $s = Get-Content .\Analiz3.txt $s.ToLower() | Set-Content Analiz4.txt -Encoding UTF8 #6) Alfabedeki harfler haricinde tüm karakterleri kaldıralım $s = Get-Content .\Analiz4.txt $s -replace "((?![a-z]|[A-Z]).)","" | Set-Content Analiz5.txt #7) Boş satırları kaldıralım $s = Get-Content .\Analiz5.txt $s | ? {$_.trim() -ne "" } | set-content Analiz6.txt #8) Harflerine göre tüm kelimeleri sıralayalım $s = Get-Content .\Analiz6.txt $s | Sort-Object | set-content Analiz7.txt #9) Tüm kelimeleri, tekrar sayısına göre analiz edelim $s = Get-Content .\Analiz7.txt $s | Group-Object | Select Name,Count | sort Count -Descending | Export-Csv Kelime_Sayilari.txt -NoTypeInformation #10) Tüm harfleri tekrar sayısına göre analiz edelim. $Tekrarsiz = get-content Analiz7.txt | Get-Unique $Tekrarsiz.ToCharArray() | group | select Name,Count | sort Count -Descending >> Harf_Sayilari.txt