یکی از سوالاتی که دوستان خیلی می پرسند نحوه خواندن متن فارسی در R و تعیین انکدینگ متن هست. خوب قطعا R و پکیجهای پردازش متن آن فقط برای زبان انگلیسی ساخته نشده. راه حل این مشکل این هست که موقع خواندن متن از فایلی که انکدینگ آن UTF-8 ( یا هر انکدینگ دیگه ای هست ) باید این را به R اعلام کنید. قطعه کد زیر متن فارسی زا از یک فایل به نام farsidocs.txt می خواند و بعد ابر کلمات آن را رسم می کند.
فرض بر این است که هر خط از فایل farsidocs.txt ، معادل یک سند است
- #مسیر فایل
- file_loc <- "C:\\ farsidocs.txt"
- # موقع خواندن فایل انکدینگ باید مشخص شود
- x <- read.csv(file_loc, header = FALSE , encoding = "UTF-8")
- # حالا می توانید متن ها را با هر روش دلخواه تحلیل کنید.
- library (tm)
- docs <- Corpus(DataframeSource(x))
- docs <-tm_map(docs,removePunctuation)
- docs <-tm_map(docs,stripWhitespace)
- docs <- tm_map(docs, PlainTextDocument)
- dtm <- DocumentTermMatrix(docs)
- m <- as.matrix(dtm)
- library(wordcloud)
- v <- sort(colSums(m),decreasing=TRUE)
- words <- names(v)
- d <- data.frame(word=words, freq=v)
- dark2 <- brewer.pal(6, "Dark2")
- wordcloud(d$word,d$freq,min.freq=5, colors=dark2)
|
خولندن متن فارسی و رسم ابر کلمات آن با استفاده از R |