为什么remove_punct在quanteda中标记语料库时不删除撇号?

92dk7w1h  于 2023-09-27  发布在  其他
关注(0)|答案(1)|浏览(84)

我正在标记一个文本语料库,但在删除标点符号时遇到了问题。似乎大多数标点符号都被删除了,但撇号没有。
代码:

all.tokens <-
  tokens(
    my.corpus,
    remove_punct = TRUE,
    remove_numbers = TRUE,
    remove_symbols = TRUE,
    remove_url = TRUE
  ) %>% tokens_tolower() %>% tokens_select(pattern = stopwords("en"), selection = "remove")

其他人有这个问题吗?有什么变通办法吗?谢谢你,谢谢

llycmphe

llycmphe1#

help document for quanteda package's tokens() function解释了函数“tokens()更像是一个构造函数(来自一个命名列表),而不是一个标记器。这允许用户使用任何其他返回命名列表的tokenizer,并将其用作tokens()的输入,并在构造后应用删除和拆分规则(作为参数传递)。这些删除和拆分规则是保守的,除非用户请求,否则不会删除或拆分任何内容。
这意味着默认的分词器(由tokens()函数中的word=参数设置)不会拆分收缩,如can'tdidn'tI'm。这是故意的。事实上,tokens()函数中what参数的标准标记器选项都不能拆分收缩(选项是“word”, “word1”, “word2”, “word3”, “word4”, “sentence”, “character”, “fasterword”, “fastestword”)。如果你想把这些单词拆分成单独的单词,那么你需要使用一个自定义的分词器。或者你必须编写自己的函数来拆分收缩,然后应用tokens函数。

相关问题