2014-10-06 65 views
0

我有以下矢量R:與同組的字符串開始

words <- c("verkoop", "verkoopartikel", "artikelnummer", "bank", "bankinfo", "bankrekeningnummer", "artikelnaam")  

我如何可以羣集具有相同字母開頭的單詞? 所以在這裏,這將是:
verkoop,verkoopartikel
產品編號,artikelnaam
銀行,bankinfo,bankrekeningnummer

+4

這正是你想要的或將http://en.wikipedia.org/wiki/Stemming對你有用嗎?如果是這樣,tm軟件包提供這種功能 – 2014-10-06 14:20:53

+0

我知道詞幹,但我想要這樣的話。 – Anita 2014-10-07 07:13:04

回答

0

下面是其首先提取唯一的起始字母一個潛在的解決方案,然後集羣的載體使用模式的話匹配:

words <- c("verkoop", "verkoopartikel", "artikelnummer", "bank", "bankinfo", "bankrekeningnummer", "artikelnaam") 
l <- unique(substring(words,1,1)) 
l <- paste0("^", l) # the^indicates that the string should start with this letter 
lapply(l, function(x,y) y[grep(x,y)], y=words) 
# [[1]] 
# [1] "verkoop"  "verkoopartikel" 
# [[2]] 
# [1] "artikelnummer" "artikelnaam" 
# [[3]] 
# [1] "bank"    "bankinfo"   "bankrekeningnummer" 
0

對於屬於同一個羣集的兩個單詞,他們應該共享多少個首字母?以下示例適用於n_init = 4字母。

library(dplyr) 

n_init <- 4 

data.frame(words) %>% 
    mutate(cluster = as.numeric(as.factor(substring(words, 1, n_init))))