如何使用{quanteda}建立具有单个名词连接的各种形容词的字典?

时间:2019-05-10 14:44:47

标签: r dictionary quanteda

说我有类似此示例文本的文本数据,下面需要使用自建字典进行分析。

  

好X.完美X.宏伟X.非凡X.坏X.糟糕X.非常差的X。

基于此,我想使用{quanteda}使用以下代码结构来构建字典:

dict <- quanteda::dictionary(list(.))

有没有一种方法可以指定要查找的形容词而不必为每个感兴趣的形容词键入X?

# Example of what I want to avoid:
dict <- quanteda::dictionary(list(
  list_1 = c("good X", "perfect X",...)
))

所以理想情况下,我需要“好/完美/ ... X”之类的东西,但是我知道它不会像这样工作。有解决办法吗?

1 个答案:

答案 0 :(得分:1)

是的,您可以使用“或”运算符|,后跟X将前形容词作为正则表达式列出。

在这里,我使用exclusive = FALSE只是为了显示哪些令牌已被密钥替换而哪些未被替换。

library("quanteda")
## Package version: 1.4.3
## Parallel computing: 2 of 12 threads used.
## See https://quanteda.io for tutorials and examples.

dict <- dictionary(list(mykey = "^(good|perfect|magnificient)$ X"))

tokens("I had a good X at the magnificient X hotel.") %>%
  tokens_lookup(dictionary = dict, valuetype = "regex", exclusive = FALSE)
## tokens from 1 document.
## text1 :
## [1] "I"     "had"   "a"     "MYKEY" "at"    "the"   "MYKEY" "hotel" "."