【问题标题】:How to build dictionary using {quanteda} with various different adjectives connected to one single noun?如何使用 {quanteda} 构建字典,将各种不同的形容词连接到一个名词?
【发布时间】:2019-05-10 14:44:46
【问题描述】:

假设我有像这个示例文本这样的文本数据,下面我需要使用自建字典进行分析。

好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”这样的东西,但我知道它不会像这样工作。有解决办法吗?

【问题讨论】:

  • 你为什么不使用词性标注器和依赖解析器(例如使用 spacyr 或 udpipe),它会用词性标注器向你显示形容词,而依赖解析器会指示哪些词与形容词相关联

标签: r dictionary quanteda


【解决方案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" "."

【讨论】:

  • 非常感谢!只是跟进:我需要^$ 做什么?我试过没有这些,效果很好。
  • 你需要它来指示一个令牌的开始或结束,否则你也会匹配例如“不完美”或“货物”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-19
  • 2020-10-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多