【发布时间】:2019-12-03 07:03:41
【问题描述】:
我需要在 termDocumentmatrix 的功能中将语言更改为土耳其语。你能帮我吗?
此代码有效。我得到了我想要的土耳其语词干、停用词等结果。
dat<-"BirGün, Türkiye'de günlük olarak yayımlanan ulusal bir gazete.
Gazetenin yazı işleri müdürü Berkant Gültekin, yayın danışmanı Barış İnce,
sorumlu müdürü Cansever Uğur ve haber koordinatörü İbrahim Varlı'dır. Yayın
hayatına 14 Nisan 2004'te başlayan gazetenin sahibi Birgün Yayıncılık ve İletişim Ticaret AŞ'd"
dat%>%
tokens(remove_punct = TRUE, remove_numbers = TRUE, remove_symbols = TRUE)%>%
tokens_remove(stopwords("tr", source = "stopwords-iso")) %>%
tokens_wordstem(language = "turkish") %>%
tokens_tolower()
Result:
[1] "birg" "türkiye'" "günlük" "yayımlana" "ulusal" "gaze" "gazete" "yaz" "iş"
[10] "müdür" "berkant" "gültek" "yay" "danışma" "barış" "ince" "sorumlu" "müdür"
[19] "cansever" "uğur" "haber" "koordinatör" "ibrah" "varlı'" "yay" "hayat" "nisa"
[28] "te" "başlaya" "gazete" "sahip" "birgi" "yayıncılık" "iletiş" "ticaret" "aş'd"
但是,我没有将这些过程整合到术语文档矩阵中,我尝试挖掘 pdf 文件
library(pdftools)
library(tm)
library(SnowballC)
library(dplyr)
library(stringr)
library(tidytext)
library(quanteda)
这部分是在工作区读取pdf文件
files <- list.files(pattern = "pdf$")
file<-as.character(files)
opinions <- lapply(files, pdf_text)
length(opinions)
lapply(opinions, length)
创建语料库
corp <- Corpus(URISource(files),
readerControl = list(reader = readPDF))
在这部分,"language="turkish" 不起作用,它仍然使用英语作为基础语言
opinions.tdm <- TermDocumentMatrix(corp,
control =
list(language="turkish",
stopwords = TRUE,
removePunctuation = TRUE,
tolower = TRUE,
stemming = TRUE,
removeNumbers = TRUE,
bounds = list(global = c(1, Inf))))
inspect(opinions.tdm[1:10,])
opinions.tdm <- TermDocumentMatrix(corp,
control =
list(language="turkish",
stopwords = TRUE,
tolower = TRUE,
stemming = TRUE,
removePunctuation=TRUE,
removeNumbers = TRUE,
bounds = list(global = c(1, Inf))))
findFreqTerms(opinions.tdm, lowfreq = 100, highfreq = Inf)
ft <- findFreqTerms(opinions.tdm, lowfreq = 100, highfreq = Inf)
as.matrix(opinions.tdm[ft,])
ft.tdm <- as.matrix(opinions.tdm[ft,])
sort(apply(ft.tdm, 1, sum), decreasing = TRUE)
a<-sort(apply(ft.tdm, 1, sum), decreasing = TRUE)
a<-as.data.frame(a)
a$word<-rownames(a)
aa<-a %>% filter(a > 200) %>%
mutate(word = reorder(word, a))
【问题讨论】:
-
TermDocumentMatrix控制选项中的语言设置不支持土耳其语。如果 quanteda 能够满足您的需求,您为什么还要尝试使用 tm?要阅读 pdf,您可以使用 readtext 包,它由与 quanteda 相同的开发人员开发,并用它来做所有事情。
-
感谢您的评论。我是文本挖掘的新手。我必须将语料库转换为 termdocumentmatrix 才能使用随机森林算法。我可以使用 readtext 和 quanteda 包执行这些步骤吗?
标签: r nlp text-mining