← man/system_admin
lsm — man lsm — 80×24
ugur@toprak:~/man/system_admin$man lsm
Bölüm 1 Sistem Yönetimi

lsm

Gizil Anlamsal Eşleme (Latent Semantic Mapping) aracı

Sinopsis

        lsm lsm_komutu [komut_seçenekleri] harita_dosyası [girdi_dosyaları]

Açıklama

Latent Semantic Mapping (Gizil Anlamsal Eşleme) çerçevesi, haritalar oluşturan ve bunları metinleri bir dizi kategoriden birine sınıflandırmak için kullanan dilden bağımsız, Unicode tabanlı bir teknolojidir.

lsm; Latent Semantic Mapping haritaları oluşturmak, işlemek, test etmek ve dökmek (dump) için kullanılan bir araçtır. Temel olarak hızlı prototipleme ve teşhis amaçlı olmak üzere Latent Semantic Mapping API'sinin işlevselliğinin büyük bir alt kümesine erişim sağlamak için tasarlanmıştır, ancak muhtemelen Latent Semantic Mapping'in basit kabuk betiği (shell script) tabanlı uygulamaları için de kullanılabilir.

Komutlar

lsm, çeşitli komutlar sunar (Sinopsis'teki lsm_komutu), bunların her biri genellikle zengin seçeneklere sahiptir (aşağıdaki Komut Seçenekleri bölümüne bakın). Komut adları, benzersiz önekler olacak şekilde kısaltılabilir.

lsm create harita_dosyası girdi_dosyaları Belirtilen girdi_dosyaları'ndan yeni bir LSM haritası oluşturur.

lsm update harita_dosyası girdi_dosyaları Belirtilen girdi_dosyaları'nı mevcut bir LSM haritasına ekler.

lsm evaluate harita_dosyası girdi_dosyaları Belirtilen girdi_dosyaları'nı LSM haritasının kategorilerine göre sınıflandırır.

lsm cluster [--k-means=N | --agglomerative=N] [--apply] Harita için kümeleri hesaplar ve eğer --apply seçeneği belirtilmişse haritayı buna göre dönüştürür. Büyük haritalarda daha hızlı performans için birden fazla kümeleme düzeyi uygulanabilir, örneğin:

lsm cluster --k-means=100 --each --agglomerative=100 --agglomerative=1000 my.map

önce (hızlı) k-means kümelemesini kullanarak 100 küme hesaplar, yığışımlı (agglomerative) kümeleme kullanarak her bir ilk aşama kümesi için 100 alt küme hesaplar ve son olarak yığışımlı kümeleme kullanarak bu 10000 kümeyi 1000'e indirger.

lsm dump harita_dosyası [girdi_dosyaları] girdi_dosyaları belirtilmediğinde, haritadaki tüm kelimeleri sayımlarıyla birlikte döker. girdi_dosyaları belirtildiğinde ise, her bir dosya için haritada görünen kelimeleri, haritadaki sayımlarını ve girdi dosyasındaki göreceli frekanslarını döker.

lsm info harita_dosyası Dosya hakkında bilgi çıkarmak, yazdırmak ve üzerinde bir dizi tutarlılık denetimi gerçekleştirmek için Latent Semantic Mapping çerçevesini devre dışı bırakarak doğrudan dosyaya erişir. (HENÜZ UYGULANMADI)

Komut Seçenekleri

Bu bölüm, lsm komutları için kullanılabilen komut_seçenekleri'ni açıklar. Tüm komutlar bu seçeneklerin hepsini desteklemez; her seçenek yalnızca mantıklı olduğu komutlar için desteklenir. Ancak bir komut bu seçeneklerden birine sahip olduğunda, seçeneğin diğer komutlardakiyle aynı anlama geleceğine güvenebilirsiniz.

--append-categories Verileri mevcut kategorilere eklemek yerine, mevcut olanlardan sonra eklenen yeni kategorilere koyması için update komutunu yönlendirir.

--categories sayı evaluate komutunu yalnızca en üstteki sayı kadar kategoriyi listelemek üzere yönlendirir.

--category-delimiter sınırlayıcı create ve update komutlarına geçirilen girdi_dosyaları içindeki kategoriler arasında kullanılacak sınırlayıcıyı belirtir.

group Kategoriler bir `;' argümanı ile ayrılır.

file Her bir girdi_dosyası ayrı bir kategoriyi temsil eder. --category-delimiter seçeneği verilmezse varsayılan değer budur.

line Her bir satır ayrı bir kategoriyi temsil eder.

string Kategoriler belirtilen dize (string) ile ayrılır.

--clobber Bir harita oluştururken, LSM haritası olmasa bile belirtilen yoldaki mevcut bir dosyanın üzerine yazar. Varsayılan olarak create, mevcut bir dosyanın üzerine yalnızca bir LSM haritası olduğuna inanılırsa yazar; bu da aşağıdaki gibi sık yapılan operatör hatalarına karşı koruma sağlar:

lsm create /usr/include/*.h

--dimensions boyut create ve update komutlarını, haritayı hesaplamak için verilen boyut sayısını kullanmaya yönlendirir (Varsayılan olarak kategori sayısı kadardır). Bu seçenek, çok sayıda kategoriye sahip haritaların boyutunu ve hesaplama yükünü yönetmek için kullanışlıdır.

--discard-counts create ve update komutlarını, haritayı yazarken ham kelime / belirteç (token) sayımlarını atlamaya yönlendirir. Bu, daha kompakt bir harita oluşturur ancak harita daha fazla güncellenemez.

--hash create ve update komutlarını, haritayı cat veya hexdump gibi varsayılan dosya işleme araçlarıyla insan tarafından okunamayan bir biçimde yazmaya yönlendirir. Bu, girdi verilerinin uygunsuz kelimeler içerebileceği ve haritanın içeriğinin spam göndericilerine hangi kelimelerden kaçınmaları gerektiği konusunda ipucu verebileceği gereksiz e-posta (junk mail) filtreleme gibi uygulamalarda yararlıdır.

--help Bir komut için kullanılabilen seçeneklerin genel bir özetini listeler. Tüm komutlar için kullanılabilir.

--html girdi_dosyaları içindeki HTML kodlarını temizler. E-posta ve web girdileri için kullanışlıdır. create, update, evaluate ve dump komutları için kullanılabilir.

--junk-mail Girdi dosyalarını ayrıştırırken, spam göndericilerin kendilerini ele veren kelimeleri gizlemek için kullandıkları yaygın yöntemleri engellemek amacıyla sezgisel yöntemler (heuristics) uygular:

Zer0 1nt3rest l0ans     Harflerin yerine rakam koyma
W E A L T H             Harfler arasına boşluk ekleme
m.o.r.t.g.a.g.e         Harfler arasına noktalama işaretleri ekleme

create, update, evaluate ve dump komutları için kullanılabilir.

--pairs Haritayı oluştururken create komutu ile birlikte belirtilirse, kelimelerin kendilerinin yanı sıra kelime çiftlerinin (pairs) sayımlarını da saklar. Bu, belirli problem sınıfları için doğruluğu artırabilir, ancak kelime dağarcığı oldukça sınırlı olmadıkça makul olmayan büyüklükte haritalar üretecektir.

--stop-words durma_kelimeleri_dosyası create komutuyla birlikte belirtilirse, durma_kelimeleri_dosyası ayrıştırılır ve bulunan tüm kelimeler haritaya göre değerlendirilen metinlerden hariç tutulur. Bu, sık kullanılan ve anlamsal olarak değersiz olan kelimeleri hariç tutmak için kullanışlıdır.

--sweep-cutoff eşik --sweep-frequency gün create ve update komutları için kullanılabilir. Her belirtilen gün sayısında bir (varsayılan olarak 7), haritayı tarar ve en az 2 önceki taramada haritada bulunan ve toplam sayımları eşik değerinden küçük olan tüm girdileri haritadan kaldırır. eşik varsayılan olarak 0'dır, dolayısıyla varsayılan olarak harita taranmaz.

--text-delimiter sınırlayıcı create, update, evaluate ve dump komutlarına geçirilen girdi_dosyaları içindeki metinler arasında kullanılacak sınırlayıcıyı belirtir.

file Her girdi_dosyası ayrı bir metni temsil eder. --text-delimiter seçeneği verilmezse varsayılan değer budur.

line Her bir satır ayrı bir metni temsil eder.

string Metinler belirtilen dize (string) ile ayrılır.

--triplets Haritayı oluştururken create komutu ile birlikte belirtilirse, kelimelerin kendilerinin ve kelime çiftlerinin yanı sıra kelime üçlülerinin (triplets) sayımlarını da saklar. Bu, belirli problem sınıfları için doğruluğu artırabilir, ancak kelime dağarcığı oldukça sınırlı olmadıkça makul olmayan büyüklükte haritalar üretecektir.

--weight ağırlık create ve update komutları için girdi kelimelerinin sayımlarını, pozitif veya negatif bir kayan noktalı sayı olabilen belirtilen ağırlık ile ölçeklendirir.

--words evaluate veya cluster komutlarını, kategoriler yerine kelimelere uygulanacak şekilde yönlendirir.

--words=sayı evaluate komutunu, kategoriler yerine en üstteki sayı kadar kelimeyi listelemek üzere yönlendirir.

Örnekler

       lsm evaluate --html --junk-mail ~/Library/Mail/V2/MailData/LSMMap2 msg*.txt
           Belirtilen dosyaları (her birinin bir e-posta iletisinin ham metnini barındırdığı varsayılır)
           kullanıcının gereksiz e-posta haritasına göre değerlendirerek Mail.app gereksiz e-posta filtresini simüle eder.

       lsm dump ~/Library/Mail/V2/MailData/LSMMap2
           Gereksiz e-posta haritasında biriken kelimeleri ve sayımlarını döker.

       lsm create --category-delimiter=group c_vs_h *.c ';' *.h
           C başlık (header) dosyalarını C kaynak dosyalarından ayırt etmek için eğitilmiş bir LSM haritası oluşturur.

       lsm update --weight 2.0 --cat=group c_vs_h ';' ../xy/*.h
           Eğitime artırılmış bir ağırlık ile bazı ek başlık dosyaları ekler.

       lsm create --help
           lsm create komutu için mevcut olan seçenekleri listeler.
1.0                                          2024-05-10                               LSM(1)