我正在研究R中的实体提取
我有UniqueID
和Text
字段 - 需要从文本字段中提取位置信息。
“我的文本”字段包含位置名称
text <- c("SERANGOON JC","Blk 4","SHELL TAMPINES AVE 4","SENOKO INDUSTRIAL ESTATE","Senoko Estate","Senoko","senok Est.")
我有一份地点列表;
Loc <- c("SERANGOON JUNIOR COLLEGE","Block 4","SHELL TAMPINES AVENUE 4","SENOKO INDUSTRIAL ESTATE")
需要匹配loc
并从text
字段中提取这些位置。在文字字段SENOKO INDUSTRIAL ESTATE
拼写的方式不同Senoko Estate
或Senoko
(半名)或拼写错误senok Est.
。对于上述所有错误拼写和半拼写的单词 - 我需要从loc
得到确切的名称,即。 SENOKO INDUSTRIAL ESTATE
。
我的输出如下所示:(从文本字段中提取位置 - 为半拼写和拼写错误的单词设置正确的单词)
ID Location
123 SERANGOON JUNIOR COLLEGE|Block 4|SHELL TAMPINES AVENUE 4|SENOKO INDUSTRIAL ESTATE|SENOKO INDUSTRIAL ESTATE|SENOKO INDUSTRIAL ESTATE|SENOKO INDUSTRIAL ESTATE
答案 0 :(得分:1)
我不认为这是回答最漂亮的方式,但是......
text <- c("SERANGOON JC","Blk 4","SHELL TAMPINES AVE 4","SENOKO INDUSTRIAL ESTATE","Senoko Estate","Senoko","senok Est.")
Loc <- c("SERANGOON JUNIOR COLLEGE","Block 4","SHELL TAMPINES AVENUE 4","SENOKO INDUSTRIAL ESTATE")
text <- gsub(".*serang.*", "SERANGOON JUNIOR COLLEGE", text, ignore.case=TRUE)
text <- gsub(".*bl.* 4.*", "Block 4", text, ignore.case=TRUE)
text <- gsub(".*shell.*", "SHELL TAMPINES AVENUE 4", text, ignore.case=TRUE)
text <- gsub(".*senok.*", "SENOKO INDUSTRIAL ESTATE", text, ignore.case=TRUE)
print(text)
我没有完全按照您要求的格式,但这将是第二列(也就是位置)的内容。我在你正在寻找的字符串之前和之后使用正则表达式“。*”,以防有其他可能性/拼写错误。这将使其更加健壮。
希望这有帮助!