Я пытаюсь настроить словарь quanteda, который содержит много совпадающих терминов. Я полагаю, что использование регулярных выражений «смотреть вперед / смотреть назад» могло бы помочь решить эту проблему и избежать ложных попаданий, но я, должно быть, делаю что-то не так.
text <- c("guinea", "equatorial guinea", "guinea bissau")
dict <- dictionary(list(guinea="guinea"))
dfm <- dfm(text, dictionary=dict, valuetype="regex")
colSums(dfm)
dict2 <- dictionary(list(guinea="(?<!equatorial[[:space:]])guinea"))
dfm2 <- dfm(text, dictionary=dict2, valuetype="regex")
colSums(dfm2)
dict3 <- dictionary(list(guinea="guinea(?![[:space:]]bissau)"))
dfm3 <- dfm(text, dictionary=dict3, valuetype="regex")
colSums(dfm3)
Ожидаемые результаты должны быть
# dfm1
colSums(dfm1)
guinea
3
# dfm2
colSums(dfm2)
guinea
2
# dfm3
colSums(dfm3)
guinea
2
Но фактические результаты все = 3
Это проблема с просмотром вперед / назад или с тем, как вставляется пробел?