2014-05-13 3 views
1

R에서 엔티티 추출 작업 중 UniqueIDText 필드가 있습니다. 텍스트 필드에서 위치 정보를 추출해야합니다. 내 텍스트 필드는 위치 이름 설명이텍스트에서 정보 추출 R

text <- c("SERANGOON JC","Blk 4","SHELL TAMPINES AVE 4","SENOKO INDUSTRIAL ESTATE","Senoko Estate","Senoko","senok Est.") 

나는 위치의 목록을 가지고; loc과 일치하는 텍스트 필드 SENOKO INDUSTRIAL ESTATE field.In text에서 그 위치를 추출하는

Loc <- c("SERANGOON JUNIOR COLLEGE","Block 4","SHELL TAMPINES AVENUE 4","SENOKO INDUSTRIAL ESTATE") 

필요는 위의 모든 어긋나 .FOR 또는 맞춤법 실수 senok Est.와 다른 방법 Senoko Estate 또는 Senoko (반 이름)에서 철자 철자와 철자가 맞지 않는 단어 - 정확한 이름을 loc에서 가져와야합니다. SENOKO INDUSTRIAL ESTATE.

내 출력과 같습니다 (반 철자와 철자가 틀린 단어를 텍스트 필드 -get 올바른 단어에서 추출 위치) 나는이 그것을 대답 할 수있는 가장 아름다운 방법이라고 생각하지 않습니다

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

R에서 위의 것을 시도 할 함수 또는 패키지가 있습니까? – RUser

+0

글쎄, 뭐 해봤 어? 나는 이것에 관해 정말로 알지 못한다. 그러나 왜 [agrep] (http://stat.ethz.ch/R-manual/R-devel/library/base/html/agrep.html)을 사용하지 않는가? – Llopis

답변

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) 

내가 요청한 형식으로 정확하게 입력하지 않았지만 두 번째 열 (일명 위치)의 내용이됩니다. 다른 가능성이나 오타가있는 경우 찾고 있던 문자열 앞뒤에 정규 표현식 ". *"을 사용했습니다. 이렇게하면 더 강력 해집니다.

희망이 도움이됩니다.