Corpus¶
Corpus, bir Document listesi ve (örtük olarak) bu belgelerin üst verisidir. Her ikisi de tamga.corpus içinde tanımlanmış veri sınıflarıdır.
Derlem oluşturma¶
Dosya sisteminden¶
metadata.tsv, ilk sütunu filename olan (değerler corpus/ dizinindeki dosya adlarıyla eşleştirilir) ve diğer her sütunun Document.metadata alanına dönüştüğü sekmeyle ayrılmış bir dosyadır:
filename author year genre
fed_01.txt Hamilton 1787 political essay
fed_10.txt Madison 1787 political essay
fed_50.txt Unknown 1788 political essay
Python ile¶
from tamga.io import load_corpus
corpus = load_corpus("corpus/", metadata="corpus/metadata.tsv", strict=True)
strict=True(varsayılan): Üst veri satırı eksik olan her belge için hata fırlatır.strict=False: Kısmi kapsama izin verir — yeni etiketlenmemiş bir belge geldiğinde kullanışlıdır.
Programatik olarak¶
from tamga.corpus import Corpus, Document
corpus = Corpus(documents=[
Document(id="q", text=q_text, metadata={"role": "questioned"}),
Document(id="k1", text=k1_text, metadata={"author": "Alice"}),
Document(id="k2", text=k2_text, metadata={"author": "Alice"}),
])
Filtreleme ve gruplama¶
Corpus.filter(**query), belirtilen her anahtar-değer çiftini karşılayan belgelerden oluşan yeni bir Corpus döndürür:
Birden fazla değerle eşleştirmek için bir liste kullanılabilir:
Corpus.groupby(field), alt derlemlerin bulunduğu bir sözlük döndürür:
grouped = corpus.groupby("author")
# {"Hamilton": Corpus(...), "Madison": Corpus(...), "Jay": Corpus(...)}
Özetleme¶
Corpus.hash(), her belgenin metninin sıralanmış SHA-256 özetlerinden ve sıralanmış üst veri girişlerinden türetilen kararlı bir SHA-256 özeti üretir. Bu özet, her Provenance kaydına eklenir; böylece aynı derlemle çalışan iki çalışma, dosya sistemi yolundan, çalışma zamanından veya giriş dizinindeki belge sıralamasından bağımsız olarak aynı özeti paylaşır.
Sıra duyarlılığı
Corpus.hash() tasarım gereği sıra-değişmezdir (aynı metinler + üst veri = aynı özet). Öznitelik matrisi düzenini etkileyen satır yeniden sıralamalarını tespit etmek gibi sıra-duyarlı bir özete ihtiyaç duyarsanız, [d.id for d in corpus.documents] listesini ayrıca özetleyin.
Sonraki adım¶
- Features — derlemin sayısal matrise dönüştürülmesi.