Pemberian Token dan Pembuangan Kata Henti
Pecahkan teks kepada token dan tapis perkataan yang tidak bermaklumat dengan anti_join().
Pemberian Token dan Pembuangan Kata Henti ialah pelajaran R Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Sebanyak 3 pelajaran dalam laluan pembelajaran ini boleh dibaca sepenuhnya secara percuma — selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan praktikal dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran R Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Apakah Perlombongan Teks?
Perlombongan teks (atau analitik teks) menukarkan teks tidak berstruktur kepada data berstruktur yang boleh dianalisis secara statistik. Pakej tidytext membolehkan pendekatan tidy: setiap baris ialah satu token (perkataan, bigram, ayat), menjadikannya serasi dengan dplyr dan ggplot2.
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: Pengekodan Token Perkataan
unnest_tokens(output, input) memecahkan teks kepada format satu baris bagi setiap token. Secara lalai, ia menokenkan mengikut perkataan, menukarkan huruf kepada huruf kecil dan membuang tanda baca. Argumen token menyokong 'words', 'ngrams', 'sentences', dan lain-lain.
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)Set Data stop_words
tidytext disertakan dengan tibble terbina dalam stop_words yang mengandungi 1,149 kata henti bahasa Inggeris yang lazim daripada tiga leksikon: SMART, Snowball dan onix. Perkataan ini ("the", "is", "and"…) membawa sedikit makna semantik dan biasanya dibuang sebelum analisis.
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: Membuang Kata Henti
anti_join(tokens, stop_words, by = 'word') membuang semua baris yang word-nya sepadan dengan mana-mana entri dalam stop_words. Ini ialah corak standard tidytext untuk membuang kata henti — bersih, mudah dibaca dan senang dikembangkan.
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: Kekerapan Istilah
Selepas menokenkan teks dan membuang kata henti, gunakan count(word, sort = TRUE) untuk mengira kekerapan istilah. Ini menjadi asas bagi banyak analisis perlombongan teks — perkataan bermakna yang paling kerap muncul mencirikan topik dokumen.
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))Kata Henti Tersuai
Korpus khusus domain sering mengandungi perkataan berkekerapan tinggi yang tidak relevan (contohnya, "patient", "doctor" dalam nota perubatan). Cipta tibble kata henti tersuai dan gabungkannya dengan leksikon terbina dalam menggunakan bind_rows().
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)Pengekodan Bigram
Tetapkan token = 'ngrams', n = 2 untuk menokenkan teks kepada pasangan perkataan berturutan (bigram). Bigram menangkap frasa seperti "machine learning" atau "data science" yang mungkin terlepas jika perkataan dianalisis secara individu, lalu memberikan konteks yang lebih kaya.
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))Menapis Bigram untuk Mendapatkan Kualiti
Kebanyakan bigram yang paling kerap muncul mengandungi pasangan kata henti seperti "of the". Pisahkan bigram kepada dua lajur dengan tidyr::separate(), tapis baris yang mana-mana perkataannya ialah kata henti, kemudian satukan semula untuk mendapatkan pasangan frasa yang bermakna.
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)Memvisualkan Kekerapan Perkataan
Lakar kekerapan perkataan sebagai carta palang menggunakan ggplot2. Susun palang dengan reorder(word, n) dan gunakan coord_flip() untuk label mendatar. Ini merupakan salah satu hasil yang paling mudah difahami dalam perlombongan teks.
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()Bilangan Perkataan bagi Setiap Dokumen
Apabila korpus anda mempunyai berbilang dokumen, tambahkan lajur pengenalan dokumen dan kumpulkan mengikut doc_id, word untuk mengira kekerapan istilah bagi setiap dokumen. Hasil ini boleh terus digunakan untuk analisis TF-IDF dan model topik.
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))Pengekodan Ayat
Tetapkan token = 'sentences' untuk memecahkan teks pada sempadan ayat. Token pada aras ayat berguna untuk analisis sentimen (memberikan skor bagi setiap ayat), peringkasan (memilih ayat yang mewakili), dan tugasan menjawab soalan.
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)Semakan Pantas
Anda telah menokenkan korpus kepada perkataan menggunakan unnest_tokens() dan mahu membuang perkataan bahasa Inggeris yang lazim. Operasi manakah yang melakukannya menggunakan set data terbina dalam stop_words?
Rumusan: Pengekodan Token dan Kata Henti
Inti pati utama:
unnest_tokens(word, text)menukarkan teks mentah kepada format tidy satu baris bagi setiap perkataan- Lalai: huruf kecil, tanda baca dibuang; menyokong
'words','ngrams','sentences' stop_wordsialah tibble terbina dalam dengan 1,149 perkataan bahasa Inggeris yang lazim daripada 3 leksikonanti_join(tokens, stop_words, by = 'word')membuang kata henti- Gabungkan dengan
bind_rows()untuk menambah kata henti tersuai khusus domain count(word, sort = TRUE)mengira kekerapan istilah daripada token tidy- Bigram:
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()Pelajari R dengan tutor kecerdasan buatan — percuma
Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.
- Kursus
- 43
- Pelajaran
- 159
Soalan Lazim
Adakah pelajaran “Pemberian Token dan Pembuangan Kata Henti” percuma?
Ya — sebanyak 3 pelajaran dalam laluan pembelajaran R Academy, termasuk “Pemberian Token dan Pembuangan Kata Henti”, boleh dibaca sepenuhnya secara percuma di web ini. Selepas itu, CoddyKit PRO membuka akses kepada semua pelajaran, serta latihan interaktif dengan penyunting kod terbina dalam dan tutor kecerdasan buatan yang tersedia 24/7. Kursus R Academy merangkumi sejumlah 4 pelajaran.
Apakah yang akan saya pelajari dalam “Pemberian Token dan Pembuangan Kata Henti”?
Pecahkan teks kepada token dan tapis perkataan yang tidak bermaklumat dengan anti_join(). Anda berlatih R Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.
Adakah saya memerlukan pengalaman untuk memulakan R Academy?
Tiada pengalaman terdahulu diperlukan. Pembelajaran R Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.
Berapa lamakah pelajaran “Pemberian Token dan Pembuangan Kata Henti” diambil?
Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.
Bolehkah saya menulis dan menjalankan kod dalam pelajaran R Academy ini?
Ya. Setiap pelajaran R Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.
Semua pelajaran dalam kursus ini
- Pemberian Token dan Pembuangan Kata Henti
- TF-IDF dan Analisis Kekerapan Istilah
- Analisis Sentimen dalam R
- Pemodelan Topik dengan LDA