我正在使用R进行文本分析,并且需要将句子的第一个字母转换为小写,同时保持其他大写单词的方式。所以我使用了命令
x <- gsub("(\\..*?[A-Z])", '\\L\\1', x, perl=TRUE)
哪个有效但部分有效。问题是,对于文本分析,我必须将pdf文件转换为txt格式,现在txt文件包含许多空行(分页符,可能返回),因此我使用的命令不转换大写字母出现在新行上。我试图在 gsub 中使用不同的组合消除空行,其中包含\ r,\ n但是没有任何效果。当我执行tm-package的inspect(x)时,输出以下列方式显示:
[346]
[347] Thank you.
[348]
[349] Vice President of Investor Relations
[350]
如果有人能帮助我,我将不胜感激!
答案 0 :(得分:3)
给定输出,空行似乎是字符向量中的单独字符串。您需要使用grep
empty_lines = grepl('^\\s*$', x)
x = x[! empty_lines]
然后您可以执行后续分析,但您可能仍需要首先连接这些行以获取单个字符串:
x = paste(x, collapse = '\n')
答案 1 :(得分:1)
您可以使用^[A-Z]
获取新行,并使用或符号|
x <- gsub("(\\..*?[A-Z]|^[A-Z])", '\\L\\1', x, perl=TRUE)
您可以使用
在上述步骤之前或之后删除空行x <- x[x != ""]