16 load r text-mining tm
我正在使用R包tm,我想做一些文本挖掘.这是一份文件,被视为一袋文字.
我不明白如何加载文本文件和创建必要的对象以开始使用诸如....的功能的文档.
stemDocument(x, language = map_IETF(Language(x)))
Run Code Online (Sandbox Code Playgroud)
所以假设这是我的文档"这是对R load的测试"
如何加载数据进行文本处理并创建对象x?
Ben*_*Ben 23
就像@richiemorrisroe一样,我发现这个记录很少.这是我如何获取我的文本以使用tm包并创建文档术语矩阵:
library(tm) #load text mining library
setwd('F:/My Documents/My texts') #sets R's working directory to near where my files are
a <-Corpus(DirSource("/My Documents/My texts"), readerControl = list(language="lat")) #specifies the exact folder where my text file(s) is for analysis with tm.
summary(a) #check what went in
a <- tm_map(a, removeNumbers)
a <- tm_map(a, removePunctuation)
a <- tm_map(a , stripWhitespace)
a <- tm_map(a, tolower)
a <- tm_map(a, removeWords, stopwords("english")) # this stopword file is at C:\Users\[username]\Documents\R\win-library\2.13\tm\stopwords
a <- tm_map(a, stemDocument, language = "english")
adtm <-DocumentTermMatrix(a)
adtm <- removeSparseTerms(adtm, 0.75)
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您无需指定确切的文件名.只要它是第3行中引用的目录中的唯一一个,它将由tm函数使用.我是这样做的,因为我在第3行中没有成功指定文件名.
如果有人可以建议如何将文本放入lda包中,我将非常感激.我根本无法解决这个问题.
你不能只使用readPlain同一个库中的功能吗?或者您可以使用更常见的scan功能.
mydoc.txt <-scan("./mydoc.txt", what = "character")
Run Code Online (Sandbox Code Playgroud)
我实际上发现这一点非常棘手,所以这里有一个更全面的解释.
首先,您需要为文本文档设置源.我发现最简单的方法(特别是如果你计划添加更多文档)是创建一个目录源,它将读取你的所有文件.
source <- DirSource("yourdirectoryname/") #input path for documents
YourCorpus <- Corpus(source, readerControl=list(reader=readPlain)) #load in documents
Run Code Online (Sandbox Code Playgroud)
然后,您可以将StemDocument函数应用于您的语料库.HTH.