Anahtar Kelime Çıkarma Nedir?
Anahtar kelime çıkarma, bir metin analizi tekniği kullanarak bir metinden en çok kullanılan ve en önemli kelimeleri ve ifadeleri otomatik olarak çıkarır. Metinlerin içeriğini özetlemeye ve tartışılan ana konuları tanımaya yardımcı olur; bu da pazar araştırması, duyarlılık analizi ve diğer veri analizi türleri için yararlıdır. Bu teknik, cümle yerleştirmelerinden yararlanır ve büyük veri kümelerini gerçek zamanlı olarak analiz edebilir.
Doğal dil işleme (NLP) (bilgisayar bilimlerinin bir alanı) ile makine öğrenimi yapay zeka (AI), makinelerin anlayabilmesi ve analiz edebilmesi için insan dilini parçalara ayırır. Anahtar kelime çıkarma, gelen anket yanıtlarını etiketleme veya acil müşteri sorgularına yanıt verme gibi iş akışlarını otomatikleştirir. Bu teknik, metinler ve içerdikleri kelimeler hakkında dilbilimsel ve anlamsal bilgiler kullanır. Bir metindeki en alakalı anahtar kelimeleri çıkarmak için farklı makine öğrenimi algoritmaları ve teknikleri vardır.
Anahtar Kelime Çıkarma Neden Önemlidir?
Anahtar kelime çıkarma ve anahtar sözcük çıkarma çeşitli nedenlerden dolayı önemlidir:
- Arama Motoru Optimizasyonu (SEO) : Anahtar kelime çıkarma, web sitesi içeriğini arama motorları için optimize etmek için kullanılabilecek bir belgedeki en önemli kelimeleri ve kelime öbeklerini belirlemeye yardımcı olur.
- Metin özetleme: Anahtar kelime çıkarma, metnin ana temasını temsil eden en önemli kelimeleri ve cümleleri belirleyerek bir belgeyi özetlemek için kullanılabilir.
- Metin sınıflandırma: Anahtar kelime çıkarma, metin belgelerini içerdikleri anahtar kelimelere göre farklı kategorilere sınıflandırmak için kullanılabilir. Bu, duygu analizi gibi uygulamalarda kullanışlıdır.
- Bilgi edinme: Anahtar kelime çıkarma, bir kullanıcının arama sorgusuyla eşleşen ilgili anahtar kelimeleri belirleyerek bilgi alma sistemlerinin doğruluğunu artırmak için kullanılabilir.
R’de Anahtar Kelime Çıkarımı Nasıl Yapılır?
İşte bazı anahtar kelime çıkarma teknikleri ve kullanım durumları:
- İsimleri tanımlamak için Konuşmanın Bölümleri etiketlemesi yaparak anahtar kelimeleri bulun
- Eşdizimliliklere ve Birlikte Oluşumlara dayalı anahtar kelimeler bulun
- Textrank algoritmasına dayalı anahtar kelimeler bulun
- RAKE (hızlı otomatik anahtar kelime çıkarma) tabanlı anahtar kelimeler bulun
- Bağımlılık ayrıştırma sonuçlarına göre anahtar kelimeleri bulma (metnin konusunu alma)
İsimlerin Çıkarılması
Anahtar kelimeleri bulmanın kolay bir yolu isimlere bakmaktır. Metne udpipe paketini kullanarak açıklama eklediyseniz, her terimin bir Konuşma Parçaları etiketi vardır:
Kod:
stats <- subset(x, upos %in% "NOUN")
stats <- txt_freq(x = stats$lemma)
library(lattice)
stats$key <- factor(stats$key, levels = rev(stats$key))
barchart(key ~ freq, data = head(stats, 30), col = "cadetblue", main = "Most occurring nouns", xlab = "Freq")
Eşdizimlilik ve birlikte oluşlar
Eşdizimliliklere (birbirini takip eden kelimeler), her bir cümle içindeki kelime eşdizimliliklerine veya birbirinin komşuluğunda yakın olan kelimelerin kelime eşdizimliliklerine bakarak çok kelimeli ifade elde edin.
Kod:
Collocation (words following one another)
stats <- keywords_collocation(x = x,
term = "token", group = c("doc_id", "paragraph_id", "sentence_id"),
ngram_max = 4)
Co-occurrences: How frequent do words occur in the same sentence, in this case only nouns or adjectives
stats <- cooccurrence(x = subset(x, upos %in% c("NOUN", "ADJ")),
term = "lemma", group = c("doc_id", "paragraph_id", "sentence_id"))
## Co-occurrences: How frequent do words follow one another
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"))
## Co-occurrences: How frequent do words follow one another even if we would skip 2 words in between
stats <- cooccurrence(x = x$lemma,
relevant = x$upos %in% c("NOUN", "ADJ"), skipgram = 2)
Textrank (Google Pagerank’a göre sıralanmış kelime ağı)
Textrank, anahtar kelimeler için başka bir çıkarma yöntemidir. textrank R paketi Textrank algoritmasını uygular. Textrank algoritması metin özetleme ve anahtar kelime çıkarma işlemlerine olanak sağlar. Bir kelime ağı oluşturmak için algoritma, kelimelerin birbirini takip edip etmediğini kontrol eder. ‘Google Pagerank’ algoritması ilgili kelimeleri çıkarıyor. Birbirini takip eden alakalı kelimeler bir araya gelerek anahtar kelimeler elde eder. TextRank, grafik tabanlı bir yaklaşım olduğu için orijinal metinden kaynaklanmaz.
Kod:
stats <- textrank_keywords(x$lemma, relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 8, sep = " ")
stats <- subset(stats$keywords, ngram > 1 & freq >= 5) library(wordcloud) wordcloud(words = stats$keyword, freq = stats$freq)
Hızlı Otomatik Anahtar Kelime Çıkarma: RAKE
RAKE, Rapid Automatic Keyword Extraction’ın kısaltması olan bir sonraki temel algoritmadır. RAKE, Doğal Dil İşlemede Etki Alanından Bağımsız bir anahtar kelime çıkarma algoritmasıdır.
-
Herhangi bir aday anahtar kelimenin parçası olan her kelime için bir puan hesaplamak şu şekilde yapılır
- algoritma, aday anahtar kelimeler arasında her bir kelimenin kaç kez geçtiğine ve diğer kelimelerle kaç kez birlikte geçtiğine bakar
- her kelime, kelime derecesinin (diğer kelimelerle kaç kez birlikte geçtiği) kelime sıklığına oranı olan bir puan alır
- Aday anahtar kelimenin tamamı için bir RAKE puanı, aday anahtar kelimeyi tanımlayan kelimelerin her birinin puanları toplanarak hesaplanır
Kod:
stats <- keywords_rake(x = x, term = "token", group = c("doc_id", "paragraph_id", "sentence_id"), relevant = x$upos %in% c("NOUN", "ADJ"), ngram_max = 4)
head(subset(stats, freq > 3))
Nominal özneyi ve onun sıfatını almak için bağımlılık ayrıştırma çıktısını kullanın
Ek açıklamayı udpipe kullanarak yürüttüğünüzde, dep_rel alanı kelimelerin birbiriyle nasıl ilişkili olduğunu gösterir. Bir token, token_id ve head_token_id kullanılarak ebeveyn ile ilişkilendirilir. dep_rel alanı kelimelerin birbirleriyle nasıl bağlantılı olduğunu gösterir. İlişkilerin türü http://universaldependencies.org/u/dep/index.html adresinde yer almaktadır.
Kod:
stats <- merge(x, x, by.x = c("doc_id", "paragraph_id", "sentence_id", "head_token_id"), by.y = c("doc_id", "paragraph_id", "sentence_id", "token_id"), all.x = TRUE, all.y = FALSE, suffixes = c("", "_parent"), sort = FALSE)
stats <- subset(stats, dep_rel %in% "nsubj" & upos %in% c("NOUN") & upos_parent %in% c("ADJ"))
stats$term <- paste(stats$lemma_parent, stats$lemma, sep = " ")
stats <- txt_freq(stats$term)
library(wordcloud)
wordcloud(words = stats$key, freq = stats$freq, min.freq = 3, max.words = 100, random.order = FALSE, colors = brewer.pal(6, "Dark2"))
Metin Madenciliği Nedir?
R’de metin madenciliği, R programlama dilini ve ilgili kütüphaneleri ve paketleri kullanarak metin verilerini analiz etme ve bunlardan içgörü çıkarma sürecini ifade eder. Metin madenciliği, veri temizleme ve ön işleme, özellik çıkarma, istatistiksel modelleme ve görselleştirme dahil olmak üzere çeşitli adımları içerir.
tm
paketi metin verilerinin okunması, verilerin temizlenmesi ve ön işlemden geçirilmesi ve metin verilerinin analizinde yaygın olarak kullanılan belge-terim matrislerinin oluşturulması için işlevler sağlar.
tidytext
paketi, metin verilerini düzenli veri çerçevelerine dönüştürmek için araçlar sağlar.
Metin madenciliğindeki bazı yaygın görevler arasında duygu analizi, konu modelleme, belge kümeleme ve metin sınıflandırma yer alır. Bu görevler, metin verileri içindeki kalıpları ve ilişkileri belirlemek için istatistiksel ve makine öğrenimi tekniklerinin uygulanmasını içerir.
Anahtar kelime çıkarma API’leri, geliştiricilerin önceden oluşturulmuş algoritmalar ve makine öğrenimi modelleri kullanarak metinden anahtar kelimeler ve anahtar ifadeler çıkarmasına olanak tanıyan yazılım arayüzleridir. Bu API’ler, geliştiricilerin kendi modellerini oluşturmalarına ve eğitmelerine gerek kalmadan anahtar kelime çıkarma sürecini otomatikleştirmek için kullanımı kolay ve ölçeklenebilir bir çözüm sunar.
R , istatistiksel hesaplama, veri analizi ve grafikler için açık kaynaklı bir programlama dili ve yazılım ortamıdır. İnsanlar R’yi akademi, araştırma ve endüstride istatistiksel modelleme, veri görselleştirme, makine öğrenimi ve veri madenciliği gibi görevler için yaygın olarak kullanmaktadır. Python ve C++ gibi diğer programlama dilleri ile arayüzlere sahiptir. GitHub’daki çevrimiçi eğitimlerle daha ayrıntılı bilgi edinin.