yoklateknik mülakat

ML Engineer Fe Text Highcardinality Features Mülakat Soruları

75 doğrulanmış ML Engineer Fe Text Highcardinality Features mülakat sorusu — cevaplarıyla çöz, açıklamalarıyla öğren, gerçek simülasyonda kendini test et.

Gerçek simülasyonu dene →

Örnek sorular

Fe Text Highcardinality FeaturesZorluk 3
scikit-learn 1.6 ile:

from sklearn.feature_extraction.text import CountVectorizer
v = CountVectorizer(tokenizer=str.split)
print(v.fit(['Buy A now', 'buy a NOW']).get_feature_names_out())


Aynı iki belge varsayılan bir CountVectorizer altında ['buy' 'now'] bildiriyor. Burada ekrana ne basılır?
  • a['buy' 'now'] — verilen tokenizer parçalarını yine token desenine teslim eder, desen tek harflik olanı atar.
  • b['a' 'buy' 'now'] — token deseni devre dışıdır; zira küçük harfe çevirme takastan sağ çıkar, uzunluk filtresi çıkmaz.
  • c['A' 'Buy' 'NOW' 'a' 'buy' 'now'] — verilen tokenizer metin işleme zincirinin tamamını, büyük-küçük harf dahil devralır.
  • d['Buy A now' 'buy a NOW'] — str.split'e korpus verilir, böylece her belge bütün hâlde tek bir token olur.
Açıklama:Özel bir tokenizer yalnız regex adımının yerine geçer ve scikit-learn token_pattern'in kullanılmayacağını uyarı olarak bile bildirir; diğer tüm aşamalar yerinde kalır. Ön işleme belgeyi callable görmeden önce küçük harfe çevirmeye devam eder, bir durak listesi de callable'ın döndürdüğüne yine uygulanırdı; görünen tek değişiklik tek karakterlik parçanın artık elenmemesidir.
Fe Text Highcardinality FeaturesZorluk 2
Bir ekip 'dog bites man' ve 'man bites dog' cümlelerini varsayılan bir CountVectorizer ile indeksliyor ve hiçbir sınıflandırıcının ikisini ayıramamasına şaşırıyor. Sayım matrisi bu iki satır için gerçekte ne içerir?
  • aİkisi de [1, 1, 1] olan özdeş iki satır: unigram sayımı konum bilgisi tutmaz.
  • bTek sütunda ayrışan iki satır; çünkü vectorizer her token'ın ilk konumunu da saklar.
  • cYalnızca binary=True verildiğinde özdeş iki satır; ham sayımlarda satırlar farklı olurdu.
  • dFarklı sütun kümeleri üzerinde iki satır; çünkü sözlük her belge için yeniden kurulur.
Açıklama:Bag-of-words temsili her sözlük teriminin kaç kez geçtiğini kaydeder, başka hiçbir şey tutmaz; bu yüzden aynı token'ların her permütasyonu aynı vektöre düşer. Komşuluğu geri kazanmak için tek token'dan geniş, birden fazla token'ı kapsayan feature'lar gerekir.
Fe Text Highcardinality FeaturesZorluk 2
scikit-learn 1.6 ile:

from sklearn.feature_extraction.text import CountVectorizer
v = CountVectorizer(ngram_range=(1, 2))
X = v.fit_transform(['red blue red'])
print(X.shape, X.toarray())


Ekrana ne basılır?
  • a(1, 2) [[2 1]] — yalnız unigram üretilir; bigram için ayrı bir analyzer ayarı gerekir.
  • b(1, 3) [[1 2 1]] — tekrar eden token, komşu çiftlerden birini kendi içinde eritir.
  • c(1, 4) [[1 1 2 1]] — iki unigram artı iki farklı komşu çift.
  • d(1, 5) [[1 1 2 1 1]] — iki geçişten 'red red' de bir bigram olarak üretilir.
Açıklama:(1, 2) aralığı unigram ve bigram'ları birlikte üretir. Burada unigram'lar 'blue' ve 'red', komşu çiftler ise 'red blue' ve 'blue red'; alfabetik sıralandığında dört sütun 'blue', 'blue red', 'red', 'red blue' olur ve yalnız 'red' iki kez sayılır.
Fe Text Highcardinality FeaturesZorluk 2
'buy now buy now buy' belgesi iki kez vektörleştiriliyor: bir kez CountVectorizer(), bir kez CountVectorizer(binary=True) ile. Varsayılan çalıştırma [3, 2] satırını üretiyor. İkincisi ne üretir ve neden?
  • a[1, 1] — mevcut olan her terim, kaç kez geçtiğine bakılmaksızın 1 olarak kaydedilir.
  • b[0.6, 0.4] — birden büyük sayımlar belgenin token uzunluğuna bölünür.
  • cYine [3, 2] — binary yalnızca saklanan dtype'ı tamsayıdan boolean'a çevirir, değerler aynı kalır.
  • d[3, 0] — yalnız en yüksek sayıma sahip terim tutulur, kalanlar sıfırlanır.
Açıklama:binary bayrağı tokenizasyondan sonra sıfır olmayan her sayımı bire kırpar, böylece satır frekansı değil varlığı taşır. Sözlük ve sütun yerleşimi hiç değişmez; yalnız saklanan değerler değişir, bu yüzden matris hâlâ iki sütunludur.
Fe Text Highcardinality FeaturesZorluk 3
Bir mühendis 'A-1', 'B-2', 'C-7' gibi kısa ürün kodlarından oluşan bir sütunu varsayılan bir CountVectorizer'a veriyor ve ValueError: empty vocabulary alıyor. Varsayılan tokenizer'ın hangi özelliği bunu açıklar?
  • aVarsayılan analyzer, sözlük kurulmadan önce üç token'dan kısa belgeleri eler.
  • bTire işareti belge ayırıcı sayılır, böylece her kod iki boş belge olarak okunur.
  • cÖn işlemede rakamlar atılır ve geriye kalan tek harfler gömülü durak kelime listesine düşer.
  • dVarsayılan token deseni en az iki kelime karakteri ister, tek karakterlik her parça elenir.
Açıklama:CountVectorizer'ın varsayılan token_pattern değeri (?u)\b\w\w+\b'dir ve yalnız iki ya da daha fazla kelime karakterinden oluşan dizileri eşler. Tire her kodu tek harf ile tek rakama böler, ikisi de eşleşemeyecek kadar kısadır; tokenizasyondan hiçbir şey çıkmaz ve sözlük boş kalır.
Fe Text Highcardinality FeaturesZorluk 1
Bir ürün kataloğunda aynı marka 'Apple', 'apple' ve 'APPLE' olarak yazılmış. Üzerinde varsayılan bir CountVectorizer fit ediliyor. Bu üç yazım kaç sözlük girdisi üretir?
  • aÜç tane — büyük-küçük harf token'ın parçasıdır, yalnız aksan temizleme birleştirebilirdi.
  • bBir tane; küçük harfe çevirme varsayılan olarak açıktır ve üçünü aynı token'a indirir.
  • cİki tane; tümü büyük yazım baş harfi büyük biçime katlanır, küçük yazım ayrı girdi kalır.
  • dBir tane, ama yalnız binary=True da verilirse; aksi hâlde her yazım kendi sütununu alır.
Açıklama:Varsayılan ön işleme adımı, token deseni uygulanmadan önce belgeyi küçük harfe çevirir; böylece üç varyant aynı dizgeye dönüşür ve tek sütunu paylaşır. lowercase=False verilseydi ayrı kalırlar ve üç ayrı sözlük girdisi oluştururlardı.

1950 soruluk ML Engineer bankasında kendini sına.

Mülakata başla