问题描述
有谁知道在 Quanteda 中对文本进行标记化后是否可以添加自定义标记?
我正在尝试对中文文本进行一些分析,但分词器无法将“ASEAN 社区”的缩写识别为单个词(见下文)。
或者,是否有适用于 Quanteda 的中文文本的替代分词器。我一直在使用 Spacyr 包,但目前无法使用。
我做了一些函数来使用“特征共现矩阵”来计算其他单词出现在特定 term
的 5 字窗口中的次数,然后生成这些结果的表格(见下文)。然而,这似乎不适用于“环”这个词
##Function 1
get_fcm <- function(data) {
ch_stop <- stopwords("zh",source = "misc")
corp = corpus(data)
toks = tokens(corp,remove_punct = TRUE) %>% tokens_remove(ch_stop)
fcm = fcm(toks,context = "window")
return(fcm)
}
##Function 2
convert2df <- function(matrix,term){
mat_term = matrix[term,]
df = convert((t(mat_term)),to = "data.frame")
colnames(df)[1] = "CoTerm"
colnames(df)[2] = "Freq"
x = df[order(-df$Freq),]
return(x)
}
将 %>% tokens_compound(phrase("东 盟"),concatenator = "")
添加到函数 1 的 toks = 行会解决这个问题吗?
解决方法
如果您有特定的列表,您可以对拆分的短语(例如“社区”)进行后处理以在标记后重新加入它们。
> tokens("东盟") %>%
+ tokens_compound(phrase("东 盟"),concatenator = "")
Tokens consisting of 1 document.
text1 :
[1] "东盟"