Snowball은 정보 검색에 사용할 형태소 분석 알고리즘과 이를 사용하여 구현된 형태소 분석 알고리즘 모음을 생성하기 위한 작은 문자열 처리 언어입니다.
Snowball은 원래 Martin Porter가 설계하고 제작했습니다. Martin은 2014년에 개발을 중단했으며 Snowball은 이제 커뮤니티 프로젝트로 유지됩니다. Martin은 원래 1960년대의 우수한 문자열 처리 언어인 SNOBOL에 대한 찬사로 Snowball이라는 이름을 선택했습니다. 이는 이제 시간이 지남에 따라 기여도를 수집하여 프로젝트가 어떻게 성장하는지에 대한 은유 역할도 합니다.
Snowball 컴파일러는 Snowball 프로그램을 다른 언어의 소스 코드로 변환합니다. 현재 Ada, ISO C, C#, Go, Java, Javascript, Object Pascal, Python 및 Rust가 지원됩니다.
이 리포지토리에는 Snowball 컴파일러 및 형태소 분석 알고리즘의 소스 코드가 포함되어 있습니다. 눈덩이 컴파일러는 ISO C로 작성되었습니다. 이를 빌드하려면 C99를 지원하는 C 컴파일러가 필요합니다(그러나 생성되는 C 코드는 모든 ISO C 컴파일러에서 작동해야 합니다).
Snowball에 대한 자세한 내용은 https://snowballstem.org/를 참조하십시오.
형태소 분석은 동일한 단어의 다양한 형태를 공통 "어간"으로 매핑합니다. 예를 들어 영어 형태소 분석기는 연결 , 연결 , 연결 , 연결 및 연결 연결을 연결 로 매핑합니다. 따라서 연결됨 을 검색하면 다른 형식만 있는 문서도 찾을 수 있습니다.
이 어간 형태는 단어 자체인 경우가 많지만, 사용하려는 분야인 텍스트 검색 시스템에 대한 요구 사항은 아니기 때문에 항상 그런 것은 아닙니다. 우리는 또한 공통된 언어적 어근을 가진 모든 단어(그래서 awe 와 끔찍함은 같은 어간을 가지지 않음)보다는 동일한 의미를 가진 단어를 통합하는 것을 목표로 하며, 과도한 어간은 과소 어간보다 문제가 더 많기 때문에 우리는 그렇게 하지 않는 경향이 있습니다. 해결하기 어려운 경우에 발생합니다. 항상 단어를 어근 형태로 줄이거나 그 자체가 단어인 어근 형태를 얻으려는 경우 Snowball의 형태소 분석 알고리즘은 정답이 아닐 가능성이 높습니다.