使用法语ANEW字典进行情绪分析

时间:2018-03-24 17:02:38

标签: r quanteda

this post类似,我正在尝试使用英语单词的情感规范(法语)与 Quanteda 进行情感分析。我最终想在我的语料库中为每个文本创建一个“平均情绪”。

首先,我加载ANEW字典(FAN in French)并创建一个命名的权重向量。 ANEW与其他字典不同,因为它不使用键:值对格式,而是为每个单词指定一个数字分数。目标是选择要素,然后使用加权计数对它们进行评分。 ANEW文件如下所示:MOT / VALENCE 癌症:1.01,马铃薯:3.56,爱情:6.56

#### FAN DATA ####
# read in the FAN data
df_fan <- read.delim("fan_anew.txt", stringsAsFactors = FALSE)
# construct a vector of weights with the term as the name
vector_fan <- df_fan$valence
names(vector_fan) <- df_fan$mot

然后我尝试将dfm_weight()应用于我的27个文档的语料库中。

# create a dfm selecting on the FAN words
dfm_fan <- dfm(my_corpus, select = df_fan$mot, language = "French")

dfm_fan_weighted <- dfm_fan %>%
dfm_weight(scheme = "prop") %>%
dfm_weight(weights = vector_fan)
## Warning messages:
## 1: dfm_weight(): ignoring 696 unmatched weight features 
## 2: In diag(weight) : NAs introduced by coercion

这是我得到的,生成的dfm对象中只包含6个文档,并且代码不会估计原始语料库中每个文档的ANEW平均分数。

tail(dfm_fan_weighted)
## Document-feature matrix of: 6 documents, 335 features (72.6% sparse).
tail(dfm_fan_weighted)[, c("absent", "politique")]
## Error in intI(j, n = x@Dim[2], dn[[2]], give.dn = FALSE) : invalid character indexing
tail(rowSums(dfm_fan_weighted))
## text22 text23 text24 text25 text26 text27 
##     NA     NA     NA     NA     NA     NA
tail(dfm_fan_weighted)[, c("beau")]
## Document-feature matrix of: 6 documents, 1 feature (100% sparse).
## 6 x 1 sparse Matrix of class "dfm"
## features 
## docs     beau
## text22    0
## text23    0
## text24    0
## text25    0
## text26    0
## text27    0 

有什么想法解决它吗?我认为代码只需要一些小的改动即可正常工作。

编辑:我按照Ken Benoit评论编辑了代码。

0 个答案:

没有答案