提取段落 R 的第一个单词



我正在尝试从语料库中删除撇号,但前提是它们是段落中的第一个字符。我看过关于在句子中查找第一个单词的帖子,但没有找到段落。

我尝试这样做的原因是因为我正在分析文本。我想去掉所有的标点符号,但在单词中间留下撇号和破折号。为了开始这个,我做了:

library(tm)
library(qdap)
#docs is any corpus
docs.test=tm_map(docs, PlainTextDocument)
docs.test=tm_map(docs.test, content_transformer(strip), char.keep=c("'","-"))
    for(j in seq(docs.test))   
{   
  docs[[j]] <- gsub(" '", " ", docs[[j]])   
}

这成功地删除了除新行开始的撇号之外的所有撇号。为了在新行上删除它们,我尝试了:

for(j in seq(docs.test))   
{     
  docs[[j]] <- gsub("r'", " ", docs[[j]])
  docs[[j]] <- gsub("n'", " ", docs[[j]])
  docs[[j]] <- gsub("<p>'", " ", docs[[j]])
  docs[[j]] <- gsub("</p>'", " ", docs[[j]])
}

总的来说,我认为找到一种方法来提取段落的第一个单词会很有用。对于我的特定问题,我正在尝试它只是为了获得这些撇号。我目前正在使用软件包 qdap 和 tm,但愿意使用更多。

有什么想法吗?

谢谢!

您没有提供测试示例,但这里有一个保留单词内撇号和连字符的函数。 它在不同的包中,但如末尾的示例所示,如果需要,很容易强制到常规列表:

require(quanteda)
txt <- c(d1 = ""This" is quoted.",
         d2 = "Here are hypen-words.",
         d3 = "Example: 'single' quotes.",
         d4 = "Possessive plurals' usage.")
(toks <- tokens(txt, removePunct = TRUE, removeHyphens = FALSE))
## tokens from 4 documents.
## d1 :
## [1] "This"   "is"     "quoted"
##
## d2 :
## [1] "quanteda's"  "hypen-words"
## 
## d3 :
## [1] "Example" "single"  "quotes" 
##
## d4 :
## [1] "Possessive" "plurals"    "usage"  

您可以通过这种方式返回列表,当然,如果需要,也可以通过sapply() paste(x, collapse = " ")等方式返回文档。

as.list(toks)
## $d1
## [1] "This"   "is"     "quoted"
## 
## $d2
## [1] "quanteda's"  "hypen-words"
## 
## $d3
## [1] "Example" "single"  "quotes" 
## 
## $d4
## [1] "Possessive" "plurals"    "usage" 

最新更新