2. Metin Madenciliği
Özellik Seçimi
• Sını
fl
andırıcının, kendisine hangi anahtar sözcüklerle sını
fl
andırma işlemine
karar vereceğini sormaktadır.
• Bu anahtar sözcükler ile bütün eğitim dokümanlarını ele alarak hangisiyle
daha çok ilişkili ise o yönde karar vermektedir.
• Dokümanı temsil edecek kelimelerin seçimi veya diğer bir deyişle özellik
seçimi kavramı, metin madenciliği çalışmalarında dokümanın hangi sözcüklerle
ifade edileceğinin belirlendiği adımdır.
• Özellik seçiminin doküman vektör boyutunun azaltılması sonucu olarak işlem
süresini düşürdüğü ve çalışmalarda daha doğru sonuçlar elde edilmesini
sağladığını belirten çalışmalar vardır.
3. Özellik Seçimi
Odds Ratio
Metin madenciliğinde Odds Ratio (OR) veya etiketleri hesaplamak için aşağıdaki formülü kullanabilirsiniz:
OR = (a x d) / (b x c)
Burada,
a: İlgilenilen terimin belirli bir sınıfta bulunduğu belge sayısı
b: İlgilenilen terimin diğer sını
fl
arda bulunduğu belge sayısı
c: Diğer tüm terimlerin belirli bir sınıfta bulunduğu belge sayısı
d: Diğer tüm terimlerin diğer sını
fl
arda bulunduğu belge sayısı
Bu formül, terimin belirli bir sınıfta bulunma olasılığını, diğer sını
fl
arda bulunma olasılığına karşı oranını
hesaplar. OR değeri 1'den büyükse, terimin belirli sını
fl
a ilişkili olduğu düşünülür. OR değeri 1'e yakınsa,
terimin sını
fl
a ilişkili olmadığı düşünülür.
4. Örnek Kod
Php Programlama Dili
// Belirli bir sınıfta ilgili terimin geçtiği belge sayısı
$a = 5;
// Diğer sını
fl
arda ilgili terimin geçtiği belge sayısı
$b = 10;
// Belirli sınıftaki diğer tüm terimlerin geçtiği belge sayısı
$c = 50;
// Diğer sını
fl
ardaki diğer tüm terimlerin geçtiği belge sayısı
$d = 100;
// Odds Ratio hesaplama
$or = ($a * $d) / ($b * $c);
// Sonucu ekrana yazdırma
echo "Odds Ratio: " . $or;
Bu örnek kodda, ilgili terim belirli bir
sınıfta 5 belgede, diğer sını
fl
arda 10
belgede geçiyor.
Aynı sınıftaki diğer tüm terimler 50
belgede, diğer sını
fl
ardaki diğer tüm
terimler 100 belgede geçiyor.
Bu değerleri kullanarak Odds Ratio
hesaplanıyor ve sonuç ekrana yazdırılıyor.
Bu değerin 1'den büyük olması
durumunda, terimin belirli bir sını
fl
a ilişkili
olduğu düşünülebilir.
6. Hesaplama Fonksiyonu 1/5
Tanımlamalar
$as = array(); // Belirli bir sınıfta ilgili terimin geçtiği belge sayısı
$bs = array(); // Diğer sını
fl
arda ilgili terimin geçtiği belge sayısı
$cs = array(); // Belirli sınıftaki diğer tüm terimlerin geçtiği belge sayısı
$ds = array(); // Diğer sını
fl
ardaki diğer tüm terimlerin geçtiği belge sayısı
$sonuc = array();
$istenenTerim = 0;
$c_toplam = 0;
$d_toplam = 0;
7. Hesaplama Fonksiyonu 2/5
Olan Terimleri Tespit Etme
foreach ($sini
fl
ar as $keySinif => $sinif) {
foreach ($sinif as $k2 => $dokuman) {
foreach ($dokuman as $keyTerim => $terim) {
if (!isset($sonuc[$keyTerim][$keySinif])) {
$sonuc[$keyTerim][$keySinif] = 0;
$cs[$keySinif] = 0;
$ds[$keySinif] = 0;
}
if ($terim == 1) {
$sonuc[$keyTerim][$keySinif]++;
}
}
ksort($sonuc[$keySinif]); //sıralama için. yatay da başlarda sıfır 0 olunca aşağıda 1 olunca key aşağıya atılıyordu.
}
}
ksort($sonuc);
8. Hesaplama Fonksiyonu 3/5
A Değeri Hesaplama
foreach ($sonuc as $keyTerim => $terim) {
foreach ($terim as $keySinif => $terimSayisi) {
$as[$keyTerim] = $terimSayisi;
$mevcutSinif = $keySinif;
$cs[$keySinif] += $terimSayisi; //bu siniftaki tum terim sayisi
$c_toplam += $terimSayisi;
if ($keySinif != $istenenTerim) //istenen terim değilse A yı hesaplamayı bırak
break;
}
}
ksort($a);
9. Hesaplama Fonksiyonu 4/5
B Değeri Hesaplama
foreach ($sonuc as $keyTerim => $terim) {
foreach ($terim as $keySinif => $terimSayisi) {
if ($keySinif != $mevcutSinif) {//istenen terim A ise diğer terimleri topla B yi hesapla
$bs[$keyTerim] += $terimSayisi;
$ds[$keySinif] += $terimSayisi; //diğer siniftaki tum terim sayisi
$d_toplam += $terimSayisi;
}
}
}
ksort($b);
10. Hesaplama Fonksiyonu 5/5
Or Değeri Hesaplama
$degerler = array();
foreach ($as as $key => $a) {
$b = $bs[$key];
$c = $c_toplam;
$d = $d_toplam;
$or = ($a * $d) / ($b * $c);
$degerler[$key] = $or;
}
Bu örnek kodda, her bir sınıfın her bir özelliği için Odds
Ratio hesaplanıyor ve sonuçlar ekrana yazdırılıyor. Bu
değerin 1'den büyük olması durumunda, terimin belirli
bir sını
fl
a ilişkili olduğu düşünülebilir.
11. Or Sonuçları
Terim Değerleri
[0] => 0.88095238095238
[1] => 0.88095238095238
[2] => 0.88095238095238
[3] => 0.88095238095238
[4] => 1.1746031746032
[5] => 0.88095238095238
[6] => 0
[7] => 1.1746031746032
[8] => 1.1011904761905
[9] => 0.44047619047619
[10] => 0.88095238095238
[11] => 0.88095238095238
[12] => 2.202380952381
[13] => 1.3214285714286
[14] => 1.3214285714286
Verilen değerleri kullanarak Odds Ratio
hesaplanıyor ve sonuç ekrana yazdırılıyor.
Bu değerin 1'den büyük olması durumunda,
terimin belirli bir sınıfla ilişkili olduğu
düşünülebilir.