如何解决文本挖掘刮取数据 (R)
我编写了下面的代码来在职位发布数据集中查找“国籍”这个词,我基本上是想看看有多少雇主指定给定的候选人必须具有特定的签证类型或国籍。
我知道在原始数据本身(在 excel 中)中,有几种情况会在工作描述中提到“国籍”一词。
nationality_finder = function(string){
nationality = c(" ")
split_string = strsplit(string,split = NULL)
split_string = split_string[[1]]
flag = 0
for(letter in split_string){
if(flag > 0){nationality = append(nationality,letter)}
if(letter == "nationality "){flag = 1}
if(letter == " "){flag = flag-0.5}
}
nationality = paste(nationality,collapse = '')
return(nationality)
}
for(n in 1:length(df2$description)){
df2$nationality[n] <- nationality_finder(df2$description[n])
}
df2%>%
view()
此外,代码在没有错误的情况下工作,但它并没有产生我正在寻找的东西。我基本上是想创建另一个变量,其中 1 表示提及“国籍”一词,否则为 0。具体来说,我正在寻找职位描述变量下的“公民”和“国籍”等词。每个职位描述下的文字都非常长,但在这里,为了简洁起见,我只给出了一个总结版本。
数据集中职位描述的文本示例
Title: Event Planner
Nationality: Saudi National
Location: Riyadh,Saudi Arabia
Salary: Open
Salary depends on the candidates skills,experience,and other attributes.
另一个职位描述:
- Have recently graduated or looking for a career change and be looking for
an entry level role (we will offer full training)
- Priority will be taken for applications by U.S. nationality holders
解决方法
你可以尝试这样的事情。我假设您有一个 data.frame
作为数据,并且您想要添加一个新列。
dats$check <- as.numeric(grepl("nationality",dats$description,ignore.case=TRUE))
dats$check
[1] 1 1 0 1
grepl()
将在 dats$description
列中检测字符串国籍,忽略大小写 (ignore.case = TRUE
) 并且 as.numeric()
将转换 TRUE
{{ 1}} 到 FALSE
1
。
使用假数据:
0
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。