在html标记之间提取文本并用R中的标记对其进行标记

在html标记之间提取文本并用R中的标记对其进行标记,r,nlp,text-mining,R,Nlp,Text Mining,我正在努力学习如何把R中的句子分类 我有一个文本文件,其中包含以下格式的句子: <happy> This did the trick : the boys now have a more distant friendship and David is much happier . <\happy> <happy> When Anna left Inspector Aziz , she was much happier . <\happy>

我正在努力学习如何把R中的句子分类

我有一个文本文件,其中包含以下格式的句子:

<happy>
  This did the trick : the boys now have a more distant friendship and David is much happier . 
<\happy>
<happy>
  When Anna left Inspector Aziz , she was much happier . 
<\happy>
我想提取这个句子,并给它们贴上情感标签。我应该如何处理这个问题?我知道我应该在正则表达式中使用分组,但我不知道如何在R中使用分组。我对它和学习都是新手

rl <- readLines('sentences.txt')

rl目前这是格式不好的XML,如

  • XML在结束标记中使用正斜杠而不是反斜杠。事实上,您甚至无法按原样将其读入R,因为它将尝试将
    \h
    解析为转义字符,除非您添加额外的反斜杠以转义反斜杠本身
  • XML需要包含在单个标记中。不过,这个问题更容易解决(
    在某些标记上粘贴
如果实际数据是正确格式化的XML,则可以使用xml2或XML包进行解析。我喜欢
purrr::map_df
在节点上迭代,并将结果强制为data.frame,但是如果愿意,您可以在base R中执行相同的操作

库(xml2)
图书馆(purrr)
'
这就成功了:男孩们现在有了更遥远的友谊,大卫更快乐了。
当安娜离开阿齐兹探长时,她高兴多了。
' %>% 
粘贴(“”,,“”)%>%#添加封闭标签
读取xml()%>%
xml_find_all('//text()/parent::*')%%>%#选择作为文本父节点的节点
map_df(~list(text=xml_text(.x,trim=TRUE),
emotion=xml_名称(.x)))
###A tible:2×2
##文本情感
##                                                                                             
##这就成功了:男孩们现在有了更遥远的友谊,大卫更快乐了。幸福的
##当安娜离开阿齐兹探长时,她高兴多了。幸福的

这些反斜杠会导致问题;如果它们是正向斜杠,它可以被解析为XML。
lappy(split(Filter(nzhar,gsub(“|[]”,”,trimws(rl))),c(1,1,2,2)),as.list)
我让你来做REST,这是一个实际的片段吗?(a) 它不是HTML(b)它不是有效的XML(c)我知道没有使用反斜杠的标记语言。
rl <- readLines('sentences.txt')