Gensim - Belgeler ve Derlemler
Burada, esas olarak belgeler ve külliyat üzerinde odaklanarak Gensim'in temel kavramlarını öğreneceğiz.
Gensim'in Temel Kavramları
Gensim'i anlamak ve kullanmak için gerekli olan temel kavramlar ve terimler aşağıdadır -
Document - Z Bazı metinleri ifade eder.
Corpus - Bir belge koleksiyonunu ifade eder.
Vector - Bir belgenin matematiksel temsiline vektör denir.
Model - Vektörleri bir gösterimden diğerine dönüştürmek için kullanılan bir algoritmayı ifade eder.
Belge nedir?
Tartışıldığı gibi, bir metne atıfta bulunuyor. Biraz ayrıntıya girersek, bu, olarak bilinen metin dizisi türünün bir nesnesidir.‘str’ Python 3'te. Örneğin, Gensim'de bir belge şu gibi herhangi bir şey olabilir -
- 140 karakterlik kısa tweet
- Tek paragraf, yani makale veya araştırma makalesi özeti
- Haber makalesi
- Book
- Novel
- Theses
Metin Sırası
Metin dizisi türü genellikle şu adla bilinir: ‘str’ Python 3'te bildiğimiz gibi, Python'da metinsel veriler dizelerle veya daha spesifik olarak ‘str’nesneler. Dizeler temelde değişmez Unicode kod noktalarının dizileridir ve aşağıdaki şekillerde yazılabilir -
Single quotes - Örneğin, ‘Hi! How are you?’. Aynı zamanda çift tırnak eklememize izin verir. Örneğin,‘Hi! “How” are you?’
Double quotes - Örneğin, "Hi! How are you?". Ayrıca tek tırnak işaretlerini yerleştirmemize de olanak tanır. Örneğin,"Hi! 'How' are you?"
Triple quotes - Üç tek tırnak olabilir, örneğin, '''Hi! How are you?'''. veya üç çift tırnak,"""Hi! 'How' are you?"""
Tüm boşluklar dize değişmezine dahil edilecektir.
Misal
Aşağıda Gensim'deki bir Belge örneği verilmiştir -
Document = “Tutorialspoint.com is the biggest online tutorials library and it’s all free also”
Corpus nedir?
Bir külliyat, doğal bir iletişim ortamında üretilen büyük ve yapılandırılmış makine tarafından okunabilir metinler dizisi olarak tanımlanabilir. Gensim'de bir belge nesnesi koleksiyonuna korpus denir. Korpus'un çoğulucorpora.
Gensim'de Derlemin Rolü
Gensim'deki bir külliyat aşağıdaki iki rolü yerine getirir:
Bir Modeli Eğitmek için Girdi Olarak Hizmet Eder
Bir külliyatın Gensim'de oynadığı ilk ve önemli rol, bir modelin eğitilmesi için bir girdi olmasıdır. Modelin dahili parametrelerini başlatmak için, eğitim sırasında model, eğitim külliyatından bazı ortak temaları ve konuları arar. Yukarıda tartışıldığı gibi, Gensim denetimsiz modellere odaklanır, bu nedenle herhangi bir insan müdahalesi gerektirmez.
Konu Çıkarıcı olarak hizmet verir
Model eğitildikten sonra, yeni belgelerden konuları çıkarmak için kullanılabilir. Burada yeni belgeler eğitim aşamasında kullanılmayan belgelerdir.
Misal
Külliyat, belirli bir kişinin tüm tweet'lerini, bir gazetenin tüm makalelerinin listesini veya belirli bir konudaki tüm araştırma makalelerini vb. İçerebilir.
Derlem Toplama
Aşağıda, 5 belge içeren küçük bir külliyat örneği verilmiştir. Burada her belge tek bir cümleden oluşan bir dizedir.
t_corpus = [
"A survey of user opinion of computer system response time",
"Relation of user perceived response time to error measurement",
"The generation of random binary unordered trees",
"The intersection graph of paths in trees",
"Graph minors IV Widths of trees and well quasi ordering",
]
Derlemi Ön İşleme Toplama
Derlemeyi topladıktan sonra, derlemeyi basit tutmak için birkaç ön işleme adımı atılmalıdır. 'The' gibi yaygın olarak kullanılan bazı İngilizce kelimeleri kaldırabiliriz. Ayrıca külliyatta yalnızca bir kez geçen kelimeleri de kaldırabiliriz.
Örneğin, aşağıdaki Python betiği, her belgeyi küçük harfle yazmak, beyaz boşluğa bölmek ve durdurma sözcüklerini filtrelemek için kullanılır -
Misal
import pprint
t_corpus = [
"A survey of user opinion of computer system response time",
"Relation of user perceived response time to error measurement",
"The generation of random binary unordered trees",
"The intersection graph of paths in trees",
"Graph minors IV Widths of trees and well quasi ordering",
]
stoplist = set('for a of the and to in'.split(' '))
processed_corpus = [[word for word in document.lower().split() if word not in stoplist]
for document in t_corpus]
pprint.pprint(processed_corpus)
]
Çıktı
[['survey', 'user', 'opinion', 'computer', 'system', 'response', 'time'],
['relation', 'user', 'perceived', 'response', 'time', 'error', 'measurement'],
['generation', 'random', 'binary', 'unordered', 'trees'],
['intersection', 'graph', 'paths', 'trees'],
['graph', 'minors', 'iv', 'widths', 'trees', 'well', 'quasi', 'ordering']]
Etkili Ön İşleme
Gensim ayrıca, külliyatın daha etkili ön işlemesi için işlev sağlar. Bu tür bir ön işlemede, bir belgeyi küçük harfli belirteçler listesine dönüştürebiliriz. Çok kısa veya çok uzun olan jetonları da göz ardı edebiliriz. Böyle bir işlevgensim.utils.simple_preprocess(doc, deacc=False, min_len=2, max_len=15).
gensim.utils.simple_preprocess() fucntion
Gensim, bir belgeyi küçük harfli simge listesine dönüştürmek ve ayrıca çok kısa veya çok uzun olan simgeleri yok saymak için bu işlevi sağlar. Aşağıdaki parametrelere sahiptir -
doc (str)
Ön işlemenin uygulanması gereken girdi belgesini ifade eder.
deacc (bool, isteğe bağlı)
Bu parametre, aksan işaretlerini belirteçlerden kaldırmak için kullanılır. Kullanırdeaccent() Bunu yapmak için.
min_len (int, isteğe bağlı)
Bu parametrenin yardımıyla, bir jetonun minimum uzunluğunu belirleyebiliriz. Tanımlanan uzunluktan daha kısa olan jetonlar atılacaktır.
max_len (int, isteğe bağlı)
Bu parametrenin yardımıyla bir token'ın maksimum uzunluğunu belirleyebiliriz. Tanımlanan uzunluktan daha uzun olan jetonlar atılacaktır.
Bu işlevin çıktısı, girdi belgesinden çıkarılan belirteçler olacaktır.