2011-02-04 2 views
2

텍스트 설문 조사 응답에서 웹 사이트를 추출해야합니다. 알고리즘은 대체로 일치해야합니다. 예를 들어 "나 같은 환자"또는 "patientslikeme"는 "patientslikeme.org"로 인식되어야합니다.텍스트에서 URL 추출 및 사전을 사용하여 facebook.com으로 무료로 페이스 북 번역

아래 데이터 세트의 응답을 포함 시켰습니다. 이 작업을 수행하기위한 스크립트를 작성하기 시작했지만 추가 필터 및 사전을 허용 할 강력한 디자인 패턴을 사용하지 않는다는 것을 깨달았습니다. 매치가 너무 정확하거나 너무 일반적이어서 충분한 수의 매치를 잡을 수 없으므로 간단한 정규 표현식이 작동하지 않습니다. 완벽한 세계에서 나는 또한 aspell과 같은 것을 사용하여 맞춤법 오류를 수정하거나 levenstein 알고리즘을 사용하여 단어를 일치시킬 수 있습니다.

데이터 정제 알고리즘, 프레임 워크 또는 리소스의 방향을 알려주는 데 미리 감사드립니다.

"온라인 사회"의 전체 아름다움

그들이하는 큰 정도, 익명 있다는 것입니다. 그러나 : 액세서 블 원예 포럼, Davesgarden.com; Patientslikeme.com; 그리고 당연히 FACEBOOK. 저 미스 학회 한국어 Thisisms 추천

$sites = array("davesgarden.com","patientslikeme.com","facebook.com"); 

환자

$sites = array("patientslikeme.com","mssociety.org","facebook.com","thisisms.com"); 

yaoo webmd.co

$sites = array("yahoo.com","webmd.com"); 

MS 처리 options.com는

$sites = array("mstreatmentoptions.com"); 
+0

무엇이 이들 사이트를 올바른 사이트로 만드나요? whole.com 또는 beauty.com 또는 onlinecommunities.com은 어떻습니까? – Yuliy

+0

좋은 지적. 나는 우리가 알려진 사이트에 대해 어느 정도 지식을 가지고 있고 그 사이트와 일치 할 것이라고 생각합니다. 데이터 세트는 충분히 작기 때문에 비교할 수없는 결과를 격리 저장소에 넣은 다음 수동으로 일치하는 엔진에 추가 할 수 있습니다. –

답변

0

여기에 루비 스크립트입니다.

는 inputfile.txt라는 이름의이 형식에 그것을 도메인 목록을 피드 :

myurl.com 
otherurl.com 

저장이라는 파일 convert.rb에

while line = gets 
     line =~ /(.+)\.\w+$/ 
     print "/" 
     $1.each_char{|c| 
       print "#{c}\\W*" 
     } 
     print "/i" 
     puts 
end 

그런 다음이 명령을 실행 : 고양이 inputfile을합니다. TXT | ruby convert.rb> outputfile.txt

그건 정규식 목록입니다. 그것들을 가져 와서 각각을 입력 텍스트에 일치 시키십시오.