从字符串中提取文本后,有没有办法手动从比例table中删除无用词?
Is there a way of manually removing useless words from a proportion table after extracting text from a character string?
文本提取问题:
不确定谁能帮我解决这个问题,但我 运行 在尝试将这首歌拆分成一堆可分离的汉字时遇到了问题。我先把歌词加载到一个变量中,按没有spaces分割,排序,然后按比例放入table:
cj <- "我曾經問個不休 你何時跟我走
可你卻總是笑我 一無所有
我要給你我的追求 還有我的自由
可你卻總是笑我 一無所有
噢 你何時跟我走
噢 你何時跟我走
腳下這地在走 身邊那水在流
可你卻總是笑我 一無所有
為何你總笑個沒夠 為何我總要追求
難道在你面前 我永遠是一無所有
噢 你何時跟我走
噢 你何時跟我走
(腳下這地在走 身邊那水在流)
(腳下這地在走 身邊那水在流)
告訴你我等了很久 告訴你我最後的要求
我要抓起你的雙手 你這就跟我走
這時你的手在顫抖 這時你的淚在流
莫非你是正在告訴我 你愛我一無所有
噢 你這就跟我走
噢 你這就跟我走
(腳下這地在走 身邊那水在流)
(腳下這地在走 身邊那水在流)
噢 你這就跟我走
噢 你這就跟我走
噢 你這就跟我走
噢 你這就跟我走"
cj_split <- strsplit(x=cj,
fixed=T,
split = "")
cj_split <- sort(table(cj_split),
decreasing = T)
cj_props <- sort(prop.table(cj_split))
cj_props
这给了我这个比例 table,其中包括空 spaces 和 table 末尾的非值,例如我不需要的“\n”:
> cj_props
cj_split
愛 不 曾 顫 道 等 抖 非
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
給 夠 還 很 後 經 久 了
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
淚 沒 面 莫 難 起 前 雙
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
問 休 永 由 遠 正 抓 自
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
最 個 手 為 追 告 可 求
0.002941176 0.005882353 0.005882353 0.005882353 0.005882353 0.008823529 0.008823529 0.008823529
卻 訴 ( ) 笑 要 邊 地
0.008823529 0.008823529 0.011764706 0.011764706 0.011764706 0.011764706 0.014705882 0.014705882
腳 那 身 是 水 所 無 下
0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882
一 總 的 流 有 何 就 時
0.014705882 0.014705882 0.017647059 0.017647059 0.017647059 0.020588235 0.020588235 0.020588235
噢 跟 在 這 走 \n 你
0.029411765 0.035294118 0.041176471 0.041176471 0.050000000 0.073529412 0.073529412 0.076470588
我
0.076470588
有没有办法在用它们创建数据框之前删除它们?我想保留真实的百分比,而不是用 dplyr 整理它并丢失真实字符的实际百分比。
编辑:
我发现了另一个至少让我摆脱了一个问题的功能。如果我使用以下代码:
cj <- chartr(x=cj,
old = "\n",
new = " ")
至少去掉了符号。尽管如此,仍然需要弄清楚如何摆脱 space 计数。
我是绕着弯子想出来的。在创建我的 tables 之前,我使用以下代码删除所有奇怪的字符......问题是 RStudio 以不同的方式处理字母括号和中文括号(在我的例子中是中文),所以你必须过滤它们出来,因为它们也创造了额外的空间:
# Replace spaces and parentheses:
cj <- gsub( pattern = "\n",
replacement = "",
x = cj,
fixed = TRUE )
cj <- gsub(pattern = " ",
replacement = "",
x=cj,
fixed = TRUE)
cj <- gsub(pattern = "(",
replacement = "",
x=cj,
fixed = TRUE)
cj <- gsub(pattern = ")",
replacement = "",
x=cj,
fixed=TRUE)
这是 table 现在的样子,去掉了不必要的字符:
我 你 走 在 這 跟 噢 何
0.092526690 0.088967972 0.060498221 0.049822064 0.049822064 0.042704626 0.035587189 0.024911032
就 時 的 流 有 邊 地 腳
0.024911032 0.024911032 0.021352313 0.021352313 0.021352313 0.017793594 0.017793594 0.017793594
那 身 是 水 所 無 下 一
0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594
總 笑 要 告 可 求 卻 訴
0.017793594 0.014234875 0.014234875 0.010676157 0.010676157 0.010676157 0.010676157 0.010676157
個 手 為 追 愛 不 曾 顫
0.007117438 0.007117438 0.007117438 0.007117438 0.003558719 0.003558719 0.003558719 0.003558719
道 等 抖 非 給 夠 還 很
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
後 經 久 了 淚 沒 面 莫
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
難 起 前 雙 問 休 永 由
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
遠 正 抓 自 最
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
如果有人有更快的选择,我很乐意听到。现在这有效。
文本提取问题:
不确定谁能帮我解决这个问题,但我 运行 在尝试将这首歌拆分成一堆可分离的汉字时遇到了问题。我先把歌词加载到一个变量中,按没有spaces分割,排序,然后按比例放入table:
cj <- "我曾經問個不休 你何時跟我走
可你卻總是笑我 一無所有
我要給你我的追求 還有我的自由
可你卻總是笑我 一無所有
噢 你何時跟我走
噢 你何時跟我走
腳下這地在走 身邊那水在流
可你卻總是笑我 一無所有
為何你總笑個沒夠 為何我總要追求
難道在你面前 我永遠是一無所有
噢 你何時跟我走
噢 你何時跟我走
(腳下這地在走 身邊那水在流)
(腳下這地在走 身邊那水在流)
告訴你我等了很久 告訴你我最後的要求
我要抓起你的雙手 你這就跟我走
這時你的手在顫抖 這時你的淚在流
莫非你是正在告訴我 你愛我一無所有
噢 你這就跟我走
噢 你這就跟我走
(腳下這地在走 身邊那水在流)
(腳下這地在走 身邊那水在流)
噢 你這就跟我走
噢 你這就跟我走
噢 你這就跟我走
噢 你這就跟我走"
cj_split <- strsplit(x=cj,
fixed=T,
split = "")
cj_split <- sort(table(cj_split),
decreasing = T)
cj_props <- sort(prop.table(cj_split))
cj_props
这给了我这个比例 table,其中包括空 spaces 和 table 末尾的非值,例如我不需要的“\n”:
> cj_props
cj_split
愛 不 曾 顫 道 等 抖 非
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
給 夠 還 很 後 經 久 了
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
淚 沒 面 莫 難 起 前 雙
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
問 休 永 由 遠 正 抓 自
0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176 0.002941176
最 個 手 為 追 告 可 求
0.002941176 0.005882353 0.005882353 0.005882353 0.005882353 0.008823529 0.008823529 0.008823529
卻 訴 ( ) 笑 要 邊 地
0.008823529 0.008823529 0.011764706 0.011764706 0.011764706 0.011764706 0.014705882 0.014705882
腳 那 身 是 水 所 無 下
0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882 0.014705882
一 總 的 流 有 何 就 時
0.014705882 0.014705882 0.017647059 0.017647059 0.017647059 0.020588235 0.020588235 0.020588235
噢 跟 在 這 走 \n 你
0.029411765 0.035294118 0.041176471 0.041176471 0.050000000 0.073529412 0.073529412 0.076470588
我
0.076470588
有没有办法在用它们创建数据框之前删除它们?我想保留真实的百分比,而不是用 dplyr 整理它并丢失真实字符的实际百分比。
编辑:
我发现了另一个至少让我摆脱了一个问题的功能。如果我使用以下代码:
cj <- chartr(x=cj,
old = "\n",
new = " ")
至少去掉了符号。尽管如此,仍然需要弄清楚如何摆脱 space 计数。
我是绕着弯子想出来的。在创建我的 tables 之前,我使用以下代码删除所有奇怪的字符......问题是 RStudio 以不同的方式处理字母括号和中文括号(在我的例子中是中文),所以你必须过滤它们出来,因为它们也创造了额外的空间:
# Replace spaces and parentheses:
cj <- gsub( pattern = "\n",
replacement = "",
x = cj,
fixed = TRUE )
cj <- gsub(pattern = " ",
replacement = "",
x=cj,
fixed = TRUE)
cj <- gsub(pattern = "(",
replacement = "",
x=cj,
fixed = TRUE)
cj <- gsub(pattern = ")",
replacement = "",
x=cj,
fixed=TRUE)
这是 table 现在的样子,去掉了不必要的字符:
我 你 走 在 這 跟 噢 何
0.092526690 0.088967972 0.060498221 0.049822064 0.049822064 0.042704626 0.035587189 0.024911032
就 時 的 流 有 邊 地 腳
0.024911032 0.024911032 0.021352313 0.021352313 0.021352313 0.017793594 0.017793594 0.017793594
那 身 是 水 所 無 下 一
0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594 0.017793594
總 笑 要 告 可 求 卻 訴
0.017793594 0.014234875 0.014234875 0.010676157 0.010676157 0.010676157 0.010676157 0.010676157
個 手 為 追 愛 不 曾 顫
0.007117438 0.007117438 0.007117438 0.007117438 0.003558719 0.003558719 0.003558719 0.003558719
道 等 抖 非 給 夠 還 很
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
後 經 久 了 淚 沒 面 莫
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
難 起 前 雙 問 休 永 由
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
遠 正 抓 自 最
0.003558719 0.003558719 0.003558719 0.003558719 0.003558719
如果有人有更快的选择,我很乐意听到。现在这有效。