在 R 文本清理中删除标点符号但保留连字符短语

2023-12-31

有没有有效的方法可以删除文本中的标点符号,但保留连字符的表达方式,例如“容易发生事故”?

我使用以下函数来清理我的文本

clean.text = function(x)
{
  # remove rt
  x = gsub("rt ", "", x)
  # remove at
  x = gsub("@\\w+", "", x)
  x = gsub("[[:punct:]]", "", x)
  x = gsub("[[:digit:]]", "", x)
  # remove http
  x = gsub("http\\w+", "", x)
  x = gsub("[ |\t]{2,}", "", x)
  x = gsub("^ ", "", x)
  x = gsub(" $", "", x)
  x = str_replace_all(x, "[^[:alnum:][:space:]'-]", " ")
  #return(x)
}

并将其应用于返回的连字符表达式

my_text <- "accident-prone"
new_text <- clean.text(text)
new_text
[1] "accidentprone"

而我想要的输出是

"accident-prone"

我已经参考过这个线程 https://stackoverflow.com/questions/31351811/regex-expression-to-exclude-hyphenated-words-in-r但没有发现它适合我的情况。一定有一些我还没有弄清楚的正则表达式的东西。如果有人能启发我,我将不胜感激。


把我的两分钱放进去,你可以用(*SKIP)(*FAIL) with perl = TRUE并删除所有非单词字符:

data <- c("my-test of #$%^&*", "accident-prone")
(gsub("(?<![^\\w])[- ](?=\\w)(*SKIP)(*FAIL)|\\W+", "", data, perl = TRUE))

导致

[1] "my-test of"     "accident-prone"

See regex101.com 上的演示 https://regex101.com/r/jVro2D/1.


Here the idea is to match what you want to keep
(?<![^\\w])[- ](?=\\w)
# a whitespace or a dash between two word characters
# or at the very beginning of the string

让这些失败(*SKIP)(*FAIL)并将要删除的内容放在交替的右侧,在本例中

\W+

有效地删除不在单词字符之间的任何非单词字符。
不过,您需要提供更多示例进行测试。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 R 文本清理中删除标点符号但保留连字符短语 的相关文章

随机推荐

  • Objective-C 中的“isa”变量是否等于 Java 中的“instanceof”

    简单的问题 Objective C 中的 isa 实例变量提供与 Java 中的 instanceof 运算符相同的功能是否公平 这些是不同的概念 一个是一个member一个结构体 而另一个是一个operator 模仿严格的解释instan
  • 如何创建一个仅在其类型具有特定成员函数时才编译的类? [复制]

    这个问题在这里已经有答案了 我有一个名为has f我希望它只接受具有以下内容的模板参数f成员函数 我该怎么做呢 这是我尝试过的 template
  • 在 Ruby 中将转义的 unicode (\u008E) 转换为重音字符 (Ž)?

    我对此感到非常困难 contained within MA u008EEIKIAI should be MA EIKIAI nature of string p string3 MA u008EEIKIAI puts string3 MAE
  • 使用 LAPACK 访问子矩阵

    LAPACK 中有一个函数可以给我特定子矩阵的元素吗 如果是的话 C 的语法是什么 或者我需要编码吗 没有用于访问子矩阵的函数 然而 由于 LAPACK 例程中矩阵数据的存储方式 您不需要它 这节省了大量的复制工作 并且 部分 选择了数据布
  • 如何从控制器返回通用响应?

    Net Core 应用程序并调用其他 Net Core Web API 应用程序 我正在调用控制器方法如下 public async Task
  • 使用 java 将 .cer 转换为 .jks

    我想将扩展名为 cer 的文件转换为 jks 文件 有人可以帮我解决这个问题吗 我用谷歌搜索但没有得到太多信息 即使是教程或链接也可以 我猜想使用的是Java Key Store 谢谢 我使用 BouncyCastle 库 最新版本 1 5
  • 将 SCSS 附加到 HTML 文档 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 这个问题似乎偏离主题 因为它缺乏足够的信息来诊断问题 更详细地描述您的问题或包括一个最小的例子 http stackoverflow co
  • 焦点输入字段的边框半径

    我们如何调整输入字段焦点的边框半径 HTML
  • 如何使用QtCreator远程调试图形应用程序?

    我开发了一个跨平台的 Qt 应用程序 现在我需要 想要在远程主机上运行它并加载 GUI 表单 我知道有两种方法可以做到这一点 通过连接到 QtCreator 的控制台在远程显示器 可能是虚拟的 上打开应用程序ssh 使用远程 X 会话运行
  • Android Studio 显示错误“无效选项 --enable whpx”

    android studio 在运行 AVD 时显示错误 如下所示 无效选项 启用 whpx 请建议一个更好的解决方案来删除它 尝试这个 Android 模拟器需要 Windows Hypervisor Platform WHPX 确保 W
  • Array.prototype.forEach替代实现参数

    在开发我最新的 Web 应用程序并需要使用Array forEach函数 我不断发现以下代码用于添加对没有内置该函数的旧浏览器的支持 Copyright c Mozilla Foundation http www mozilla org T
  • Hadoop 发行版差异

    有人可以概述一下可用的各种 Hadoop 发行版之间的各种差异吗 Cloudera http www cloudera com hadoop http www cloudera com hadoop Yahoo http developer
  • Laravel Fortify 自定义身份验证重定向

    在 Laravel 强化自定义身份验证过程中 我无法重定向到带有错误消息的登录页面 而我们可以在身份验证中执行此操作 这是定制文档链接 https jetstream laravel com 1 x features authenticat
  • 编译器对看似兼容的函数指针分配发出警告(const 与 no-const)

    我遇到了一些有趣的事情 我认为应该是有效的 首先 编译器 版本 gcc version gcc Debian 4 7 2 5 4 7 2 编译器选项和警告消息 gcc c warn c o warn o warn c 11 5 warnin
  • 编辑淘汰赛 observableArray 中的项目

    我正在寻找一个示例 其中我可以将 observableArray 显示为带有编辑 删除链接的普通文本 可以从单独的表单添加 编辑项目 我无法从编辑链接编辑记录 它会添加新记录 self editItem function p edit co
  • 在 Windows 批处理文件的 FOR 循环中转义星号

    在 Windows 批处理文件中运行以下代码时 除了包含星号的字符串 被跳过 之外 所有内容都正常运行 按编号检查传递的参数 即echo 6 我可以看到星号 只有当传递到 FOR 循环时我才会遇到问题 echo off setlocal e
  • 如何自定义生成的 javadoc 存根?

    在 Netbeans 中 当您键入 在上面的方法中 它生成一个 javadoc 存根 param return 如何自定义生成的文本 我想要一个自定义 javadoc 存根 例如 Author author My custom text p
  • 如何使用 C# 连接到 Google Cloud SQL Server?

    我刚刚在 Google Cloud Platform 上设置了一个 SQL Server 我在那里创建了一个数据库和表 我使用微软的 SQL Server Management Studio SSMS 来连接并创建数据库和表 这一切都奏效了
  • 具有列名的多个列的最大值?

    我已经探索了许多关于如何从多个列中返回最大值以及列名的问题和答案 但我还没有解决问题 在这个问题中将解释 SQL MAX 多列 https stackoverflow com questions 71022 sql max of multi
  • 在 R 文本清理中删除标点符号但保留连字符短语

    有没有有效的方法可以删除文本中的标点符号 但保留连字符的表达方式 例如 容易发生事故 我使用以下函数来清理我的文本 clean text function x remove rt x gsub rt x remove at x gsub w