是否有任何简单/基本的方法可以使用R拆分文本转录本?
基本上,我有一个.txt文件,是两个参与者之间的谈判记录,格式如下:是否有任何简单/基本的方法可以使用R拆分文本转录本?,r,transcription,R,Transcription,基本上,我有一个.txt文件,是两个参与者之间的谈判记录,格式如下: Name时间戳文本Name时间戳文本 等等,等等,进行完整的对话。有没有一种编码R的方法可以将这个转录本拆分成单独的变量,这样就有了一个用于名称的变量、一个用于时间戳的变量和一个用于全文文本的变量 我一直都是手工完成的,但是随着成绩单越来越长,要做的事情越多,手工完成就越困难。我知道有一些解析文本的代码可用于情绪分析等,但据我所知,我只知道如何编写代码来提取特定的词类 任何帮助都将不胜感激 如果我意识到这有多难,我就会跳过这个
Name时间戳文本Name时间戳文本
等等,等等,进行完整的对话。有没有一种编码R的方法可以将这个转录本拆分成单独的变量,这样就有了一个用于名称的变量、一个用于时间戳的变量和一个用于全文文本的变量
我一直都是手工完成的,但是随着成绩单越来越长,要做的事情越多,手工完成就越困难。我知道有一些解析文本的代码可用于情绪分析等,但据我所知,我只知道如何编写代码来提取特定的词类
任何帮助都将不胜感激 如果我意识到这有多难,我就会跳过这个问题。
但是我在pivot上做了很多很好的练习read\u csv
将为您修复这些重复的名称,如果您为大多数其他read
功能提供正确的选项,它们也将为您修复这些名称
library(tidyverse)
Raw <- readr::read_csv("Name,Time Stamp,Text,Name,Time Stamp,Text,Name,Time Stamp,Text
Arthur,1:22,No,Betty,1:23,Yes,Arthur,1:24,Dang")
# A tibble: 1 x 9
Name `Time Stamp` Text Name_1 `Time Stamp_1` Text_1 Name_2 `Time Stamp_2` Text_2
<chr> <time> <chr> <chr> <time> <chr> <chr> <time> <chr>
1 Arthur 01:22 No Betty 01:23 Yes Arthur 01:24 Dang
在ROW=1中,我们希望将Nm_2与Ts_2、Tx_2等关联起来。让我们构建一个函数
nmOut <- function(ROW, string){
ext <- str_extract(string, "(?<=_)\\d+")
paste(ROW,
ifelse(is.na(ext), "0", ext ))
}
transcript2 <- transcript1 %>%
mutate(rNm = nmOut(ROW, Nm),
rTs = nmOut(ROW, Ts),
rTx = nmOut(ROW, Tx)) %>%
filter(rNm == rTs & rTs == rTx)
# A tibble: 3 x 10
ROW Nm NAME Ts TIME.STAMP Tx TEXT rNm rTs rTx
<int> <chr> <chr> <chr> <time> <chr> <chr> <chr> <chr> <chr>
1 1 Name Arthur Time Stamp 01:22 Text No 1 0 1 0 1 0
2 1 Name_1 Betty Time Stamp_1 01:23 Text_1 Yes 1 1 1 1 1 1
3 1 Name_2 Arthur Time Stamp_2 01:24 Text_2 Dang 1 2 1 2 1 2
transcriptFinal <- transcript2 %>%
select(ROW, NAME, TIME.STAMP, TEXT)
transcriptFinal
# A tibble: 3 x 4
ROW NAME TIME.STAMP TEXT
<int> <chr> <time> <chr>
1 1 Arthur 01:22 No
2 1 Betty 01:23 Yes
3 1 Arthur 01:24 Dang
n您好cwfowler,如果没有您试图处理的准确、具有代表性的数据样本,我们将无法帮助您。请发布一个大小合理的数据样本。你能dput
一个小样本文本吗?我认为这可能是有问题的,原因有两个。1.许多人的名字都是固定的词(弗兰克、五月、六月、鲍勃、罗伯……)。2.文本可能包含其他人的姓名和/或时间戳。例如,“阿美:是的,弗兰克。你说得对。会议可能安排在下午1:30开始。但是老板迟到了。坦率地说,他总是迟到。也许我们都应该辞职。”非常感谢你的回答!很抱歉,花费的时间比预期的要长,我应该意识到这个问题没有简单、容易的答案,但我感谢您的帮助!
nmOut <- function(ROW, string){
ext <- str_extract(string, "(?<=_)\\d+")
paste(ROW,
ifelse(is.na(ext), "0", ext ))
}
transcript2 <- transcript1 %>%
mutate(rNm = nmOut(ROW, Nm),
rTs = nmOut(ROW, Ts),
rTx = nmOut(ROW, Tx)) %>%
filter(rNm == rTs & rTs == rTx)
# A tibble: 3 x 10
ROW Nm NAME Ts TIME.STAMP Tx TEXT rNm rTs rTx
<int> <chr> <chr> <chr> <time> <chr> <chr> <chr> <chr> <chr>
1 1 Name Arthur Time Stamp 01:22 Text No 1 0 1 0 1 0
2 1 Name_1 Betty Time Stamp_1 01:23 Text_1 Yes 1 1 1 1 1 1
3 1 Name_2 Arthur Time Stamp_2 01:24 Text_2 Dang 1 2 1 2 1 2
transcriptFinal <- transcript2 %>%
select(ROW, NAME, TIME.STAMP, TEXT)
transcriptFinal
# A tibble: 3 x 4
ROW NAME TIME.STAMP TEXT
<int> <chr> <time> <chr>
1 1 Arthur 01:22 No
2 1 Betty 01:23 Yes
3 1 Arthur 01:24 Dang