r - 从 r 中的 df (size 29175) 中删除/替换/gsub df (size 6001) 中的所有单词匹配列表,不同大小的数据帧
问题描述
我一直在尝试删除 dfmedia(大小 29175)中与 dfvocab(大小 6001)中包含的任何单词匹配的任何单词。
dfmedia: each row is a sentence of words in chinese.
我喜歡吃蘋果; 我愛吃饅頭; 我不喜歡菠菜; 我最討厭蘋果!;我很愛菠菜啊;哪個中國人敢不喜歡饅頭?;哎呀饅頭蘋果菠菜都是食物管人家喜歡否?
dfvocab: 蘋果,饅頭,菠菜
desired result: 我喜歡吃; 我愛吃; 我不喜歡; 我最討厭!;我很愛啊;哪個中國人敢不喜歡?;哎呀都是食物管人家喜歡否?
我认为中文或英文的结果不会有任何不同,因为它是一个简单的匹配和删除/替换,但我在这里包括中文以防万一,因为我的 og 数据是中文的。
我已经尝试过 gsub()、mapply() 并使用 stringr 将 dfmedia 和 dfvocab 绑定到一个数据帧/删除中。但是,由于 dfvocab 和 dfmedia 的大小不同,我不确定如何使用在线建议的方法来解决这个问题。
任何帮助将非常感激!!
解决方案
这很简单gsub
。只是paste0
所有的词汇和正则表达式 OR 运算符并替换为""
> gsub(paste0(dfvocab, collapse="|"), "", dfmedia)
[1] "我喜歡吃" " 我愛吃" " 我不喜歡" " 我最討厭!" "我很愛啊" "哪個中國人敢不喜歡?"
[7] "哎呀都是食物管人家喜歡否"
(我不会说或读中文。)我想如果要删除这么大的词汇集,您可能需要将 6000 个词汇分解成块,我怀疑这会很慢。您可能想查看该tm
软件包,因为文本挖掘可能是一项需要优化此类操作的任务。
这是构建可重现示例的方法:
> dfmedia <- scan(text="我喜歡吃蘋果; 我愛吃饅頭; 我不喜歡菠菜; 我最討厭蘋果!;我很愛菠菜啊;哪個中國人敢不喜歡饅頭?;哎呀饅頭蘋果菠菜都是食物管人家喜歡否", what="", sep=";")
Read 7 items
>
> dfvocab <- scan(text="蘋果,饅頭,菠菜", what="", sep=",")
Read 3 items
推荐阅读
- javascript - Chartjs 隐藏数据集图例 v3
- reactjs - 如何创建可以导出到 NPM 的 React Form Builder?
- html - 将 Live Server 与 VsCode 一起使用,我无法显示本地图像,但在浏览器中正常打开 HTML 文件时可以正常工作
- python - 调用 BLAS/LAPACK 时,f2py 编译的 fortran 会杀死 python 内核
- python - Kivy JSON 存储数据操作 - 递归操作
- mysql - 安装 WARNING Illegal string offset 后无法访问我的 mysql 表
- javascript - React htmlFor - 单击标签焦点在错误的输入上
- python - 尝试将 txt 文件转换为适合文件的问题
- html - 如何在文章元素中获取h3下的段落标签?
- algorithm - 递归调用变化的快速排序