gpt4 book ai didi

r - 如何将字符向量列表转换为 quanteda 标记对象?

转载 作者:行者123 更新时间:2023-12-04 07:22:01 26 4
gpt4 key购买 nike

我有一个包含文档标记的字符向量列表。

list(doc1 = c("I", "like", "apples"), doc2 = c("You", "like", "apples", "too"))
我想将此向量转换为 quanteda tokens (或 dfm )对象以利用某些 quantedas 功能。
这样做的最佳方法是什么?
我意识到我可以对每个文档执行以下操作:
tokens(paste0(c("I", "like", "apples"), collapse = " "), what = "fastestword")
这使:
Tokens consisting of 1 document.
text1 :
[1] "I" "like" "apples"
但这感觉就像一个黑客,也不可靠,因为我的一些 token 对象中有空格。有没有办法更顺利地传输这些数据结构?

最佳答案

您可以从以下位置构造 token 对象:

  • 一个字符向量,在这种情况下,对象被标记为每个字符元素成为一个“文档”
  • 语料库,它是一个特殊分类的字符向量,并以相同的方式被标记化并转换为标记对象中的文档
  • 一个字符元素列表,在这种情况下,每个列表元素成为一个标记化的文档,并且该列表的每个元素成为一个标记(但不会进一步标记化)
  • 一个标记对象,它被视为与字符元素列表相同。

  • 也可以使用 as.tokens(mylist) 将字符元素列表转换为标记对象。 .不同的是,与 tokens() ,您可以访问所有选项,例如 remove_punct .与 as.tokens() ,转换是直接的,没有选项,所以如果你不需要选项会快一点。
    lis <- list(
    doc1 = c("I", "like", "apples"),
    doc2 = c("One two", "99", "three", ".")
    )

    library("quanteda")
    ## Package version: 3.0.9000
    ## Unicode version: 13.0
    ## ICU version: 69.1
    ## Parallel computing: 8 of 8 threads used.
    ## See https://quanteda.io for tutorials and examples.

    tokens(lis)
    ## Tokens consisting of 2 documents.
    ## doc1 :
    ## [1] "I" "like" "apples"
    ##
    ## doc2 :
    ## [1] "One two" "99" "three" "."
    tokens(lis, remove_punct = TRUE, remove_numbers = TRUE)
    ## Tokens consisting of 2 documents.
    ## doc1 :
    ## [1] "I" "like" "apples"
    ##
    ## doc2 :
    ## [1] "One two" "three"
    强制替代,没有选项:
    as.tokens(lis)
    ## Tokens consisting of 2 documents.
    ## doc1 :
    ## [1] "I" "like" "apples"
    ##
    ## doc2 :
    ## [1] "One two" "99" "three" "."

    关于r - 如何将字符向量列表转换为 quanteda 标记对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68433502/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com