2017-08-10 78 views
1

我有一個現有的代碼用於創建一個文檔中的所有bigrams表,但它刪除了撇號。如何調整此代碼以將單詞「I've」作爲單個詞語處理?在R中創建bigrams時如何保留撇號?

text1 = scan(file.choose(), what="character",sep="\n") 
text1 <- tolower(text1) 
tokens <- unlist(strsplit(text1, "[^a-z]+")) 
tokens <- mytable[tokens != ""] 
tokens2 <- c(tokens[-1], ".") 
bigrams <- paste(tokens, tokens2) 
freq <- sort(table(bigrams), decreasing=T) 
write.csv(file = "bigram count.csv" , x=freq, row.names = FALSE) 

例如,短語「我很開心」將輸出「我有」和「很開心」

回答

0

您可以使用一個包,如「以舊換新」 O「NGRAM」 。例如使用ngram獲取bigrams的data.frame及其頻率。

require(ngram) 
TMP <- "I've had fun tonight" 
TMP1 <- ngram(str = TMP,n = 2) 
TMP2 <- as.data.frame(get.phrasetable(TMP1)) 
TMP2 

     ngrams freq  prop 
1  had fun  1 0.3333333 
2 I've had  1 0.3333333 
3 fun tonight  1 0.3333333