aşağıda gösterilen şekilde kullanıldığında, son çıkış özellikler veya jeton sayısını içeren bir dizi oluşacak anlıyoruz.
Bu jeton
yani bir sonraki adımtags = [
"python, tools",
"linux, tools, ubuntu",
"distributed systems, linux, networking, tools",
]
olduğunu
, anahtar kelime kümesi elde edilir: aldığımızfrom sklearn.feature_extraction.text import CountVectorizer
vec = CountVectorizer(tokenizer=tokenize)
data = vec.fit_transform(tags).toarray()
print data
[[0 0 0 1 1 0]
[0 1 0 0 1 1]
[1 1 1 0 1 0]]
Bu iyi, ama benim Durum biraz farklı.
Özelliklerin yukarıdakiyle aynı şekilde ayıklamak istiyorum, ancak satırların data
içerisindeki özelliklerin ayıklandığı belgelerle aynı olmasını istemiyorum. Ben belgeler, diyelim ki başka bir set sayısını da alabilirsiniz nasıl başka deyişle
,
list_of_new_documents = [
["python, chicken"],
["linux, cow, ubuntu"],
["machine learning, bird, fish, pig"]
]
Ve olsun:
[[0 0 0 1 0 0]
[0 1 0 0 0 1]
[0 0 0 0 0 0]]
Ben CountVectorizer
sınıf için belgeleri okuyun ve var geldi Özellik indislerine yönelik terimlerin bir eşlemesi olan vocabulary
argümanı boyunca. Ancak bu argümanı bana yardım etmek için alamıyorum.
Herhangi bir tavsiye
takdir edilmektedir.Not: Yukarıda kullanılan örneğin Matthias Friedrich's Blog nedeniyle tüm kredi.
Teşekkür buna
new_docs.toarray()
çıktısını karşılaştırmak, bu harika görünüyor! İlk çözüm için: kelime bilgisi her zaman bir dict değil, bir liste olmalı mı? Yanılıyorsam beni düzeltin, ama sayımlar (0, 1, 2) ilgisiz gibi görünüyor. Ana hatlarıyla belirttiğiniz ikinci yöntem, belki biraz daha net görünüyor. –@ MattO'Brien: Haklısın, bir liste olabilir, belgeleri yanlış okuyorum. Cevabımı düzenledim. İkinci yönteme rağmen, bu bir demekti, çünkü bu, donatılmış bir vectorizer'ın 'vocabulary_' yöntemidir. – BrenBarn
BrenBarn, cevabınız bana çok zaman kazandırdı. Ciddi anlamda. Bu sitede olduğun için teşekkürler. –