2013-08-27 5 views
2

dawgdic은 훌륭한 DAWG 라이브러리이지만 정적 (업데이트 할 수 없음)이며 사전 순으로 정렬 된 양식 문자열로 구성해야하기 때문에 심각한 단점이 있습니다. DAWG가 생성되는 원시 데이터가 큰 경우 (수 기가 바이트), 거대한 문자열 배열을 포함하는 DAWG의 초기 구성은 너무 많은 리소스를 요구할 수 있습니다.업데이트 할 수없는 DAWG 라이브러리 또는 정렬되지 않은 데이터의 DAWG 구성

정렬되지 않은 사전에서 구성 할 수있는 dawgdic과 같은 메모리 효율적인 구조를 제공하는 라이브러리가 있습니까?

답변

2

현재 분류되지 않은 사전에서 DAWG를 구성 할 수있는 라이브러리는 없다고 생각합니다.

그러나 많은 검색을 한 후에이 용지를 찾았습니다. 정확히 "Incremental Construction of Minimal Acyclic Finite-State Automata" 이라고 생각합니다. 어쩌면이 책을 읽은 후 자신 만의 도서관을 만들고 그것을 모두와 공유 할 수 있습니다!

편집 :this question 보셨나요? 그들은 임마 기반으로하지 입력해도

+0

나는 내 자신의 라이브러리를 쓸 시간이 없어도 종이를 가져 주셔서 감사합니다. – lizarisk

+0

@lizarisk 제 편집을보세요. – Max

1

나는 비 정렬 된 데이터에서 온라인 건설을 허용 훌륭한 라이브러리를 발견했습니다 : - 매우 빠른 이중 배열 트라이

  • marisa-trie -

    1. cedar а을 매우 공간 효율적인 문자열 매칭 라이브러리
  • 0

    비 정렬 데이터에서 구성을 지원하는 DAWG의 C++ 구현은 현재 알지 못하지만 그러한 기능을 가진 자신 만의 솔루션을 만드는 것이 가능하다면 , Incremental Construction of Minimal Acyclic Finite-State Automata (2000)은 기본적으로 그 뒤에 알고리즘을 배치 한 논문입니다.

    다른 언어의 솔루션을 이식 할 수 있다면 데이터 구조의 Java 구현 인 MDAG을 확인하는 것이 좋습니다. 즉석에서 문자열을 추가하고 문자열을 제거 할 수 있기 때문에 원하는 문자열을 정확하게 찾을 수 있습니다. 코드는 따라하기 쉽고 광범위하게 주석 처리되기 때문에 이식 작업은 상당히 간단한 작업이어야합니다.

    면책 조항 : 저는 MDAG의 저자입니다. :)