2012-01-17 2 views

답변

3

저는 3 년 이상이 문제를 해결하기 위해 노력해 왔습니다. 아주 간단하다고 말하지만, tf-idf와 코사인 유사성을 제외하고는 단일 알고리즘으로 해결하지 않을 것입니다.

도전의 숫자가 있습니다, 나는 그들 중 일부 쓰기 :

  1. 유사한 라이센스 텍스트를 (AGPL/GPL/LGPL, BSD/apache1.1 /하려면 openssl, MIT/ISC/컬)이 있습니다 매우 어려운 (당신이 기능 선택과 관련하여 매우 똑똑하지 않은 한 ...)
  2. 동일한 라이선스의 다른 버전 (lgpl 2.0/2.1)에 적용됩니다.
  3. LICENSE.TXT 파일에 여러 라이센스가 포함되는 경우가 많음
  4. bsd 통지를 수신하는 것은 매우 어렵 기 때문에, 즉. 당신은 권리 보유자를 제외하고 동일한 원본이 있습니다

당신은 결국 접근법의 조합을 사용하게 될 것이며, 불행히도 은색 총알은 없습니다.

+0

나쁜 소식 : 정확한 문자열 일치 부분을 수행해야하고 나머지는 수동으로 검사 할 것입니다. 예를 들어 라이센스 텍스트에 http://www.apache.org/licenses/LICENSE-2.0.txt라는 URL이 포함되어 있으면 Apache 버전 2.0이라는 것을 의미합니다. – ilija

+1

Fossology 프로젝트를 체크 아웃하십시오. 이것은 라이센스 및 다른 종류의 IP 식별을위한 소스의 자동 스캔을 작성하려는 시도입니다. 사비 노는 은색 총알이 절대적으로 옳다. Linux foudation의 SPDX 프로젝트는 알려진 오픈 소스 라이센스에 대한 공통된 식별자 세트를 적어도 최종적으로 표준화하고 있습니다. 개발자가 소스 코드 헤더에서 사용하기 시작하면 훨씬 쉽게 소스를 파싱 할 수 있습니다. –

1

Lucene을 사용하여 모든 라이센스를 문서화 할 수 있습니다 (각 Lucene 문서는 라이센스입니다). 새로운 license.txt가있을 때 어떤 라이센스가 해당 라이센스인지 확인하려면 전체 license.txt를 쿼리로 사용하여 lucene을 쿼리하면됩니다.

TF-IDF와 모든 IR 정보를 사용합니다. 그러나 특정 키워드를 확인하는 것과 같은 문제에보다 구체적인 것을 사용할 수도 있습니다.

관련 문제