我最近在使用R的文本挖掘中遇到了一些問題。 目的是在新聞中找到有意義的關鍵詞,例如「智能車」和「數據挖掘」。在R中沒有停用詞的形式bigrams
比方說,如果我有一個字符串,如下所示:
"IBM have a great success in the computer industry for the past decades..."
刪除停用詞( 「有」, 「一」, 「中」, 「中」, 「爲」)後,
"IBM great success computer industry past decades..."
因此,會出現像「成功計算機」或「工業過去」這樣的巨頭。
但我真正需要的是在兩個單詞之間不存在任何停用詞,例如「計算機行業」就是我想要的bigram的明確示例。
我的代碼的部分低於:
corpus <- tm_map(corpus, removeWords, stopwords("english"))
corpus <- tm_map(corpus, stripWhitespace)
corpus <- tm_map(corpus, stemDocument)
NgramTokenizer = function(x) {unlist(lapply(ngrams(words(x), 2), paste, collapse = " "), use.names = FALSE)}
dtm <- TermDocumentMatrix(corpus, control = list(tokenize = NgramTokenizer))
是否有任何方法,以避免像「成功的電腦」時,TF計數的話,結果呢?
也許你可以先把你一句被禁用詞拆分到不同的子句子。然後繼續進行bigrams的識別。 –
@VenYao 如何將句子拆分爲某種功能? 我使用readLines導入的文本。 如果文字大量的話會怎麼樣? 我擔心效率問題。 –
使用'strsplit'函數。這個功能很快。 –