Belirteçleştirme ve Yaygın Sözcükleri Kaldırma
Metni belirteçlere ayırın ve anti_join() ile bilgi taşımayan sözcükleri filtreleyin.
Belirteçleştirme ve Yaygın Sözcükleri Kaldırma, CoddyKit'te ücretsiz bir R Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, R Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. R Academy kursu toplamda 4 dersten oluşur.
Metin Madenciliği Nedir?
Metin madenciliği (veya metin analitiği), yapılandırılmamış metni istatistiksel olarak analiz edilebilecek yapılandırılmış verilere dönüştürür. tidytext paketi, düzenli bir yaklaşım sağlar: her satır bir belirteçtir (kelime, ikili kelime grubu, cümle); böylece veriler dplyr ve ggplot2 ile uyumlu hâle gelir.
library(tidytext)
library(dplyr)
# A simple text corpus
text_df <- tibble::tibble(
doc_id = 1:3,
text = c(
'The quick brown fox jumps over the lazy dog.',
'Text mining with R is powerful and fun.',
'Natural language processing enables many applications.'
)
)
cat('Input: ', nrow(text_df), 'documents\n')
cat('Columns:', names(text_df), '\n')unnest_tokens: Kelimelere Ayırma
unnest_tokens(output, input), metni her satırda bir belirteç bulunacak biçime ayırır. Varsayılan olarak kelimelere ayırır, küçük harfe dönüştürür ve noktalama işaretlerini kaldırır. token bağımsız değişkeni 'words', 'ngrams', 'sentences' ve daha fazlasını destekler.
library(tidytext)
library(dplyr)
text_df <- tibble::tibble(
doc_id = 1:2,
text = c(
'R is a great language for data analysis.',
'Text mining reveals hidden patterns in documents.'
)
)
# Tokenise into words
tokens <- text_df |>
unnest_tokens(word, text)
cat('Tokens extracted:', nrow(tokens), '\n')
print(tokens)stop_words Veri Kümesi
tidytext, üç sözlükten (SMART, Snowball ve onix) alınmış 1.149 yaygın İngilizce durak kelimesini içeren yerleşik bir stop_words tibble'ı sağlar. ("the", "is", "and"…) gibi bu kelimeler anlamsal açıdan çok az bilgi taşır ve genellikle analizden önce kaldırılır.
library(tidytext)
library(dplyr)
# Inspect the stop_words dataset
cat('Total stop words:', nrow(stop_words), '\n')
cat('Lexicons:', paste(unique(stop_words$lexicon), collapse = ', '), '\n')
# First few stop words from each lexicon
stop_words |>
group_by(lexicon) |>
slice_head(n = 3) |>
print()anti_join: Durak Kelimelerini Kaldırma
anti_join(tokens, stop_words, by = 'word'), word değeri stop_words içindeki herhangi bir girdiye eşleşen tüm satırları kaldırır. Bu, durak kelimelerini kaldırmak için standart tidytext kalıbıdır: temiz, okunabilir ve kolayca genişletilebilir.
library(tidytext)
library(dplyr)
text_df <- tibble::tibble(
doc_id = 1:3,
text = c(
'The quick brown fox jumps over the lazy dog',
'A stitch in time saves nine important words',
'To be or not to be that is the question'
)
)
tokens <- text_df |>
unnest_tokens(word, text)
cat('Before removing stop words:', nrow(tokens), '\n')
tokens_clean <- tokens |>
anti_join(stop_words, by = 'word')
cat('After removing stop words:', nrow(tokens_clean), '\n')
print(tokens_clean)count: Terim Sıklığı
Belirteçlere ayırma ve durak kelimelerini kaldırma işlemlerinden sonra terim sıklığını hesaplamak için count(word, sort = TRUE) kullanın. Bu, birçok metin madenciliği analizinin temelidir; en sık geçen anlamlı kelimeler belgenin konularını karakterize eder.
library(tidytext)
library(dplyr)
# Use Jane Austen's novels from janeaustenr package
# For demo: simulate a small corpus
corpus <- tibble::tibble(
text = c(
'data science involves statistics programming analysis',
'machine learning algorithms data patterns training',
'statistics probability distributions random variables data',
'programming languages python r julia statistics',
'analysis patterns distributions algorithms science'
)
)
word_counts <- corpus |>
unnest_tokens(word, text) |>
anti_join(stop_words, by = 'word') |>
count(word, sort = TRUE)
cat('Top 8 words:\n')
print(head(word_counts, 8))Özel Durak Kelimeleri
Belirli alanlara özgü derlemler, genellikle ilgisiz yüksek sıklıklı kelimeler içerir (örneğin tıbbi notlarda "patient" ve "doctor"). Özel bir durak kelimeleri tibble'ı oluşturun ve bind_rows() kullanarak bunu yerleşik sözlüğe bağlayın.
library(tidytext)
library(dplyr)
# Domain-specific words to remove
custom_stops <- tibble::tibble(
word = c('data', 'analysis', 'r', 'using', 'also'),
lexicon = 'custom'
)
# Combine with built-in stop words
all_stops <- bind_rows(stop_words, custom_stops)
cat('Total stop words after custom:', nrow(all_stops), '\n')
corpus <- tibble::tibble(
text = c(
'Using R for data analysis and machine learning models',
'Statistical data analysis also involves data visualisation'
)
)
clean_tokens <- corpus |>
unnest_tokens(word, text) |>
anti_join(all_stops, by = 'word') |>
count(word, sort = TRUE)
print(clean_tokens)İkili Kelime Grubuna Ayırma
Ardışık kelime çiftlerine (ikili kelime gruplarına) ayırmak için token = 'ngrams', n = 2 ayarını yapın. İkili kelime grupları, tek tek kelimelerin yakalayamadığı "machine learning" veya "data science" gibi ifadeleri yakalayarak daha zengin bir bağlam sağlar.
library(tidytext)
library(dplyr)
corpus <- tibble::tibble(
doc_id = 1:2,
text = c(
'machine learning and deep learning are powerful techniques',
'natural language processing uses machine learning methods'
)
)
bigrams <- corpus |>
unnest_tokens(bigram, text, token = 'ngrams', n = 2)
cat('Bigrams extracted:', nrow(bigrams), '\n')
print(bigrams)
# Count most common bigrams
bigram_counts <- bigrams |> count(bigram, sort = TRUE)
cat('\nTop bigrams:\n')
print(head(bigram_counts, 5))Kaliteli İkili Kelime Gruplarını Filtreleme
En sık geçen ikili kelime grupları arasında "of the" gibi durak kelimesi çiftleri bulunur. tidyr::separate() ile ikili kelime grubunu iki sütuna ayırın, kelimelerden biri durak kelimesiyse bu satırları filtreleyin, ardından anlamlı ifade çiftlerini elde etmek için kelimeleri yeniden birleştirin.
library(tidytext)
library(dplyr)
library(tidyr)
corpus <- tibble::tibble(
text = c(
'the field of machine learning and deep learning is growing',
'natural language processing is a subfield of artificial intelligence'
)
)
bigrams_filtered <- corpus |>
unnest_tokens(bigram, text, token = 'ngrams', n = 2) |>
separate(bigram, into = c('word1', 'word2'), sep = ' ') |>
filter(
!word1 %in% stop_words$word,
!word2 %in% stop_words$word
) |>
unite(bigram, word1, word2, sep = ' ') |>
count(bigram, sort = TRUE)
print(bigrams_filtered)Kelime Sıklıklarını Görselleştirme
ggplot2 kullanarak kelime sıklıklarını çubuk grafik olarak çizin. Çubukları reorder(word, n) ile sıralayın ve yatay etiketler için coord_flip() kullanın. Bu, metin madenciliğinde en etkili iletişim çıktılarından biridir.
library(tidytext)
library(dplyr)
library(ggplot2)
corpus <- tibble::tibble(
text = c(
'statistics probability machine learning algorithms patterns',
'data science programming analysis visualisation models',
'machine learning deep learning neural networks patterns',
'probability statistics hypothesis testing distributions',
'algorithms optimisation gradient descent models training'
)
)
top_words <- corpus |>
unnest_tokens(word, text) |>
anti_join(stop_words, by = 'word') |>
count(word, sort = TRUE) |>
slice_head(n = 10)
ggplot(top_words, aes(reorder(word, n), n)) +
geom_col(fill = 'steelblue') +
coord_flip() +
labs(x = 'Word', y = 'Count', title = 'Top 10 Terms') +
theme_minimal()Belge Başına Kelime Sayıları
Derleminiz birden fazla belge içerdiğinde, bir belge tanımlayıcı sütunu ekleyin ve belge başına terim sıklıklarını hesaplamak için doc_id, word değişkenlerine göre gruplandırın. Bu sonuç doğrudan TF-IDF ve konu modeli analizlerinde kullanılabilir.
library(tidytext)
library(dplyr)
docs <- tibble::tibble(
doc_id = c(1, 1, 1, 2, 2, 2, 3, 3, 3),
text = c(
'machine learning models training',
'neural networks deep learning',
'algorithms gradient descent optimisation',
'statistical analysis probability distributions',
'hypothesis testing confidence intervals regression',
'bayesian inference prior posterior likelihood',
'data visualisation plots charts dashboards',
'ggplot2 ggvis plotly interactive graphics',
'colour scales aesthetics themes layers'
)
)
word_counts <- docs |>
unnest_tokens(word, text) |>
anti_join(stop_words, by = 'word') |>
count(doc_id, word, sort = TRUE)
cat('Word-doc pairs:', nrow(word_counts), '\n')
print(head(word_counts, 10))Cümlelere Ayırma
Metni cümle sınırlarında ayırmak için token = 'sentences' ayarını yapın. Cümle düzeyindeki belirteçler duygu analizi (her cümleyi puanlama), özetleme (temsil niteliğindeki cümleleri seçme) ve soru-cevap görevleri için kullanışlıdır.
library(tidytext)
library(dplyr)
doc <- tibble::tibble(
id = 1L,
text = paste(
'R is a statistical programming language.',
'It is widely used in data science and machine learning.',
'The tidyverse makes data manipulation easy.',
'Text mining with tidytext is elegant and powerful.'
)
)
sentences <- doc |>
unnest_tokens(sentence, text, token = 'sentences')
cat('Sentences found:', nrow(sentences), '\n')
print(sentences$sentence)Kısa Kontrol
Bir derlemi unnest_tokens() kullanarak kelimelere ayırdınız ve yaygın İngilizce kelimeleri kaldırmak istiyorsunuz. Yerleşik stop_words veri kümesini kullanarak bunu hangi işlem gerçekleştirir?
Özet: Belirteçlere Ayırma ve Durak Kelimeleri
Temel çıkarımlar:
unnest_tokens(word, text), ham metni her satırda bir kelime bulunacak şekilde düzenli biçime dönüştürür- Varsayılan olarak küçük harfe dönüştürür ve noktalama işaretlerini kaldırır;
'words','ngrams','sentences'seçeneklerini destekler stop_words, 3 sözlükten alınmış 1.149 yaygın İngilizce kelimeyi içeren yerleşik bir tibble'dıranti_join(tokens, stop_words, by = 'word'), durak kelimelerini kaldırır- Özel alana özgü durak kelimeleri eklemek için
bind_rows()ile birleştirin count(word, sort = TRUE), düzenli belirteçlerden terim sıklığını hesaplar- İkili kelime grupları:
unnest_tokens(bigram, text, token = 'ngrams', n = 2)
library(tidytext)
library(dplyr)
tibble::tibble(text = 'The quick brown fox jumps over the lazy dog') |>
unnest_tokens(word, text) |>
anti_join(stop_words, by = 'word') |>
count(word, sort = TRUE) |>
print()Sıkça Sorulan Sorular
“Belirteçleştirme ve Yaygın Sözcükleri Kaldırma” dersi ücretsiz mi?
Evet — “Belirteçleştirme ve Yaygın Sözcükleri Kaldırma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve R Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. R Academy kursu toplamda 4 dersten oluşur.
“Belirteçleştirme ve Yaygın Sözcükleri Kaldırma” dersinde ne öğreneceğim?
Metni belirteçlere ayırın ve anti_join() ile bilgi taşımayan sözcükleri filtreleyin. R Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
R Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te R Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.
“Belirteçleştirme ve Yaygın Sözcükleri Kaldırma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu R Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her R Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Belirteçleştirme ve Yaygın Sözcükleri Kaldırma
- TF-IDF ve Terim Sıklığı Analizi
- R'de Duygu Analizi
- LDA ile Konu Modelleme