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)