2011-10-20 3 views
1

저는 현재 파일 이름 묶음을 읽는 작은 시스템 (현재는 수백 개 정도)을 작성하려고하고 있으며 사용자가 파일 이름을 검색 할 수 있도록합니다. 최종 목표는 절대로 똑같은 이름을 지니지 않지만 공통 단어를 공유하는 두 줄짜리를 찾는 것입니다. 결국 중복 가능성을 제안 할 수있는 기능을 추가하려고합니다.파일 이름에서 검색어 작성

현재 각 파일 경로를 ArrayList에 추가 한 다음 파일 이름의 각 단어를 연결을 사용하는 Hashtable에 전달합니다. 단어는 String.split()을 사용하여 만들어지며 영숫자가 아닌 모든 문자는 공백으로 변환됩니다. 이 부분은 잘 작동하며 한 단어의 걱정없이 검색 할 수 있습니다.

여러 용어를 검색하고 응답을 받고 각 문서를 선택하는 데 걸리는 시간에 대한 기본 관련성을 구축한다는 이론을 알고 있습니다.

내 현재 문제는 'mybestfile'과 비슷한 파일 이름입니다. 내 프로그램은 단일 단어로만 처리 할 수 ​​있습니다. 'mybestfile'을 검색하지 않으면 아무것도 찾을 수 없습니다.

누구나 내가 여기서 내려야 할 디자인 경로를 제안 할 수 있습니까? 전체 사전에서 구문 분석 한 다음 하위 문자열을 일치시켜 단어를 추출해 낼 수는 있지만 솔직히 말해서 이것은 단순한 프로그램을위한 것이며 오히려 그런 종류의 것을 피할 것입니다.

도움이 될 것입니다!

(또한이 점은 반 학습, 내가 할 수있는 반 증명은, 그래서 이미 존재하는 솔루션을 알고 싶어하지만, 그것을 어떻게 더, 오히려 그 대신 그들을 사용하는 것)

답변

1

Apache Codec language package에서 사용할 수있는 다양한 "유사 소리"와 거리 알고리즘으로 게임을 시작할 수 있습니다. (거리 알 고는 Commons Lang이 아니라 코덱이라고 생각합니다.)

SimMetrics은 다른 것입니다. 내가 찾고있는 것을 실제로 찾을 수는 없지만 here's a list, too.

+0

건배, 내가 그들을 체크 아웃하겠습니다. –

+0

@ dann.dev 만약 당신이 그것을 생각한다면, 당신이 무슨 일이 일어나는지 알려주십시오; 나는 다른 도메인에서 비슷한 것을 할 필요가있다. 아직 시작하지 않았다. / –

관련 문제