Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
457 views
in Technique[技术] by (71.8m points)

r - Dictionary() is not supported anymore in tm package. How to emend code?

I just noticed that after updating to tm v. 0.5-10 the function Dictionary() is not supported anymore. Is this an mistake? Or was it deprecated? Am I suppose to use another function to create a dictionary?

Since I have many lines of code to emend now, what's the best way to proceed without engineering everything?

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

As IShouldBuyABoat says, you haven't given us any clue about how you're using Dictionary so we can't really give you any specific answers (do update your question with more details).

In any case, the answer your question of 'how to update my code' is probably 'just delete Dictionary and it should be fine', as you can see here:

library(tm)
data(crude)

Find out what Dictionary did in earlier versions of the tm package:

methods(Dictionary)
getAnywhere(Dictionary.DocumentTermMatrix)
# function(x) structure(Terms(x), class = c("Dictionary", "character"))
getAnywhere(Dictionary.character)
# function (x)  structure(x, class = c("Dictionary", "character"))

Kind of a pointless function anyway, seems quite sensible to remove it. But how to update your code that depended on it?

You may have used Dictionary like this:

myDictionary <- Dictionary(c("some", "tokens", "that", "I", "am", "interested", "in"))
inspect(DocumentTermMatrix(crude, list(dictionary = myDictionary)))

Now that this function is not longer available, you'd do this instead, using a character vector: '

myTerms <- c("some", "tokens", "that", "I", "am", "interested", "in")
inspect(DocumentTermMatrix(crude, list(dictionary = myTerms)))

The output for these two examples is identical, first one was using tm version 0.5-9 and the second with version 0.5-10

The instruction in the NEWS to use Terms is if you want to get all the words in a document term matrix, like so

Terms(DocumentTermMatrix(crude))

If none of that helps you then you'll need to supply more detail about what you're trying to do.


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...