首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >quanteda:删除字符串中的标签(#,@)和url

quanteda:删除字符串中的标签(#,@)和url
EN

Stack Overflow用户
提问于 2020-09-09 21:51:43
回答 2查看 277关注 0票数 2

考虑以下字符串:

代码语言:javascript
复制
txt <- ("Viele Dank für das Feedback + die Verbesserungsvorschläge! :) http://testurl.com/5lhk5p #Greenwashing #PR #Vattenfal")

我创建了一个dfm (创建一个文档-特征矩阵),并对字符串进行预处理,如下所示:

代码语言:javascript
复制
txt_corp <- quanteda::corpus(txt)
txt_dfm <- quanteda::dfm(txt_corp,remove_punct=TRUE, remove_symbols=TRUE, remove_url = T)
topfeatures(txt_dfm)

然后输出如下所示:

代码语言:javascript
复制
topfeatures(txt_dfm)
              viele                    dank                     für                     das                feedback 
                  1                       1                       1                       1                       1 
                die verbesserungsvorschläge           #greenwashing                     #pr              #vattenfal 
                  1                       1                       1                       1                       1 

这还不错。但我希望输出不带标签(#)。我尝试了一些组合,比如:txt_dfm <- quanteda::dfm(txt_corp,remove_punct=TRUE, remove_symbols=TRUE, remove_url = T, what ="word1")

代码语言:javascript
复制
topfeatures(txt_dfm)
              viele                    dank                     für                     das                feedback 
                  1                       1                       1                       1                       1 
                die verbesserungsvorschläge                    http             testurl.com                  5lhk5p 
                  1                       1                       1                       1                       1 

然后我收到上面的输出。一方面,标签被删除了,但另一方面,链接被分割了,并且没有被删除。有人能帮助使用quanteda获得以下输出吗?

代码语言:javascript
复制
                  viele                    dank                     für                     das                feedback 
                  1                       1                       1                       1                       1 
                die verbesserungsvorschläge           greenwashing                     pr              vattenfal 
                  1                       1                       1                       1                       1 
EN

回答 2

Stack Overflow用户

发布于 2020-09-10 04:34:29

quanteda_options()中有一个正则表达式模式可以匹配散列标签。如果您将NULL设置为它,它将停止保存它们。

代码语言:javascript
复制
require(quanteda)
quanteda_options(reset = TRUE)
quanteda_options("pattern_hashtag")     
# [1] "#\\w+#?"
tokens("#aaaa bbbb")
# Tokens consisting of 1 document.
# text1 :
# [1] "#aaaa" "bbbb" 

quanteda_options("pattern_hashtag" = NULL)
tokens("#aaaa bbbb")
# Tokens consisting of 1 document.
# text1 :
# [1] "#"    "aaaa" "bbbb"
票数 1
EN

Stack Overflow用户

发布于 2020-09-09 22:14:21

是否从字符串中删除hashtag?

代码语言:javascript
复制
txt <- gsub("#","",txt)

> txt_dfm
Document-feature matrix of: 1 document, 10 features (0.0% sparse).
       features
docs    viele dank für das feedback die verbesserungsvorschläge greenwashing pr vattenfal
  text1     1    1   1   1        1   1                       1            1  1         1
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63813143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档