gpt4 book ai didi

python - 在 R 中使用自定义分词器将文本转换为向量?

转载 作者:行者123 更新时间:2023-11-30 09:49:35 26 4
gpt4 key购买 nike

R 中有什么方法可以让我使用自己的分词器将文本转换为向量吗?
vectorizer = TfidfVectorizer(tokenizer=getTokens)
X = vectorizer.fit_transform(corpus)

上面的代码是用 python 编写的,getTokens 是我的自定义标记生成器,这样我就可以在 R 中做同样的事情。有一些事情我想提一下,比如 R 中有一个库 library(text2vec)另外,但我没有得到如何在 R 中应用我的自定义分词器标记=单词

最佳答案

“标记化是将文本分割成标记的过程”。我假设您使用标记指的是单词。这可以在 R 中使用例如来完成strsplit 在低级别上。例如:

> example <- "This is an example. This is an example"
> unlist(strsplit(example, split = " "))
[1] "This" "is" "an" "example." "This" "is" "an" "example"

如您所见,字符串会自动转换为包含多个字符串的向量。现在,用简单的空格分割并不能很好地处理特殊情况。因此,对一个或多个非字母数字字符使用正则表达式应该被认为更好:

> unlist(strsplit(example, split = "[^[:alnum:]]+"))
[1] "This" "is" "an" "example" "This" "is" "an" "example"

如果你想保留标点符号,你可以使用 "\\s+" 又名空格而不是 alnum。我们可以将其包装到一个函数中:

> tokenize <- function(x){
+ unlist(strsplit(example, split = "\\s+"))
+ }
> tokenize(example)
[1] "This" "is" "an" "example." "This" "is" "an" "example"

如果您想拥有与单词不同的标记(例如句子或字符)。您可以使用 Quanteda 的分词器,它可以处理特殊情况,例如句号并不表示新句子:

> example <- "This is an example. This is an example Dr. Knowitall"
> quanteda::tokens(example, what = "sentence")
tokens from 1 document.
text1 :
[1] "This is an example." "This is an example Dr. Knowitall"

还有其他几个软件包带有自己的标记器。例如,包标记器就提供了这一点。

关于python - 在 R 中使用自定义分词器将文本转换为向量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47397872/

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