非英语术语文档矩阵

时间:2018-08-24 07:38:20

标签: r text hindi term-document-matrix

我有以下由英语和印地语文字组成的数据框 我想阅读R

中的印地文文本
Click Percentage       Email_Subject
18.12807882         तेजस्वी गैलेक्सी ए 7 (2016) बस 1856 रुपए प्रति माह से शुरू खरीदें
11.91957875         तेजस्वी गैलेक्सी ए 7 (2016) बस 1856 रुपए प्रति माह से शुरू खरीदें
0                   तेजस्वी गैलेक्सी ए 5 (2016) बस 1634 रुपए प्रति माह से शुरू खरीदें
9.523809524         खेल परिवर्तक यहाँ है।
6.789250354         एक फोन अपने समय से आगे जा सकता है।

如何用印地语(或任何非英语语言,如泰语)创建术语文档矩阵。我已经尝试过使用此代码的tm包

   text<-dataframe$Email_Subject
   mycorpus<-Corpus(VectorSource(text))
   mycorpus<-tm_map(mycorpus, tolower)
   mycorpus<-tm_map(mycorpus, removeNumbers)
   #mycorpus<-tm_map(mycorpus, removeWords, c(stopwords("hindi")))
    mycorpus
   dtm<-TermDocumentMatrix(mycorpus)
   m<-as.matrix(dtm)
   v <- sort(rowSums(m),decreasing=TRUE)
   d <- data.frame(word = names(v),freq=v)
   list(d1=d)

但这不会生成术语文档矩阵

1 个答案:

答案 0 :(得分:1)

您可以执行以下操作:

library(udpipe)
x <- data.frame(Email_Subject = c("तेजस्वी गैलेक्सी ए 7 (2016) बस 1856 रुपए प्रति माह से शुरू खरीदें", 
                             "तेजस्वी गैलेक्सी ए 7 (2016) बस 1856 रुपए प्रति माह से शुरू खरीदें", 
                             "तेजस्वी गैलेक्सी ए 5 (2016) बस 1634 रुपए प्रति माह से शुरू खरीदें", 
                             "खेल परिवर्तक यहाँ है।", 
                             "एक फोन अपने समय से आगे जा सकता है।"),
           stringsAsFactors = FALSE)
ud_model <- udpipe_download_model(language = "hindi")
ud_model <- udpipe_load_model(ud_model$file_model)

anno <- udpipe_annotate(ud_model, x$Email_Subject)
anno <- as.data.frame(anno)
anno <- subset(anno, upos %in% c("NOUN", "PRON", "ADJ"))

dtm <- document_term_frequencies(anno[, c("doc_id", "lemma")])
dtm <- document_term_matrix(dtm)